dotCMS · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for dotCMS REST Content Type API

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

What the actions change

x-apievangelist-phrasing

Targets 13

$.info
$.paths['/api/structure/{path}'].get
$.paths['/api/v1/contenttype/{baseVariableName}/_copy'].post
$.paths['/api/v1/contenttype'].get
$.paths['/api/v1/contenttype'].post
$.paths['/api/v1/contenttype/id/{idOrVar}'].get
$.paths['/api/v1/contenttype/id/{idOrVar}'].put
$.paths['/api/v1/contenttype/id/{idOrVar}'].delete
$.paths['/api/v1/contenttype/_filter'].post
$.paths['/api/v1/contenttype/page'].get
$.paths['/api/v1/contenttype/basetypes'].get
$.paths['/api/v1/contenttype/render/id/{idOrVar}'].get
$.paths['/api/v1/contenttype/id/{idOrVar}/metadata'].patch

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 dotCMS REST Content Type API
  version: 1.0.0
extends: openapi/dotcms-content-type-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: 12
- target: $.paths['/api/structure/{path}'].get
  update:
    x-apievangelist-phrasing:
      intent: List content types that have WYSIWYG fields
      effect: read
      questions:
      - Which content types include a WYSIWYG rich text field?
      - Is there a legacy structure endpoint for finding types with WYSIWYG fields?
      instructions:
      - text: List structures with WYSIWYG fields for path {path}, type {type}, callback {callback}.
        slots:
          path: path.path
          type: path.type
          callback: path.callback
      - text: Find content types with rich text fields named {name} using path {path}, type {type} and callback {callback}.
        slots:
          name: query.name
          path: path.path
          type: path.type
          callback: path.callback
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/contenttype/{baseVariableName}/_copy'].post
  update:
    x-apievangelist-phrasing:
      intent: Copy an existing content type
      effect: write
      questions:
      - How do I create a new content type based on an existing one?
      - Can I copy a content type into a different site or folder?
      instructions:
      - text: Copy content type {baseVariableName} as {name}.
        slots:
          baseVariableName: path.baseVariableName
          name: requestBody.name
      - text: Duplicate content type {baseVariableName} into {name} on site {host}.
        slots:
          baseVariableName: path.baseVariableName
          name: requestBody.name
          host: requestBody.host
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/contenttype'].get
  update:
    x-apievangelist-phrasing:
      intent: List content types
      effect: read
      questions:
      - What content types are defined in my dotCMS instance?
      - Can I list only content types of a certain base type, like widgets?
      instructions:
      - text: List all content types.
      - text: List content types of base type {type} on site {host}.
        slots:
          type: query.type
          host: query.host
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/contenttype'].post
  update:
    x-apievangelist-phrasing:
      intent: Create one or more content types
      effect: write
      questions:
      - How do I define a new content type with its fields in one request?
      - Can I create several content types at once?
      instructions:
      - text: Create a content type named {name} of class {clazz}.
        slots:
          name: requestBody.name
          clazz: requestBody.clazz
      - text: Create content type {name} ({clazz}) with fields {fields} and workflow {workflow}.
        slots:
          name: requestBody.name
          clazz: requestBody.clazz
          fields: requestBody.fields
          workflow: requestBody.workflow
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/contenttype/id/{idOrVar}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a content type and its fields
      effect: read
      questions:
      - What fields does my Blog content type have?
      - Can I look up a content type by its Velocity variable name?
      instructions:
      - text: Show content type {idOrVar} with all its fields.
        slots:
          idOrVar: path.idOrVar
      - text: Get the definition of content type {idOrVar} in language {languageId}.
        slots:
          idOrVar: path.idOrVar
          languageId: query.languageId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/contenttype/id/{idOrVar}'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace a content type's full definition
      effect: destructive
      questions:
      - Will fields I leave out of a content type update be removed?
      - What's the safe pattern for updating a content type without losing fields?
      instructions:
      - text: Update content type {idOrVar} with name {name} and class {clazz}, keeping every existing field.
        slots:
          idOrVar: path.idOrVar
          name: requestBody.name
          clazz: requestBody.clazz
      - text: Replace the field list of content type {idOrVar} with {fields}.
        slots:
          idOrVar: path.idOrVar
          fields: requestBody.fields
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/contenttype/id/{idOrVar}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a content type
      effect: destructive
      questions:
      - How do I delete a content type I no longer need?
      - Why is the response entity a string when I delete a content type?
      instructions:
      - text: Delete content type {idOrVar}.
        slots:
          idOrVar: path.idOrVar
      - text: Permanently remove the {idOrVar} content type.
        slots:
          idOrVar: path.idOrVar
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/contenttype/_filter'].post
  update:
    x-apievangelist-phrasing:
      intent: Filter content types with paging controls
      effect: read
      questions:
      - Can I filter content types by name and control page size and sort order?
      - Is there a POST-based way to search content types?
      instructions:
      - text: Filter content types by {filter} with {perPage} per page.
        slots:
          filter: requestBody.filter
          perPage: requestBody.perPage
      - text: Search content types for {filter} sorted by {orderBy}.
        slots:
          filter: requestBody.filter
          orderBy: requestBody.orderBy
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/contenttype/page'].get
  update:
    x-apievangelist-phrasing:
      intent: List content types usable on a page
      effect: read
      questions:
      - Which content types can I add to a particular page?
      - Can I list the content types allowed on a page in a given language?
      instructions:
      - text: List content types I can use on page {pagePathOrId}.
        slots:
          pagePathOrId: query.pagePathOrId
      - text: Show content types for page {pagePathOrId} in language {language}.
        slots:
          pagePathOrId: query.pagePathOrId
          language: query.language
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/contenttype/basetypes'].get
  update:
    x-apievangelist-phrasing:
      intent: List the base content types
      effect: read
      questions:
      - What base types can a content type be built on?
      - Which base content types does dotCMS support, like widget or file asset?
      instructions:
      - text: List the base content types.
      - text: Show every base type I can create a content type from.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/contenttype/render/id/{idOrVar}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a content type with custom fields rendered
      effect: read
      questions:
      - Can I see a content type with its custom Velocity fields already rendered?
      - How do custom fields render for a specific content version?
      instructions:
      - text: Get content type {idOrVar} with its custom fields rendered.
        slots:
          idOrVar: path.idOrVar
      - text: Render the custom fields of {idOrVar} for content inode {inode}.
        slots:
          idOrVar: path.idOrVar
          inode: query.inode
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/contenttype/id/{idOrVar}/metadata'].patch
  update:
    x-apievangelist-phrasing:
      intent: Merge metadata into a content type
      effect: write
      questions:
      - Can I add metadata to a content type without touching its fields?
      - Does a metadata patch remove keys I don't send?
      instructions:
      - text: Merge these metadata keys into content type {idOrVar}.
        slots:
          idOrVar: path.idOrVar
      - text: Set only the metadata of content type {idOrVar}, leaving fields alone.
        slots:
          idOrVar: path.idOrVar
      method: generated
      generated: '2026-09-26'