/* 
 * Client Portal Web API
 *
 * Client Poral Web API
 *
 * OpenAPI spec version: 1.0.0
 * 
 * Generated by: https://github.com/swagger-api/swagger-codegen.git
 */

/// AllocationInnerSectorLong : long positions allocation

#[allow(unused_imports)]
use serde_json::Value;

#[derive(Debug, Serialize, Deserialize)]
pub struct AllocationInnerSectorLong {
  #[serde(rename = "Communications")]
  communications: Option<f32>,
  #[serde(rename = "Energy")]
  energy: Option<f32>,
  #[serde(rename = "Financial")]
  financial: Option<f32>,
  #[serde(rename = "Others")]
  others: Option<f32>,
  #[serde(rename = "Technology")]
  technology: Option<f32>,
  #[serde(rename = "Utilities")]
  utilities: Option<f32>
}

impl AllocationInnerSectorLong {
  /// long positions allocation
  pub fn new() -> AllocationInnerSectorLong {
    AllocationInnerSectorLong {
      communications: None,
      energy: None,
      financial: None,
      others: None,
      technology: None,
      utilities: None
    }
  }

  pub fn set_communications(&mut self, communications: f32) {
    self.communications = Some(communications);
  }

  pub fn with_communications(mut self, communications: f32) -> AllocationInnerSectorLong {
    self.communications = Some(communications);
    self
  }

  pub fn communications(&self) -> Option<&f32> {
    self.communications.as_ref()
  }

  pub fn reset_communications(&mut self) {
    self.communications = None;
  }

  pub fn set_energy(&mut self, energy: f32) {
    self.energy = Some(energy);
  }

  pub fn with_energy(mut self, energy: f32) -> AllocationInnerSectorLong {
    self.energy = Some(energy);
    self
  }

  pub fn energy(&self) -> Option<&f32> {
    self.energy.as_ref()
  }

  pub fn reset_energy(&mut self) {
    self.energy = None;
  }

  pub fn set_financial(&mut self, financial: f32) {
    self.financial = Some(financial);
  }

  pub fn with_financial(mut self, financial: f32) -> AllocationInnerSectorLong {
    self.financial = Some(financial);
    self
  }

  pub fn financial(&self) -> Option<&f32> {
    self.financial.as_ref()
  }

  pub fn reset_financial(&mut self) {
    self.financial = None;
  }

  pub fn set_others(&mut self, others: f32) {
    self.others = Some(others);
  }

  pub fn with_others(mut self, others: f32) -> AllocationInnerSectorLong {
    self.others = Some(others);
    self
  }

  pub fn others(&self) -> Option<&f32> {
    self.others.as_ref()
  }

  pub fn reset_others(&mut self) {
    self.others = None;
  }

  pub fn set_technology(&mut self, technology: f32) {
    self.technology = Some(technology);
  }

  pub fn with_technology(mut self, technology: f32) -> AllocationInnerSectorLong {
    self.technology = Some(technology);
    self
  }

  pub fn technology(&self) -> Option<&f32> {
    self.technology.as_ref()
  }

  pub fn reset_technology(&mut self) {
    self.technology = None;
  }

  pub fn set_utilities(&mut self, utilities: f32) {
    self.utilities = Some(utilities);
  }

  pub fn with_utilities(mut self, utilities: f32) -> AllocationInnerSectorLong {
    self.utilities = Some(utilities);
    self
  }

  pub fn utilities(&self) -> Option<&f32> {
    self.utilities.as_ref()
  }

  pub fn reset_utilities(&mut self) {
    self.utilities = None;
  }

}



