HERE · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Blob API v2 By Key API

11 actions 11 updates phrasing extends openapi/here-by-key-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 11

$.info
$.paths['/layers/{layerId}/keys/{key}'].get
$.paths['/layers/{layerId}/keys/{key}'].put
$.paths['/layers/{layerId}/keys/{key}'].post
$.paths['/layers/{layerId}/keys/{key}'].delete
$.paths['/layers/{layerId}/keys/{key}'].head
$.paths['/layers/{layerId}/keysMultipart/{multipartToken}'].get
$.paths['/layers/{layerId}/keysMultipart/{multipartToken}'].put
$.paths['/layers/{layerId}/keysMultipart/{multipartToken}'].delete
$.paths['/layers/{layerId}/keysMultipart/{multipartToken}/parts'].post
$.paths['/layers/{layerId}/keys'].get

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 Blob API v2 By Key API
  version: 1.0.0
extends: openapi/here-by-key-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-09-26'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 10
- target: $.paths['/layers/{layerId}/keys/{key}'].get
  update:
    x-apievangelist-phrasing:
      intent: Download a blob by key
      effect: read
      questions:
      - How do I download the object stored under a key in an object store layer?
      - Can I resume a large blob download partway through using a byte range?
      instructions:
      - text: Download the blob at key {key} in layer {layerId}.
        slots:
          key: path.key
          layerId: path.layerId
      - text: Resume downloading key {key} from layer {layerId} at byte range {Range}.
        slots:
          key: path.key
          layerId: path.layerId
          Range: header.Range
      method: generated
      generated: '2026-09-26'
- target: $.paths['/layers/{layerId}/keys/{key}'].put
  update:
    x-apievangelist-phrasing:
      intent: Upload or copy a blob under a key
      effect: write
      questions:
      - How do I upload a file of up to 192 MB under a key in one request?
      - Can I copy an existing object to a new key instead of re-uploading it?
      instructions:
      - text: Upload a blob to key {key} in layer {layerId}.
        slots:
          key: path.key
          layerId: path.layerId
      - text: Copy object {source} to key {key} in layer {layerId}.
        slots:
          source: query.source
          key: path.key
          layerId: path.layerId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/layers/{layerId}/keys/{key}'].post
  update:
    x-apievangelist-phrasing:
      intent: Start a multipart upload for a key
      effect: write
      questions:
      - How do I upload a blob that is too big for a single request to a key?
      - What do I need to start a multipart upload in an object store layer?
      instructions:
      - text: Start a multipart upload for key {key} in layer {layerId} with content type {contentType}.
        slots:
          key: path.key
          layerId: path.layerId
          contentType: requestBody.contentType
      - text: Begin a multipart upload to {key} on layer {layerId}.
        slots:
          key: path.key
          layerId: path.layerId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/layers/{layerId}/keys/{key}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a blob by key
      effect: destructive
      questions:
      - How do I delete the object stored under a key?
      - Can I remove a single key from an object store layer?
      instructions:
      - text: Delete key {key} from layer {layerId}.
        slots:
          key: path.key
          layerId: path.layerId
      - text: Remove the blob stored at {key} in object store layer {layerId}.
        slots:
          key: path.key
          layerId: path.layerId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/layers/{layerId}/keys/{key}'].head
  update:
    x-apievangelist-phrasing:
      intent: Check that a key exists and read its metadata
      effect: read
      questions:
      - How can I tell whether a key exists in an object store layer without downloading it?
      - Can I get an object's metadata like size and type without its content?
      instructions:
      - text: Check whether key {key} exists in layer {layerId}.
        slots:
          key: path.key
          layerId: path.layerId
      - text: Fetch the metadata only for key {key} on layer {layerId}.
        slots:
          key: path.key
          layerId: path.layerId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/layers/{layerId}/keysMultipart/{multipartToken}'].get
  update:
    x-apievangelist-phrasing:
      intent: Check a key-based multipart upload's status
      effect: read
      questions:
      - Did my multipart upload to an object store key finish?
      - When can I read the status of a key-based multipart upload?
      instructions:
      - text: Get the status of multipart upload {multipartToken} in layer {layerId}.
        slots:
          multipartToken: path.multipartToken
          layerId: path.layerId
      - text: Tell me if keyed upload {multipartToken} on {layerId} has completed.
        slots:
          multipartToken: path.multipartToken
          layerId: path.layerId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/layers/{layerId}/keysMultipart/{multipartToken}'].put
  update:
    x-apievangelist-phrasing:
      intent: Finish a key-based multipart upload
      effect: write
      questions:
      - What call finalizes a multipart upload once every part of a keyed object is in?
      - How do I tell the object store that all my parts are uploaded?
      instructions:
      - text: Complete multipart upload {multipartToken} in layer {layerId}.
        slots:
          multipartToken: path.multipartToken
          layerId: path.layerId
      - text: Finalize keyed upload {multipartToken} on {layerId} with parts {parts}.
        slots:
          multipartToken: path.multipartToken
          layerId: path.layerId
          parts: requestBody.parts
      method: generated
      generated: '2026-09-26'
- target: $.paths['/layers/{layerId}/keysMultipart/{multipartToken}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Cancel a key-based multipart upload
      effect: destructive
      questions:
      - How do I abort a multipart upload to an object store key I started?
      - Can I cancel a keyed multipart upload after it has completed?
      instructions:
      - text: Cancel multipart upload {multipartToken} in layer {layerId}.
        slots:
          multipartToken: path.multipartToken
          layerId: path.layerId
      - text: Abort the unfinished keyed upload {multipartToken} on {layerId}.
        slots:
          multipartToken: path.multipartToken
          layerId: path.layerId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/layers/{layerId}/keysMultipart/{multipartToken}/parts'].post
  update:
    x-apievangelist-phrasing:
      intent: Upload or copy one part of a keyed upload
      effect: write
      questions:
      - What size must each part be in an object store multipart upload?
      - Can a part be copied from a byte range of an existing object instead of uploaded?
      instructions:
      - text: Upload part {partNumber} for keyed upload {multipartToken} in layer {layerId}.
        slots:
          partNumber: query.partNumber
          multipartToken: path.multipartToken
          layerId: path.layerId
      - text: Copy part {partNumber} of upload {multipartToken} on {layerId} from object {source}.
        slots:
          partNumber: query.partNumber
          multipartToken: path.multipartToken
          layerId: path.layerId
          source: query.source
      method: generated
      generated: '2026-09-26'
- target: $.paths['/layers/{layerId}/keys'].get
  update:
    x-apievangelist-phrasing:
      intent: List keys in an object store layer
      effect: read
      questions:
      - What keys are stored in my object store layer?
      - Can I list keys like folders under a common prefix, or recursively?
      instructions:
      - text: List the keys in layer {layerId}.
        slots:
          layerId: path.layerId
      - text: List keys under prefix {parent} in layer {layerId}.
        slots:
          parent: query.parent
          layerId: path.layerId
      - text: Recursively list every key in {layerId} with deep set to {deep}.
        slots:
          layerId: path.layerId
          deep: query.deep
      method: generated
      generated: '2026-09-26'