export interface IResourceType {
  'name': string;
  'display_name': string;
}

export interface IResourceUsage {
  resource_id: string;
  display_name: string;
  resource_type?: IResourceType;
  region: string;
  price: string;
  history: [{
    rule: number;
    start: Date;
    end: Date;
    modifiers: any[];
    attribute_value: number;
    name: string;
    price: number;
    base_price: string;
    price_details: {
      unit_display: string;
      units: number;
      unit_price: number;
      time_unit: string;
    };
    modifiers_summary: Array<{
      modifier: number;
      price: number;
      price_details: {
        unit_display: string;
        units: number;
        unit_price: number;
        time_unit: string;
      };
    }>;
  }];
}

export interface IMetricUsage {
  name: string;
  price: string;
  history: [{
    rule_display: number;
    start_dt: Date;
    end_dt: Date;
    price: number;
    base_price: string;
    price_details: {
      unit_display: string;
      units: number;
      unit_price: number;
      time_unit: string;
      quantity: number;
      timespan: number;
      attribute_unit_display: string;
    };
  }];
}

export interface IUsageDetails {
  resource_name: string;
  resource_type: string;
  price: number;
  usage: IResourceUsage[];
}
