HERE · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for v1 Blob API

10 actions 10 updates phrasing extends openapi/here-blob-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for HERE's API. It is a proposal applied on top of the contract, not a document HERE publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 10

$.info
$.paths['/layers/{layerId}/data/{dataHandle}'].get
$.paths['/layers/{layerId}/data/{dataHandle}'].put
$.paths['/layers/{layerId}/data/{dataHandle}'].delete
$.paths['/layers/{layerId}/data/{dataHandle}'].head
$.paths['/layers/{layerId}/data/{dataHandle}/multiparts'].post
$.paths['/layers/{layerId}/data/{dataHandle}/multiparts/{multiPartToken}'].get
$.paths['/layers/{layerId}/data/{dataHandle}/multiparts/{multiPartToken}'].put
$.paths['/layers/{layerId}/data/{dataHandle}/multiparts/{multiPartToken}'].delete
$.paths['/layers/{layerId}/data/{dataHandle}/multiparts/{multiPartToken}/parts'].post

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for v1 Blob API
  version: 1.0.0
extends: openapi/here-blob-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-01'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 9
- target: $.paths['/layers/{layerId}/data/{dataHandle}'].get
  update:
    x-apievangelist-phrasing:
      intent: Download a blob by data handle
      effect: read
      questions:
      - How do I download a partition's data blob using its data handle?
      - Can I skip re-downloading a data handle blob if it has not changed?
      instructions:
      - text: Download data handle {dataHandle} from layer {layerId}.
        slots:
          dataHandle: path.dataHandle
          layerId: path.layerId
      - text: Fetch blob {dataHandle} in {layerId} only if it differs from ETag {If-None-Match}.
        slots:
          dataHandle: path.dataHandle
          layerId: path.layerId
          If-None-Match: header.If-None-Match
      method: generated
      generated: '2026-09-26'
- target: $.paths['/layers/{layerId}/data/{dataHandle}'].put
  update:
    x-apievangelist-phrasing:
      intent: Publish a volatile data blob
      effect: write
      questions:
      - How do I write or overwrite data in a volatile layer?
      - Can I send a digest so the server verifies a volatile blob upload?
      instructions:
      - text: Publish data to handle {dataHandle} in volatile layer {layerId}.
        slots:
          dataHandle: path.dataHandle
          layerId: path.layerId
      - text: Upload a volatile blob to {dataHandle} in {layerId} as {contentType} with digest {digest}.
        slots:
          dataHandle: path.dataHandle
          layerId: path.layerId
          contentType: header.Content-Type
          digest: header.X-HERE-Digest
      method: generated
      generated: '2026-10-01'
