tread.io MaterialRates API
The MaterialRates API from tread.io — 5 operation(s) for materialrates.
The MaterialRates API from tread.io — 5 operation(s) for materialrates.
openapi: 3.0.3
info:
title: Horizon API V1 AccountExternalTruckIdentifier MaterialRates API
version: '1.0'
contact:
name: Tread
url: https://tread.io
email: developers@tread.io
description: 'This is the Version 1 implementation.
When in doubt we default to the practices outlined [here](https://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api#advanced-queries)'
license:
name: Private
url: https://tread.io
servers:
- description: production
url: https://api.tread-horizon.com
security:
- bearerAuth: []
tags:
- name: MaterialRates
paths:
/v1/companies/{company-id}/material_rates:
parameters:
- schema:
type: string
format: uuid
name: company-id
in: path
required: true
description: Company ID
- $ref: '#/components/parameters/Accept-Language'
post:
summary: Create a MaterialRate within a Company context
tags:
- MaterialRates
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/MaterialRate-Read'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/Error'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
'415':
$ref: '#/components/responses/Error'
'422':
$ref: '#/components/responses/ModelError'
operationId: post-v1-companies-company-id-material_rates
description: 'Create a `MaterialRate` within a specific `Company` context.
This endpoint requires the `create_material_rate` permission.'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MaterialRate-Create'
get:
summary: Retrieve MaterialRates that belong to a Company
tags:
- MaterialRates
responses:
'200':
description: OK
headers:
Link:
schema:
type: string
description: Contains prev and next links for pagination
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
type: array
x-stoplight:
id: n3g0iyrcw3cxs
items:
$ref: '#/components/schemas/MaterialRate-Read'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
operationId: get-v1-companies-company-id-material_rates
x-stoplight:
id: km4orqg4khs32
description: 'Retrieve `MaterialRates` for a `Company`.
- When retrieving `Company`-default `MaterialRates`, use `filter[default_only]=true`.
- When retrieving `Customer Account`-specific `MaterialRates`, use `filter[customer_account_id]=customer_account_uuid`.'
parameters:
- $ref: '#/components/parameters/page-limit'
- $ref: '#/components/parameters/page-after'
- $ref: '#/components/parameters/page-before'
- $ref: '#/components/parameters/filter-customer_account_id'
- $ref: '#/components/parameters/filter-default_only'
- $ref: '#/components/parameters/filter-material_ids'
- $ref: '#/components/parameters/filter-project_ids'
- $ref: '#/components/parameters/filter-site_ids'
/v1/companies/{company-id}/material_rates/typeahead:
parameters:
- schema:
type: string
format: uuid
name: company-id
in: path
required: true
description: Company ID
- $ref: '#/components/parameters/Accept-Language'
get:
summary: Typeahead search on MaterialRates for a Company
tags:
- MaterialRates
responses:
'200':
description: OK
headers:
Link:
schema:
type: string
description: Contains prev and next links for pagination
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
type: array
x-stoplight:
id: 5abtl41lpwhjr
items:
$ref: '#/components/schemas/MaterialRate-Read-Typeahead'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
operationId: get-v1-companies-company-id-material_rates-typeahead
x-stoplight:
id: fbdn0euda5mbc
x-internal: true
description: '`search[site][query]` is a typeahead against the `MaterialRate`''s `Site`''s `name`'
parameters:
- $ref: '#/components/parameters/page-limit'
- $ref: '#/components/parameters/page-after'
- $ref: '#/components/parameters/page-before'
- $ref: '#/components/parameters/search-site-query'
- $ref: '#/components/parameters/filter-customer_account_id'
- $ref: '#/components/parameters/filter-project_id'
- $ref: '#/components/parameters/filter-material_id'
- $ref: '#/components/parameters/filter-site_id'
/v1/material_rates:
parameters:
- $ref: '#/components/parameters/Accept-Language'
post:
summary: Create a MaterialRate
tags:
- MaterialRates
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/MaterialRate-Read'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/Error'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
'415':
$ref: '#/components/responses/Error'
'422':
$ref: '#/components/responses/ModelError'
operationId: post-v1-material_rates
x-stoplight:
id: jca6qthq49z0o
description: 'Create a `MaterialRate`.
This endpoint requires the `create_material_rate` permission.'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MaterialRate-Create'
/v1/material_rates/{id}:
parameters:
- schema:
type: string
format: uuid
name: id
in: path
required: true
description: MaterialRate ID
- $ref: '#/components/parameters/Accept-Language'
get:
summary: Retrieve a single MaterialRate
tags:
- MaterialRates
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/MaterialRate-Read'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
operationId: get-v1-material_rates-id
x-stoplight:
id: ehe1z9phshp18
description: Retrieve a `MaterialRate` by ID.
patch:
summary: Update a MaterialRate
tags:
- MaterialRates
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/MaterialRate-Read'
'400':
$ref: '#/components/responses/Error'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/Error'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
'415':
$ref: '#/components/responses/Error'
'422':
$ref: '#/components/responses/ModelError'
operationId: patch-v1-material_rates-id
x-stoplight:
id: xg0rca5uv71ia
description: 'Update a `MaterialRate` by ID.
This endpoint requires the `edit_material_rate` permission.'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MaterialRate-Update'
delete:
summary: Delete a MaterialRate
tags:
- MaterialRates
responses:
'204':
description: No Content
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/Error'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
'422':
$ref: '#/components/responses/ModelError'
operationId: delete-v1-material_rates-id
x-stoplight:
id: rj8qvz9fhm7jr
description: 'Delete a `MaterialRate` by ID.
This endpoint requires the `edit_material_rate` permission.'
/v1/projects/{project-id}/material_rates:
parameters:
- schema:
type: string
format: uuid
name: project-id
in: path
required: true
description: Project ID
- $ref: '#/components/parameters/Accept-Language'
get:
summary: Retrieve MaterialRates of a Project
tags:
- MaterialRates
responses:
'200':
description: OK
headers:
Link:
schema:
type: string
description: Contains prev and next links for pagination
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
type: array
x-stoplight:
id: 887nads4836tt
items:
$ref: '#/components/schemas/MaterialRate-Read'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
operationId: get-v1-projects-project-id-material_rates
x-stoplight:
id: qvi8fjfhnaos4
description: Retrieve `MaterialRates` of a `Project`.
x-internal: false
parameters:
- $ref: '#/components/parameters/page-limit'
- $ref: '#/components/parameters/page-after'
- $ref: '#/components/parameters/page-before'
components:
responses:
ModelError:
description: ''
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ModelError-Response'
Error:
description: Error response
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/Error-Response'
UnauthenticatedError:
description: Example response
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/UnauthenticatedError-Response'
schemas:
MaterialRate-Read:
title: MaterialRate-Read
x-stoplight:
id: dovckk0ttfvcr
allOf:
- $ref: '#/components/schemas/Identifier'
- type: object
required:
- buy_price
- sell_price
- unit_of_measure
- material
- company
properties:
buy_price:
type: string
x-stoplight:
id: 2qho4z34qhk0l
nullable: true
sell_price:
type: string
x-stoplight:
id: l3zcrql2c3o8j
nullable: true
unit_of_measure:
$ref: '#/components/schemas/OrderUnitOfMeasure'
material:
$ref: '#/components/schemas/Material-Read-Nested'
project:
$ref: '#/components/schemas/Project-Read-Nested'
site:
$ref: '#/components/schemas/Site-Read-Nested'
customer_account:
$ref: '#/components/schemas/Account-Read-Nested'
company:
$ref: '#/components/schemas/Company-Read-Nested'
- $ref: '#/components/schemas/Timestamps'
CompanyShare-Read-Nested:
title: CompanyShare-Read-Nested
x-stoplight:
id: makajouqsb7jq
allOf:
- $ref: '#/components/schemas/Identifier'
- type: object
x-stoplight:
id: s6h0nfzt2fjry
required:
- external_id
- ticket_match_id
- sender_company
- dispatchable
- schedule_on
- rate_override
- expires_at
properties:
external_id:
type: string
x-stoplight:
id: c9ls3nrhbih3v
nullable: true
ticket_match_id:
type: string
x-stoplight:
id: a1cd3nrhbih3v
nullable: true
sender_company:
$ref: '#/components/schemas/Company-Read-Nested'
dispatchable:
type: boolean
x-stoplight:
id: kd884ihz6qi6w
schedule_on:
type: boolean
x-stoplight:
id: kd884ihz61234
rate_override:
type: boolean
x-stoplight:
id: mq4osazzielxo
expires_at:
type: string
x-stoplight:
id: aaa111jpq0ga9
format: date-time
description: ISO8601 timestamp with local timezone
nullable: true
Error-Response:
title: Error-Response
x-stoplight:
id: 52cydhphee3qe
type: object
required:
- error
properties:
error:
$ref: '#/components/schemas/Error'
additionalProperties: false
GeofenceType:
title: GeofenceType
x-stoplight:
id: geahowr9r8ly1
nullable: true
enum:
- moving
- circle
- polygon
readOnly: true
AccountType:
title: AccountType
x-stoplight:
id: i4vfmd4rwrq8p
enum:
- customer
- vendor
example: customer
NextBillionGeofence-Read:
title: NextBillionGeofence-Read
x-stoplight:
id: 60y0z4bb3pu6m
allOf:
- $ref: '#/components/schemas/Identifier'
- $ref: '#/components/schemas/Geofence-Data'
TreadId:
title: TreadId
x-stoplight:
id: 43k4t5tl359m4
type: object
required:
- tread_id
properties:
tread_id:
type: string
x-stoplight:
id: zi3ld7djflw6f
pattern: ^[0-9A-F]{6}$
minLength: 6
maxLength: 6
example: ABC123
description: Tread ID
additionalProperties: false
Discardable:
title: Discardable
x-stoplight:
id: 46axlb8u5wjay
type: object
required:
- discarded_at
properties:
discarded_at:
type: string
x-stoplight:
id: cy8t6fecoyxbo
format: date-time
nullable: true
additionalProperties: false
Site-Read-Typeahead:
title: Site-Read-Typeahead
x-stoplight:
id: wnzkdq5df4apa
allOf:
- $ref: '#/components/schemas/Identifier'
- type: object
required:
- name
- external_id
properties:
name:
type: string
description: Site name
company_share:
$ref: '#/components/schemas/CompanyShare-Read-Nested'
external_id:
type: string
x-stoplight:
id: tt6lx8lw29aiu
nullable: true
GeofenceTag:
title: GeofenceTag
x-stoplight:
id: anytkmb3ydi6c
enum:
- scaling
- site
- loading
- unloading
- check_in
- ticketing
Material-Read-Typeahead:
title: Material-Read-Typeahead
x-stoplight:
id: 30glh3las0ydb
allOf:
- $ref: '#/components/schemas/Identifier'
- type: object
required:
- name
- external_id
properties:
name:
type: string
description: Material name
external_id:
type: string
description: Material external_id
x-stoplight:
id: ml0l0yvuz5u6d
nullable: true
Account-Read-Typeahead:
title: Account-Read-Typeahead
x-stoplight:
id: 0jtlv216ot4og
allOf:
- $ref: '#/components/schemas/Identifier'
- type: object
x-stoplight:
id: zinx4pmrlrvkg
required:
- name
- schedule_on
properties:
name:
type: string
x-stoplight:
id: 675oqyzkv2xvp
description: Account name
connected_company:
type: object
x-stoplight:
id: 9e36j656fhsso
required:
- id
properties:
id:
type: string
x-stoplight:
id: 8nxy7z0w3h51m
format: uuid
schedule_on:
type: boolean
x-stoplight:
id: 4yv7e5z57qmn2
x-internal: true
Address-Read-Nested:
title: Address-Read-Nested
x-stoplight:
id: cvym2dzuo375q
allOf:
- $ref: '#/components/schemas/Identifier'
- $ref: '#/components/schemas/Address-Read'
Error:
title: Error
x-stoplight:
id: 3g57kkik3l464
type: object
description: An Error.
required:
- code
properties:
code:
type: string
x-stoplight:
id: 7o9x1t8v0bgfo
additionalProperties: false
Project-Read-Nested:
title: Project-Read-Nested
x-stoplight:
id: 9ene929zmvaog
allOf:
- $ref: '#/components/schemas/Project-Read-Typeahead'
- type: object
x-stoplight:
id: 8t1ly6sefwmit
required:
- po_job_number
- internal_notes
- job_notes
- notes
- order_notes
properties:
po_job_number:
type: string
x-stoplight:
id: w5ajmms5o1rjq
nullable: true
internal_notes:
type: string
x-stoplight:
id: 3hbaltdu1u159
nullable: true
job_notes:
type: string
x-stoplight:
id: fupx5op0cmel2
nullable: true
notes:
type: string
x-stoplight:
id: 96qr64lmtj36s
nullable: true
order_notes:
type: string
x-stoplight:
id: o38gpshallijh
nullable: true
ModelError-Item:
title: ModelError-Item
x-stoplight:
id: b93chwval2t8d
type: object
required:
- model
- field
- message
properties:
model:
type: string
x-stoplight:
id: 30myfyjkno8ao
description: The Model associated with this Error
field:
type: string
x-stoplight:
id: 8gl4ed3uxhdws
description: The field associated with this Error
message:
type: string
x-stoplight:
id: bmgbrtmw17qsj
description: The Error message
additionalProperties: false
UnauthenticatedError:
title: UnauthenticatedError
x-stoplight:
id: 202o69l0fs40h
allOf:
- $ref: '#/components/schemas/Error'
- type: object
x-stoplight:
id: tg10dt7s0l6bw
properties:
error_type:
type: string
x-stoplight:
id: wvq8c0qsym4hz
required:
- error_type
ModelError:
title: ModelError
x-stoplight:
id: nhp6714o4j1qt
description: A Model-specific error
allOf:
- $ref: '#/components/schemas/Error'
- type: object
required:
- errors
properties:
errors:
type: array
x-stoplight:
id: m4ul9vcq2deh6
items:
$ref: '#/components/schemas/ModelError-Item'
Timestamps:
title: Timestamps
x-stoplight:
id: t82ecgfu0oj00
type: object
required:
- created_at
- updated_at
properties:
created_at:
type: string
x-stoplight:
id: gjj950jpq0ga9
format: date-time
description: ISO8601 timestamp with local timezone
updated_at:
type: string
x-stoplight:
id: bwcuyfwc7aj0e
format: date-time
description: ISO8601 timestamp with local timezone
additionalProperties: false
Identifier:
title: Identifier
x-stoplight:
id: gnd39lue5v7ol
type: object
required:
- id
properties:
id:
type: string
x-stoplight:
id: 2e38hjk4zd58m
format: uuid
additionalProperties: false
Contact-Read-Nested:
title: Contact-Read-Nested
x-stoplight:
id: 3u6d8qhsz5ehn
allOf:
- $ref: '#/components/schemas/Identifier'
- type: object
required:
- name
- email
- phone
properties:
name:
type: string
x-stoplight:
id: sd80y9pbgvkok
nullable: true
email:
type: string
x-stoplight:
id: 883fmt34pdeaj
nullable: true
phone:
type: string
x-stoplight:
id: wdtqyju4t4u06
example: '+18885551234'
nullable: true
description: ''
NullableGeofenceType:
title: NullableGeofenceType
x-stoplight:
id: ii94t82oqh5xo
allOf:
- $ref: '#/components/schemas/GeofenceType'
nullable: true
type: string
Company-Read-Nested:
title: Company-Read-Nested
x-stoplight:
id: cb2kn77qmf1l7
description: Compact Company model for nested reads.
allOf:
- $ref: '#/components/schemas/Identifier'
x-stoplight:
id: jwsufva4znm91
- $ref: '#/components/schemas/TreadId'
- type: object
properties:
legal_name:
type: string
x-stoplight:
id: yc10t8hieecwk
description: The Company's name. Must be globally unique.
company_type:
$ref: '#/components/schemas/CompanyType'
required:
- legal_name
- company_type
OrderUnitOfMeasure:
title: OrderUnitOfMeasure
x-stoplight:
id: kahcgn7w8swdv
enum:
- Load
- Tonne
- Ton
- Yard
- Meter
- Foot
- Liter
- Hour
- Bushel
- Gallon
- CubicMeter
- Mile
- Kilometer
- Barrel
- Bag
- Pallet
example: Load
MaterialRate-Read-Typeahead:
title: MaterialRate-Read-Typeahead
x-stoplight:
id: n7ssu2zszdqgx
allOf:
- $ref: '#/components/schemas/Identifier'
- type: object
required:
- sell_price
- buy_price
- unit_of_measure
properties:
sell_price:
type: string
x-stoplight:
id: dskmpvrizqinj
nullable: true
buy_price:
type: string
x-stoplight:
id: w107s2wjkvowa
nullable: true
unit_of_measure:
$ref: '#/components/schemas/NullableOrderUnitOfMeasure'
site:
$ref: '#/components/schemas/Site-Read-Typeahead'
material:
$ref: '#/components/schemas/Material-Read-Typeahead'
project:
$ref: '#/components/schemas/Project-Read-Typeahead'
customer_account:
$ref: '#/components/schemas/Account-Read-Typeahead'
MaterialRate-Create:
title: MaterialRate-Create
x-stoplight:
id: lkwrvhtgd86bk
type: object
required:
- material_id
- unit_of_measure
properties:
material_id:
type: string
x-stoplight:
id: gky0fz3oc9sg2
format: uuid
project_id:
type: string
x-stoplight:
id: 6enxjo15yfscn
format: uuid
nullable: true
site_id:
type: string
x-stoplight:
id: q7jlxcjtr6f3x
format: uuid
nullable: true
customer_account_id:
type: string
x-stoplight:
id: yfrfnmb89oo5j
format: uuid
nullable: true
buy_price:
type: number
x-stoplight:
id: zi0uh93jp6p3q
nullable: true
sell_price:
type: number
x-stoplight:
id: zjq8i1vnall2w
nullable: true
unit_of_measure:
$ref: '#/components/schemas/OrderUnitOfMeasure'
additionalProperties: false
Project-Read-Typeahead:
title: Project-Read-Typeahead
x-stoplight:
id: 3wdg6ghyvsknb
allOf:
- $ref: '#/components/schemas/Identifier'
- type: object
required:
- name
- external_id
properties:
name:
type: string
description: Project name
external_id:
type: string
x-stoplight:
id: 7kipqxvhrgvk0
nullable: true
CompanyType:
title: CompanyType
x-stoplight:
id: dkzo7gjbtb1b3
enum:
- broker
- contractor
- hauler
- owner_operator
- producer
- super
example: hauler
description: Company Type
Account-Read-Nested:
title: Account-Read-Nested
x-stoplight:
id: zo8r3gsz1tm5h
allOf:
- $ref: '#/components/schemas/Identifier'
- $ref: '#/components/schemas/Discardable'
- type: object
x-stoplight:
id: gl7hua7pv8xka
required:
- name
- account_types
- external_id
- accounting_id
- company
- schedule_on
properties:
name:
type: string
x-stoplight:
id: a7g065w5byfcf
account_types:
type: array
x-stoplight:
id: a0e9c3lpr1wad
items:
$ref: '#/components/schemas/AccountType'
external_id:
type: string
x-stoplight:
id: yfrec4y0a90cb
nullable: true
accounting_id:
type: string
x-stoplight:
id: yfsec5y0a91cb
nullable: true
company:
type: object
x-stoplight:
id: 9loqtu14mvlnq
required:
- id
properties:
id:
type: string
x-stoplight:
id: udjkdjrz08pzr
format: uuid
billing_address:
$ref: '#/components/schemas/Address-Read-Nested'
schedule_on:
type: boolean
x-stoplight:
id: 0g9kx77zym4ok
connected_company:
$ref: '#/components/schemas/Company-Read-Nested'
billing_contact:
$ref: '#/components/schemas/Contact-Read-Nested'
Site-Read-Nested:
title: Site-Read-Nested
x-stoplight:
id: rt6xqxsfzf4iv
allOf:
- $ref: '#/components/schemas/Identifier'
- type: object
required:
- name
- lat
- lon
- full_address
- routable
properties:
name:
type: string
x-stoplight:
id: 7r0x7wicrvwyy
lat:
type: string
x-stoplight:
id: cr6y5v0hdl5oo
nullable: true
lon:
type: string
x-stoplight:
id: f23mkvamncbuw
nullable: true
address:
$ref: '#/components/schemas/Address-Read-Nested'
full_address:
type: string
x-stoplight:
id: uxixxnmgfi47i
nullable: true
routable:
type: boolean
x-stoplight:
id: uobfxkm0hujhv
next_billion_geofence:
$ref: '#/components/schemas/NextBillionGeofence-Read'
- $ref: '#/components/schemas/Discardable'
Address-Read:
title: Address-Read
x-stoplight:
id: v1mcd2qgns2tf
type: object
required:
- thoroughfare
- premise
- locality
- administrative_area
- postal_code
- country
- lat
- lon
- place_id
properties:
thoroughfare:
type: string
x-stoplight:
id: 8wrr7qkc9ilqn
premise:
type: string
x-stoplight:
id: z4jth408out1q
nullable: true
locality:
type: string
x-stoplight:
id: kfby6wqpgvxbz
administrative_area:
type: string
x-stoplight:
id: c9bkrloxf4t8d
postal_code:
type: string
x-stoplight:
id: 7zq51k1mof3o3
country:
type: string
x-stoplight:
id: iydw9q619ya01
pattern: ^[A-Z]{2}
example: US
minLength: 2
maxLength: 2
lat:
type: string
x-stoplight:
id: kqu1qtf9rivh1
description: "latitude of the `Address`. \n\nMust be a stringified number between -90 and 90 inclusive.\n\nRequired if `lon` is present."
nullable: true
lon:
type: string
x-stoplight:
id: oly2yabkzpk9g
description: "longitude of the `Address`. \n\nMust be a stringified number between -180 and 180 inclusive.\n\nRequired if `lat` is present."
nullable: true
place_id:
type: string
x-stoplight:
id: im1fdq7qqxdij
description: NextBillion placeID
nullable: true
additionalProperties: false
UnauthenticatedError-Response:
title: UnauthenticatedError-Response
x-stoplight:
id: o477eph7ttbzt
type: object
required:
- error
properties:
error:
$ref: '#/components/schemas/UnauthenticatedError'
additionalProperties: false
Geofence-Data:
title: Geofence-Data
x-stoplight:
id: ay73k76oae8gm
type: object
properties:
id:
type: string
format: uuid
x-stoplight:
id: m9n8p7q6r5s4t
description: NextBillionGeofence ID
geofence:
type: object
x-stoplight:
id: bo67u046r1ibk
required:
- name
- type
properties:
id:
type: string
x-stoplight:
id: nm2o97jli2zqm
format: uuid
description: NextBillion Geofence ID
name:
type: string
x-stoplight:
id: x5sp8wq8d2ack
type:
type: string
x-stoplight:
id: d91rv1gbtfkm0
description: '`circle` or `polygon`'
geojson:
type: objec
# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/treadio/refs/heads/main/openapi/treadio-materialrates-api-openapi.yml