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.
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
# 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'