use serde::{Deserialize, Serialize}; /*
                                      * Service Control API
                                      *
                                      * Provides admission control and telemetry reporting for services integrated with Service Infrastructure.
                                      *
                                      * The version of the OpenAPI document: v2
                                      *
                                      * Generated by: https://openapi-generator.tech
                                      */

use crate::google_rest_apis::servicecontrol_v2::models;

/// V2LogEntryOperation : Additional information about a potentially long-running operation with which a log entry is associated.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct V2LogEntryOperation {
    /// Optional. Set this to True if this is the first log entry in the operation.
    #[serde(rename = "first", skip_serializing_if = "Option::is_none")]
    pub first: Option<bool>,
    /// Optional. An arbitrary operation identifier. Log entries with the same identifier are assumed to be part of the same operation.
    #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
    pub id: Option<String>,
    /// Optional. Set this to True if this is the last log entry in the operation.
    #[serde(rename = "last", skip_serializing_if = "Option::is_none")]
    pub last: Option<bool>,
    /// Optional. An arbitrary producer identifier. The combination of `id` and `producer` must be globally unique. Examples for `producer`: `\"MyDivision.MyBigCompany.com\"`, `\"github.com/MyProject/MyApplication\"`.
    #[serde(rename = "producer", skip_serializing_if = "Option::is_none")]
    pub producer: Option<String>,
}

impl V2LogEntryOperation {
    /// Additional information about a potentially long-running operation with which a log entry is associated.
    pub fn new() -> V2LogEntryOperation {
        V2LogEntryOperation {
            first: None,
            id: None,
            last: None,
            producer: None,
        }
    }
}
