pub const DEFAULT_BASE_URL: &str = "https://tango.makegov.com";
pub const SHAPE_CONTRACTS_MINIMAL: &str =
"key,piid,award_date,recipient(display_name),description,total_contract_value";
pub const SHAPE_BUDGET_ACCOUNTS_MINIMAL: &str = concat!(
"id,federal_account_symbol,fiscal_year,data_through_period,agency_code,agency_name,",
"bureau_name,",
"account_title,bea_category,on_off_budget,subfunction_code,account_category,",
"requested_ba,enacted_ba,apportioned,obligated_total,outlayed_total,",
"unobligated_balance,contract_obligated,attribution_status,",
"attribution_confidence,contract_obligated_estimated,",
"contract_share_of_obligated_capped,",
"assistance_obligated,obligated_to_apportioned_pct_capped,",
"obligated_to_enacted_pct_capped,outlayed_to_obligated_pct_capped,",
"ba_growth_next_year_pct,source_anomalies",
);
pub const SHAPE_ENTITIES_MINIMAL: &str = "uei,legal_business_name,cage_code,business_types";
pub const SHAPE_ENTITIES_COMPREHENSIVE: &str = concat!(
"uei,legal_business_name,dba_name,cage_code,",
"business_types,primary_naics,naics_codes,psc_codes,",
"email_address,entity_url,description,capabilities,keywords,",
"physical_address,mailing_address,",
"federal_obligations(*),congressional_district",
);
pub const SHAPE_FORECASTS_MINIMAL: &str =
"id,title,anticipated_award_date,fiscal_year,naics_code,status";
pub const SHAPE_OPPORTUNITIES_MINIMAL: &str =
"opportunity_id,title,solicitation_number,response_deadline,active";
pub const SHAPE_NOTICES_MINIMAL: &str = "notice_id,title,solicitation_number,posted_date";
pub const SHAPE_PROTESTS_MINIMAL: &str =
"case_id,case_number,title,source_system,outcome,filed_date";
pub const SHAPE_CONTRACT_APPEALS_MINIMAL: &str = concat!(
"uuid,board,docket_numbers,decision_date,appellant,judge,",
"decision_type,url,listed",
);
pub const SHAPE_DIBBS_RFQS_MINIMAL: &str = concat!(
"uuid,solicitation,nsn,part_number,nomenclature,quantity,",
"issue_date,return_by_date,is_open",
);
pub const SHAPE_DIBBS_RFPS_MINIMAL: &str =
"uuid,solicitation,nsn,part_number,nomenclature,issued_date,closes_date,is_open";
pub const SHAPE_DIBBS_AWARDS_MINIMAL: &str = concat!(
"uuid,award_number,solicitation,nsn,part_number,nomenclature,",
"awardee_cage,award_date,total_contract_price",
);
pub const SHAPE_EXCLUSIONS_MINIMAL: &str = concat!(
"exclusion_key,display_name,entity_name,uei,classification_type,exclusion_type,",
"excluding_agency_name,activate_date,termination_date,is_currently_excluded",
);
pub const SHAPE_GRANTS_MINIMAL: &str = "grant_id,opportunity_number,title,status(*),agency_code";
pub const SHAPE_IDVS_MINIMAL: &str = concat!(
"key,piid,award_date,recipient(display_name,uei),description,",
"total_contract_value,obligated,idv_type",
);
pub const SHAPE_IDVS_COMPREHENSIVE: &str = concat!(
"key,piid,award_date,description,fiscal_year,total_contract_value,obligated,",
"idv_type,multiple_or_single_award_idv,type_of_idc,period_of_performance(start_date,last_date_to_order),",
"recipient(display_name,legal_business_name,uei,cage),",
"awarding_office(*),funding_office(*),place_of_performance(*),parent_award(key,piid),",
"competition(*),legislative_mandates(*),transactions(*),subawards_summary(*)",
);
pub const SHAPE_VEHICLES_MINIMAL: &str = concat!(
"uuid,solicitation_identifier,is_synthetic_solicitation,program_acronym,",
"organization_id,organization,vehicle_type,description,",
"idv_count,awardee_count,holder_count,order_winner_count,order_count,total_obligated,",
"vehicle_obligations,vehicle_contracts_value,latest_award_date,",
"solicitation_title,solicitation_date",
);
pub const SHAPE_VEHICLES_COMPREHENSIVE: &str = concat!(
"uuid,solicitation_identifier,is_synthetic_solicitation,agency_id,program_acronym,",
"organization_id,organization(*),vehicle_type,who_can_use,",
"solicitation_title,solicitation_description,solicitation_date,opportunity_id,",
"naics_code,psc_code,set_aside,",
"fiscal_year,award_date,latest_award_date,last_date_to_order,",
"description,idv_count,awardee_count,holder_count,order_winner_count,order_count,total_obligated,",
"vehicle_obligations,vehicle_contracts_value,",
"type_of_idc,contract_type,metrics(*)",
);
pub const SHAPE_VEHICLE_AWARDEES_MINIMAL: &str = concat!(
"uuid,key,piid,award_date,title,order_count,idv_obligations,",
"idv_contracts_value,recipient(display_name,uei)",
);
pub const SHAPE_VEHICLE_ORDERS_MINIMAL: &str = concat!(
"key,piid,award_date,obligated,total_contract_value,description,",
"recipient(display_name,uei)",
);
pub const SHAPE_ORGANIZATIONS_MINIMAL: &str = "key,fh_key,name,level,type,short_name";
pub const SHAPE_OTAS_MINIMAL: &str = concat!(
"key,piid,award_date,recipient(display_name,uei),description,",
"total_contract_value,obligated",
);
pub const SHAPE_OTIDVS_MINIMAL: &str = concat!(
"key,piid,award_date,recipient(display_name,uei),description,",
"total_contract_value,obligated,idv_type",
);
pub const SHAPE_SUBAWARDS_MINIMAL: &str =
"award_key,prime_recipient(uei,display_name),subaward_recipient(uei,display_name)";
pub const SHAPE_GSA_ELIBRARY_CONTRACTS_MINIMAL: &str = concat!(
"uuid,contract_number,schedule,recipient(display_name,uei),",
"idv(key,award_date)",
);
pub const SHAPE_ITDASHBOARD_INVESTMENTS_MINIMAL: &str = concat!(
"uii,agency_name,bureau_name,investment_title,",
"type_of_investment,part_of_it_portfolio,updated_time,url",
);
pub const SHAPE_ITDASHBOARD_INVESTMENTS_COMPREHENSIVE: &str = concat!(
"uii,agency_code,agency_name,bureau_code,bureau_name,",
"investment_title,type_of_investment,part_of_it_portfolio,",
"updated_time,url",
);
pub const SHAPE_SLED_OPPORTUNITIES_MINIMAL: &str = concat!(
"opportunity_id,solicitation_number,solicitation_type,title,state,",
"jurisdiction,agency,status,status_reason,delisted_at,posted_date,response_deadline,",
"source_url,has_documents,first_seen_at,last_change_seen_at",
);
pub const SHAPE_SLED_OPPORTUNITIES_COMPREHENSIVE: &str = concat!(
"opportunity_id,solicitation_number,solicitation_type,",
"solicitation_type_source,title,description,state,jurisdiction,agency,",
"status,status_reason,delisted_at,status_computed_at,source_status,source_url,",
"posted_date,response_deadline,response_deadline_original,",
"bid_opening_date,bid_opening_raw,category_codes,has_documents,",
"first_seen_at,last_seen_at,last_change_seen_at,",
"organization(*),contact(*),meta(*),attachments(*),revisions(*)",
);
pub const SHAPE_SLED_REVISIONS_MINIMAL: &str =
"observed_at,sequence,kind,changed_fields,source_declared";
pub const SHAPE_SLED_FORECASTS_MINIMAL: &str = concat!(
"forecast_id,state,agency,title,estimated_advertisement_date,",
"estimated_advertisement_raw,procurement_category,procurement_method,",
"contract_number,incumbent_name,source_url,estimated_value(*)",
);
pub const SHAPE_SLED_FORECASTS_COMPREHENSIVE: &str = concat!(
"forecast_id,state,agency,title,description,",
"estimated_advertisement_date,estimated_advertisement_raw,",
"procurement_category,procurement_method,contract_term,contract_number,",
"incumbent_name,mbe_dbe_goal,delivery_location,source_url,source_status,",
"has_documents,first_seen_at,last_seen_at,",
"organization(*),contact(*),estimated_value(*)",
);
pub const SHAPE_SBIR_TOPICS_MINIMAL: &str = concat!(
"topic_id,topic_number,title,agency,activity,year,",
"solicitation_number,open_date,close_date,listed_open",
);
pub const SHAPE_SBIR_SOLICITATIONS_MINIMAL: &str = concat!(
"solicitation_id,solicitation_number,title,program,activity,",
"cycle_name,solicitation_status,year,start_date,end_date",
);
pub const SHAPE_FEDERAL_REGISTER_MINIMAL: &str = concat!(
"uuid,document_number,publication_date,type,subtype,title,abstract,action,",
"agencies,cfr_references,citation,significant,comments_close_on,effective_on,",
"html_url,pdf_url",
);
pub const SHAPE_FEDERAL_REGISTER_COMPREHENSIVE: &str = concat!(
"uuid,document_number,publication_date,type,subtype,title,abstract,action,",
"agencies,cfr_references,citation,significant,comments_close_on,effective_on,",
"html_url,pdf_url,dates,signing_date,start_page,end_page,volume,docket_ids,",
"dockets,regulation_id_numbers,topics,correction_of,corrections,",
"executive_order_number,presidential_document_number,proclamation_number,",
"comment_url,regulations_dot_gov_url,raw_text_url,body_html_url",
);
pub const SHAPE_EBUY_REQUESTS_MINIMAL: &str = concat!(
"rfq_id,request_type,title,schedule,sin,status,buyer_name,buyer_agency,",
"buyer_agency_code,reference_number,issue_date,close_date,attachment_count,",
"link_count,last_seen",
);
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn vehicle_shapes_carry_company_counts() {
for (name, shape) in [
("SHAPE_VEHICLES_MINIMAL", SHAPE_VEHICLES_MINIMAL),
("SHAPE_VEHICLES_COMPREHENSIVE", SHAPE_VEHICLES_COMPREHENSIVE),
] {
let fields: Vec<&str> = shape.split(',').collect();
for want in ["awardee_count", "holder_count", "order_winner_count"] {
assert!(
fields.contains(&want),
"{name} should carry {want:?}: {shape:?}"
);
}
}
}
}