Examples

GPU rental

See how a compute Service describes one rentable graphics processing unit configuration and directs an Agent to an authenticated quote operation. ODP makes the configuration discoverable; the compute Service confirms capacity, returns current terms, allocates resources, and manages the rental.

What this Offering represents

The a100-80gb-us-west Offering describes one dedicated NVIDIA A100 accelerator with 80 gibibytes of memory in the us-west-2 region. It is a rentable configuration, not an active compute instance, capacity reservation, or running workload.

FieldValuePurpose
ida100-80gb-us-westIdentifies this rentable configuration within the Service.
web_url/gpu/a100-80gb-us-westLinks to the human-facing configuration page at the Service Origin.
price2.40 USD per gpu-hourProvides a discovery-time metered rate.
schemagpu-rental-1.jsonDefines the types, constraints, and units of the compute attributes.
actionsrequest-quoteIdentifies the operation that returns current capacity and price.
{
  "odp_version": "1.0",
  "id": "a100-80gb-us-west",
  "name": "Dedicated NVIDIA A100 80 GB rental",
  "description": "One dedicated A100 accelerator in the us-west-2 region, rented in one-minute increments.",
  "web_url": "/gpu/a100-80gb-us-west",
  "price": {
    "type": "metered",
    "amount": "2.40",
    "currency": "USD",
    "unit": "gpu-hour"
  },
  "schema": {
    "url": "https://compute.example/schemas/gpu-rental-1.json"
  },
  "attributes": {
    "accelerator": {
      "manufacturer": "NVIDIA",
      "model": "A100",
      "count": 1,
      "memory_per_device_gib": 80
    },
    "region": "us-west-2",
    "rental": {
      "minimum_duration_seconds": 600,
      "billing_increment_seconds": 60
    },
    "network_egress_gbps": 25
  },
  "actions": [
    {
      "id": "request-quote",
      "rel": "quote",
      "description": "Request current capacity and price for a requested rental interval.",
      "http": {
        "href": "/quotes",
        "method": "POST",
        "request": {
          "content_type": "application/json",
          "schema": {
            "url": "https://compute.example/schemas/gpu-quote-request-1.json"
          }
        },
        "response_content_types": [
          "application/json"
        ]
      },
      "authentication": "required"
    }
  ]
}

Identify each rentable configuration

Publish a separate Offering when an accelerator model, device count, memory size, region, or other configuration can be independently retrieved, quoted, reserved, or rented. An Agent then selects the complete configuration before choosing one of its Actions.

Keep request choices in the quote

A caller's desired start time and rental duration describe a request for this configuration; they do not identify a different catalog item. Those values belong in the quote request unless the Service publishes them as independently actionable Offerings.

Describe the accelerator

ODP does not define universal compute fields. This Service uses an Attribute Schema to define a nested accelerator object and the other properties of its rental configuration.

AttributeExampleMeaning in this schema
manufacturerNVIDIAThe accelerator manufacturer.
modelA100The accelerator model.
count1The number of accelerator devices in the configuration.
memory_per_device_gib80 GiBThe usable memory on each accelerator device.
regionus-west-2The Service-defined deployment region.

The Offering name uses the familiar label “80 GB,” while the machine-readable attribute and schema specify 80 gibibytes. An Agent relies on the attribute's declared unit when it needs the precise value.

An Agent should validate the attributes against this schema before relying on them. If the schema is unavailable, invalid, unsupported, or does not match the attributes, the Agent treats the attributes as uninterpretable while retaining the Offering's identity, description, Price Preview, web page, and Actions.

State units explicitly

The example schema associates device count, memory, duration, billing increments, and network egress with explicit units. This prevents an Agent from having to infer whether a number represents devices, seconds, gibibytes, or network throughput.

ValueUnit hintMeaning
Accelerator countdeviceNumber of accelerator devices
Memory per deviceGiByGibibytes of usable memory
Rental durationssSeconds
Network egressGbit/sGigabits per second

x-odp-unit and x-odp-comparison are exploratory schema annotations used by these examples. They are presentation and comparison hints, not protocol-owned compute fields or requirements for every ODP Service.