- target: $.paths['/layers/{layerId}/data/{dataHandle}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a blob from an index layer
      effect: destructive
      questions:
      - How do I delete a data blob from an index layer?
      - Can I delete data handle blobs from layers that are not index layers?
      instructions:
      - text: Delete data handle {dataHandle} from index layer {layerId}.
        slots:
          dataHandle: path.dataHandle
          layerId: path.layerId
      - text: Remove blob {dataHandle} stored in index layer {layerId}.
        slots:
          dataHandle: path.dataHandle
          layerId: path.layerId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/layers/{layerId}/data/{dataHandle}'].head
  update:
    x-apievangelist-phrasing:
      intent: Check that a data handle exists
      effect: read
      questions:
      - How can I tell whether a data handle already has a blob before uploading?
      - Is there a lightweight existence check for a data handle?
      instructions:
      - text: Check whether data handle {dataHandle} exists in layer {layerId}.
        slots:
          dataHandle: path.dataHandle
          layerId: path.layerId
      - text: Verify blob {dataHandle} is present on {layerId}.
        slots:
          dataHandle: path.dataHandle
          layerId: path.layerId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/layers/{layerId}/data/{dataHandle}/multiparts'].post
  update:
    x-apievangelist-phrasing:
      intent: Start a multipart upload for a data handle
      effect: write
      questions:
      - How do I upload a very large blob to a data handle in parts?
      - Where do I get the URLs for the later multipart steps of a data handle upload?
      instructions:
      - text: Start a multipart upload for data handle {dataHandle} in layer {layerId} as {contentType}.
        slots:
          dataHandle: path.dataHandle
          layerId: path.layerId
          contentType: requestBody.contentType
      - text: Begin uploading blob {dataHandle} to {layerId} in multiple parts.
        slots:
          dataHandle: path.dataHandle
          layerId: path.layerId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/layers/{layerId}/data/{dataHandle}/multiparts/{multiPartToken}'].get
  update:
    x-apievangelist-phrasing:
      intent: Check a data handle upload's status
      effect: read
      questions:
      - Has the multipart upload for my data handle finished?
      - Can I see the status of a data handle multipart upload before it completes?
      instructions:
      - text: Get the status of upload {multiPartToken} for data handle {dataHandle} in {layerId}.
        slots:
          multiPartToken: path.multiPartToken
          dataHandle: path.dataHandle
          layerId: path.layerId
      - text: Tell me whether multipart {multiPartToken} of blob {dataHandle} on {layerId} is done.
        slots:
          multiPartToken: path.multiPartToken
          dataHandle: path.dataHandle
          layerId: path.layerId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/layers/{layerId}/data/{dataHandle}/multiparts/{multiPartToken}'].put
  update:
    x-apievangelist-phrasing:
      intent: Finish a data handle multipart upload
      effect: write
      questions:
      - How do I finalize a data handle upload once all its parts are sent?
      - What happens after the last part of a data handle blob is uploaded?
      instructions:
      - text: Complete upload {multiPartToken} for data handle {dataHandle} in {layerId}.
        slots:
          multiPartToken: path.multiPartToken
          dataHandle: path.dataHandle
          layerId: path.layerId
      - text: Finalize blob {dataHandle} on {layerId} from parts {parts} of upload {multiPartToken}.
        slots:
          dataHandle: path.dataHandle
          layerId: path.layerId
          parts: requestBody.parts
          multiPartToken: path.multiPartToken
      method: generated
      generated: '2026-09-26'
- target: $.paths['/layers/{layerId}/data/{dataHandle}/multiparts/{multiPartToken}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Cancel a data handle multipart upload
      effect: destructive
      questions:
      - How do I abort a partly finished upload for a data handle?
      - Can I cancel a data handle multipart upload that already completed?
      instructions:
      - text: Cancel upload {multiPartToken} for data handle {dataHandle} in {layerId}.
        slots:
          multiPartToken: path.multiPartToken
          dataHandle: path.dataHandle
          layerId: path.layerId
      - text: Abort multipart {multiPartToken} of blob {dataHandle} on layer {layerId}.
        slots:
          multiPartToken: path.multiPartToken
          dataHandle: path.dataHandle
          layerId: path.layerId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/layers/{layerId}/data/{dataHandle}/multiparts/{multiPartToken}/parts'].post
  update:
    x-apievangelist-phrasing:
      intent: Upload one part of a data handle blob
      effect: write
      questions:
      - What is the minimum part size for a data handle multipart upload?
      - How are the parts of a data handle upload numbered?
      instructions:
      - text: Upload part {partNumber} of upload {multiPartToken} for data handle {dataHandle} in {layerId}.
        slots:
          partNumber: query.partNumber
          multiPartToken: path.multiPartToken
          dataHandle: path.dataHandle
          layerId: path.layerId
      - text: Send part {partNumber} ({Content-Length} bytes) of blob {dataHandle} on {layerId}, upload {multiPartToken}.
        slots:
          partNumber: query.partNumber
          Content-Length: header.Content-Length
          dataHandle: path.dataHandle
          layerId: path.layerId
          multiPartToken: path.multiPartToken
      method: generated
      generated: '2026-09-26'