use serde::{Deserialize, Serialize}; /*
                                      * Cloud DNS API
                                      *
                                      * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
                                      *
                                      * The version of the OpenAPI document: v1
                                      *
                                      * Generated by: https://openapi-generator.tech
                                      */

use crate::google_rest_apis::dns_v1::models;

/// ResourceRecordSet : A unit of data that is returned by the DNS servers.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ResourceRecordSet {
    #[serde(rename = "kind", skip_serializing_if = "Option::is_none")]
    pub kind: Option<String>,
    /// For example, www.example.com.
    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,
    #[serde(rename = "routingPolicy", skip_serializing_if = "Option::is_none")]
    pub routing_policy: Option<Box<models::RrSetRoutingPolicy>>,
    /// As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples.
    #[serde(rename = "rrdatas", skip_serializing_if = "Option::is_none")]
    pub rrdatas: Option<Vec<String>>,
    /// As defined in RFC 4034 (section 3.2).
    #[serde(rename = "signatureRrdatas", skip_serializing_if = "Option::is_none")]
    pub signature_rrdatas: Option<Vec<String>>,
    /// Number of seconds that this ResourceRecordSet can be cached by resolvers.
    #[serde(rename = "ttl", skip_serializing_if = "Option::is_none")]
    pub ttl: Option<i32>,
    /// The identifier of a supported record type. See the list of Supported DNS record types.
    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
    pub r#type: Option<String>,
}

impl ResourceRecordSet {
    /// A unit of data that is returned by the DNS servers.
    pub fn new() -> ResourceRecordSet {
        ResourceRecordSet {
            kind: None,
            name: None,
            routing_policy: None,
            rrdatas: None,
            signature_rrdatas: None,
            ttl: None,
            r#type: None,
        }
    }
}