These attribute annotations are separate from the unit field in a metered Price Preview. The Price Preview uses gpu-hour to name the Service-defined unit associated with its advertised rate.

Separate duration from billing increments

minimum_duration_seconds: 600 states that a requested rental must last at least ten minutes. billing_increment_seconds: 60 states that the Service measures billable time in one-minute increments. These fields answer different questions and must not be collapsed into one duration.

Neither value confirms that an accelerator is available for the requested interval or determines the final charge. The quote operation applies the requested timing, current capacity, and current commercial terms.

Qualify network capacity

network_egress_gbps: 25 advertises a maximum network egress value of 25 gigabits per second for this configuration. It does not guarantee that every workload will continuously receive that throughput.

The compute Service defines the conditions that affect actual throughput, including shared infrastructure, destination, traffic policy, and the allocated runtime environment.

Present a metered price

The metered Price Preview advertises 2.40 USD per Service-defined gpu-hour. It provides a rate for discovery and comparison; it is not a final charge, capacity reservation, or promise that the configuration remains available.

Use the quote for the final charge

An Agent can use the advertised rate and a requested duration to present an estimate. The Price Preview does not establish discounts, fees, availability, or final settlement terms. The live quote and any later payment requirement provide the authoritative values.

Request current capacity and price

The caller explicitly selects the request-quote Action before the Agent invokes its compact HTTP target. The Action sends a JSON request to POST /quotes and expects a successful JSON response containing current terms.

FieldValueMeaning
relquoteRequests current terms without allocating the accelerator.
href/quotesResolves against the Service Origin.
methodPOSTSubmits the caller-approved quote request.
content_typeapplication/jsonDeclares the request-body media type.
authenticationrequiredRequires Service authentication before the quote can succeed.

Validate the quote request

The Action's JSON Schema reference describes the quote request body. An Agent retrieves that schema anonymously, validates caller-supplied input against it, and sends a request body only when the caller supplies one or the operation definition supplies a complete value.

The gpu-quote-request-1.json URL is illustrative, and that schema is not included with this example. A deployed Service must publish the referenced schema. If the schema cannot be used, only this Action becomes unusable; the Offering and its other fields remain available.

Follow live access and payment requirements

authentication: required tells the Agent that the quote operation cannot succeed anonymously. The Agent begins the request in its current authentication context and follows a live AEP challenge when the Service requires enrollment or authentication.

If the endpoint requires payment, its live MPP or x402 challenge provides the authoritative payment requirements and settlement choices. The ODP Price Preview does not authorize that payment.

Follow discovery to quote

The advertised ODP flow ends with current capacity and price. It does not allocate a GPU or start a workload.

01

Discover the configuration

Find the GPU rental through the Service's advertised Offering operations.
02

Retrieve the Full Offering

Read the accelerator, region, rental constraints, network capacity, Price Preview, Attribute Schema reference, and quote Action.
03

Interpret the attributes and units

Use the Attribute Schema to validate and present the Service-defined compute fields.
04

Prepare the quote request

Validate the caller's requested rental interval against the advertised request schema.
05

Request current terms

After caller selection, satisfy live access requirements, submit the approved input, and present the quote response.

Keep compute execution outside ODP

ODP publishes the rentable configuration and identifies how to request current terms. The compute Service owns capacity allocation, runtime credentials, workload execution, storage, networking, data transfer, usage measurement, payment, termination, and cleanup.

A successful quote does not allocate the accelerator, start a workload, transfer data, establish a network, or authorize payment. Those effects require separate Service operations and explicit caller decisions.

Inspect the example artifacts

The Service name, domains, region, capacity, and price are illustrative. A deployed Service supplies current Offerings and hosts every referenced schema, web page, and Action target.

  • Generated example: open the published GPU rental example and its source files
  • Full Offering: inspect the compute configuration, Price Preview, and quote Action
  • Attribute Schema: inspect the compute field definitions, constraints, units, and comparison hints

Next steps

Domain data

Define custom attributes

Describe compute-specific fields with a retrievable Attribute Schema.

Custom attributes
Commercial terms

Explain metered pricing

Keep discovery-time rates separate from quotes and live payment requirements.

Pricing and payments
Execution

Define the quote operation

Describe a compact Action request and its successful response types.

Actions