def get_tag_report(self, tag_name) -> pd.DataFrame: item_name = f"'{tag_name}' Resources Cost" results = self.cost_client.request_cost_and_usage( start=get_days_back(self.config.periods.tags_report_days_back), end=get_today(), request_name=item_name, granularity='DAILY', group_by_tags=[tag_name]) return self.create_data_frame_from_results(results)
def get_services_report(self) -> pd.DataFrame: item_name = consts.ReportItemName.SERVICES_COST.value results = self.cost_client.request_cost_and_usage( start=get_days_back(self.config.periods.services_report_days_back), end=get_today(), request_name=item_name, granularity='DAILY', group_by_dimensions=['SERVICE']) return self.create_data_frame_from_results(results)
def get_daily_report(self) -> pd.DataFrame: item_name = consts.ReportItemName.DAILY_COST.value results = self.cost_client.request_cost_and_usage( start=get_days_back(self.config.periods.daily_report_days_back), end=get_today(), request_name=item_name, group_by_dimensions=['LINKED_ACCOUNT'], granularity='DAILY') return self.create_data_frame_from_results(results)
def get_monthly_report(self) -> pd.DataFrame: item_name = consts.ReportItemName.MONTHLY_COST.value results = self.cost_client.request_cost_and_usage( start=get_months_back( self.config.periods.monthly_report_months_back), end=get_today(), request_name=item_name, group_by_dimensions=['LINKED_ACCOUNT']) dataframe = self.create_data_frame_from_results(results) return dataframe
def get_available_tags(self) -> List[str]: return self.cost_client.get_available_tags(start_date=get_days_back( self.config.periods.tags_report_days_back), end_date=get_today())
def get_current_month_forecast(self) -> pd.DataFrame: forecast = self.cost_client.get_monthly_cost_forecast( get_today().isoformat(), get_first_day_next_month().isoformat()) return pd.DataFrame.from_dict({'values': [forecast]})