pontoconnect_rs 2.0.3

For more info, please refer to the documentation: https://documentation.ibanity.com/ponto-connect/
Documentation
/*
 * Ponto Connect
 *
 * For more info, please refer to the documentation: https://documentation.ibanity.com/ponto-connect/
 *
 * The version of the OpenAPI document: 2
 * 
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct FinancialInstitutionAttributes {
    /// Name of the financial institution
    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,
    /// Availability of the connection (experimental, beta, stable)
    #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
    pub status: Option<String>,
    /// Indicates if the financial institution has been deprecated. Very rarely we may need to deprecate a <a href='https://documentation.ibanity.com//api#financial-institution'>financial institution</a> and ask your users to authorize their accounts again on its replacement. You will be able to access both accounts (if authorized) but you will not be able to synchronize the deprecated account once its authorization has expired.
    #[serde(rename = "deprecated", skip_serializing_if = "Option::is_none")]
    pub deprecated: Option<bool>,
    /// Country of the financial institution, in <a href='https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2'>ISO 3166-1 alpha-2</a> format. Is <code>null</code> in the case of an international financial institution.
    #[serde(rename = "country", skip_serializing_if = "Option::is_none")]
    pub country: Option<String>,
    /// Identifier for the financial institution, in <a href='https://en.wikipedia.org/wiki/ISO_9362'>ISO9362</a> format.
    #[serde(rename = "bic", skip_serializing_if = "Option::is_none")]
    pub bic: Option<String>,
    /// Indicates whether the financial institution allows bulk payment initiation requests
    #[serde(rename = "bulkPaymentsEnabled", skip_serializing_if = "Option::is_none")]
    pub bulk_payments_enabled: Option<bool>,
    /// Identifies which values are accepted for the bulk payment initiation request <code>productType</code>
    #[serde(rename = "bulkPaymentsProductTypes", skip_serializing_if = "Option::is_none")]
    pub bulk_payments_product_types: Option<Vec<String>>,
    /// Indicates whether a <code>requestedExecutionDate</code> is supported for <a href='https://documentation.ibanity.com//api#payment'>payments</a> from accounts belonging to this financial institution
    #[serde(rename = "futureDatedPaymentsAllowed", skip_serializing_if = "Option::is_none")]
    pub future_dated_payments_allowed: Option<bool>,
    /// Location of the logo image for the financial institution
    #[serde(rename = "logoUrl", skip_serializing_if = "Option::is_none")]
    pub logo_url: Option<String>,
    /// Indicates the start date of the maintenance.
    #[serde(rename = "maintenanceFrom", skip_serializing_if = "Option::is_none")]
    pub maintenance_from: Option<serde_json::Value>,
    /// Indicates the end date of the maintenance.
    #[serde(rename = "maintenanceTo", skip_serializing_if = "Option::is_none")]
    pub maintenance_to: Option<serde_json::Value>,
    /// Indicates if there is an ongoing or scheduled maintenance. If present, the possible values are:<ul><li><code>internal</code>, meaning we are working on the connection and no data access is possible</li><li><code>financialInstitution</code>, indicating the financial institution cannot be reached, but existing data is available in read-only mode</li></ul>
    #[serde(rename = "maintenanceType", skip_serializing_if = "Option::is_none")]
    pub maintenance_type: Option<serde_json::Value>,
    /// Indicates whether the financial institution allows <a href='https://documentation.ibanity.com//api#payment-initiation-request'>payment initiation requests</a>
    #[serde(rename = "paymentsEnabled", skip_serializing_if = "Option::is_none")]
    pub payments_enabled: Option<bool>,
    /// Identifies which values are accepted for the <a href='https://documentation.ibanity.com//api#payment-initiation-request'>payment initiation request</a> <code>productType</code>
    #[serde(rename = "paymentsProductTypes", skip_serializing_if = "Option::is_none")]
    pub payments_product_types: Option<Vec<String>>,
    /// Indicates whether the financial institution allows periodic payment initiation requests
    #[serde(rename = "periodicPaymentsEnabled", skip_serializing_if = "Option::is_none")]
    pub periodic_payments_enabled: Option<bool>,
    /// Identifies which values are accepted for the periodic payment initiation request <code>productType</code>
    #[serde(rename = "periodicPaymentsProductTypes", skip_serializing_if = "Option::is_none")]
    pub periodic_payments_product_types: Option<Vec<String>>,
    /// Hexadecimal color code related to the primary branding color of the financial institution
    #[serde(rename = "primaryColor", skip_serializing_if = "Option::is_none")]
    pub primary_color: Option<String>,
    /// Hexadecimal color code related to the secondary branding color of the financial institution
    #[serde(rename = "secondaryColor", skip_serializing_if = "Option::is_none")]
    pub secondary_color: Option<String>,
    /// Customer-friendly name of the financial institution's shared brand, if it is a member of one
    #[serde(rename = "sharedBrandName", skip_serializing_if = "Option::is_none")]
    pub shared_brand_name: Option<serde_json::Value>,
    /// Attribute used to group multiple individual financial institutions in the same country
    #[serde(rename = "sharedBrandReference", skip_serializing_if = "Option::is_none")]
    pub shared_brand_reference: Option<serde_json::Value>,
    /// Indicates in which time zone the financial institution is located. Eg: <code>Europe/Paris</code>. This field may be empty (null) if the financial institution is located in multiple countries with different time zones
    #[serde(rename = "timeZone", skip_serializing_if = "Option::is_none")]
    pub time_zone: Option<String>,
}

impl FinancialInstitutionAttributes {
    pub fn new() -> FinancialInstitutionAttributes {
        FinancialInstitutionAttributes {
            name: None,
            status: None,
            deprecated: None,
            country: None,
            bic: None,
            bulk_payments_enabled: None,
            bulk_payments_product_types: None,
            future_dated_payments_allowed: None,
            logo_url: None,
            maintenance_from: None,
            maintenance_to: None,
            maintenance_type: None,
            payments_enabled: None,
            payments_product_types: None,
            periodic_payments_enabled: None,
            periodic_payments_product_types: None,
            primary_color: None,
            secondary_color: None,
            shared_brand_name: None,
            shared_brand_reference: None,
            time_zone: None,
        }
    }
}