use serde::{Deserialize, Serialize}; /*
                                      * Compute Engine API
                                      *
                                      * Creates and runs virtual machines on Google Cloud Platform.
                                      *
                                      * The version of the OpenAPI document: v1
                                      *
                                      * Generated by: https://openapi-generator.tech
                                      */

/// BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy : The configuration for a custom policy implemented by the user and deployed with the client.

#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy {
    /// An optional, arbitrary JSON object with configuration data, understood by a locally installed custom policy implementation.
    #[serde(rename = "data", skip_serializing_if = "Option::is_none")]
    pub data: Option<String>,
    /// Identifies the custom policy. The value should match the name of a custom implementation registered on the gRPC clients. It should follow protocol buffer message naming conventions and include the full path (for example, myorg.CustomLbPolicy). The maximum length is 256 characters. Do not specify the same custom policy more than once for a backend. If you do, the configuration is rejected. For an example of how to use this field, see Use a custom policy.
    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,
}

impl BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy {
    /// The configuration for a custom policy implemented by the user and deployed with the client.
    pub fn new() -> BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy {
        BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy {
            data: None,
            name: None,
        }
    }
}
