RFQ Models

Request-for-quote models, including QuoteRequestDisplayInfo returned by api.jobs.rfq.list.

RFQ models for the ACPortal API.

class ab.api.models.rfq.RfqForJobParams(*, companyId=None)[source]

Bases: RequestModel

Query parameters for GET /rfq/forjob/{jobId}.

Parameters:

companyId (str | None)

company_id: str | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'forbid', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.rfq.RfqAcceptWinnerParams(*, finalAmount=None)[source]

Bases: RequestModel

Query parameters for POST /rfq/{rfqId}/acceptwinner.

Parameters:

finalAmount (float | None)

final_amount: float | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'forbid', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.rfq.QuoteRequestDisplayInfo(*, rfqId=None, requestId=None, jobId=None, companyId=None, providerCompanyId=None, providerCompanyName=None, companyName=None, companyCode=None, contactName=None, contactPhone=None, contactEmail=None, serviceType=None, type=None, status=None, quotedPrice=None, requestedAmount=None, agentAmount=None, finalAmount=None, transitDays=None, isWinner=None, isActive=None, agentResponded=None, dontUse=None, negotiablePrice=None, expedited=None, notifyBidder=None, apiSendStatus=None, commercialCapabilities=None, address=None, miles=None, comments=None, message=None, dueDate=None, sentUtc=None, sentBy=None, jobServiceStart=None, jobServiceEnd=None, agentAmountJobState=None, **extra_data)[source]

Bases: ResponseModel

RFQ listing entry — GET /rfq/{rfqId} and GET /job/{jobDisplayId}/rfq.

Parameters:
  • rfqId (str | None)

  • requestId (int | None)

  • jobId (str | None)

  • companyId (str | None)

  • providerCompanyId (str | None)

  • providerCompanyName (str | None)

  • companyName (str | None)

  • companyCode (str | None)

  • contactName (str | None)

  • contactPhone (str | None)

  • contactEmail (str | None)

  • serviceType (str | None)

  • type (int | None)

  • status (int | None)

  • quotedPrice (float | None)

  • requestedAmount (float | None)

  • agentAmount (float | None)

  • finalAmount (float | None)

  • transitDays (int | None)

  • isWinner (bool | None)

  • isActive (bool | None)

  • agentResponded (bool | None)

  • dontUse (bool | None)

  • negotiablePrice (bool | None)

  • expedited (bool | None)

  • notifyBidder (bool | None)

  • apiSendStatus (int | None)

  • commercialCapabilities (int | None)

  • address (dict | None)

  • miles (float | None)

  • comments (List[dict] | None)

  • message (str | None)

  • dueDate (str | None)

  • sentUtc (str | None)

  • sentBy (str | None)

  • jobServiceStart (str | None)

  • jobServiceEnd (str | None)

  • agentAmountJobState (str | None)

  • extra_data (Any)

rfq_id: str | None
request_id: int | None
job_id: str | None
company_id: str | None
provider_company_id: str | None
provider_company_name: str | None
company_name: str | None
company_code: str | None
contact_name: str | None
contact_phone: str | None
contact_email: str | None
service_type: str | None
type: int | None
status: int | None
quoted_price: float | None
requested_amount: float | None
agent_amount: float | None
final_amount: float | None
transit_days: int | None
is_winner: bool | None
is_active: bool | None
agent_responded: bool | None
dont_use: bool | None
negotiable_price: bool | None
expedited: bool | None
notify_bidder: bool | None
api_send_status: int | None
commercial_capabilities: int | None
address: dict | None
miles: float | None
comments: List[dict] | None
message: str | None
due_date: str | None
sent_utc: str | None
sent_by: str | None
job_service_start: str | None
job_service_end: str | None
agent_amount_job_state: str | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'allow', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.rfq.QuoteRequestStatus(*, status=None, rfqId=None, isActive=None, **extra_data)[source]

Bases: ResponseModel

RFQ status for a service/company combo — GET /job/{id}/rfq/statusof/…

Parameters:
  • status (str | None)

  • rfqId (str | None)

  • isActive (bool | None)

  • extra_data (Any)

status: str | None
rfq_id: str | None
is_active: bool | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'allow', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.rfq.AcceptModel(*, notes=None)[source]

Bases: RequestModel

Body for POST /rfq/{rfqId}/accept and POST /rfq/{rfqId}/comment.

Parameters:

notes (str | None)

notes: str | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'forbid', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].