Virto Commerce · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Virto Commerce Solution REST API Documentation…

125 actions 125 updates phrasing extends openapi/virto-commerce-virtocommerce-platform-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Virto Commerce's API. It is a proposal applied on top of the contract, not a document Virto Commerce publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 125 · first 16 shown; the file carries all of them

$.info
$.paths['/externalsignin'].get
$.paths['/externalsignin/signout'].get
$.paths['/externalsignin/callback'].get
$.paths['/externalsignin/providers'].get
$.paths['/api/apps/{appId}/manifest'].get
$.paths['/api/apps/manifest/invalidate'].post
$.paths['/api/platform/apps'].get
$.paths['/revoke/token'].post
$.paths['/connect/token'].post
$.paths['/connect/authorize'].get
$.paths['/connect/authorize'].post
$.paths['/connect/userinfo'].get
$.paths['/connect/userinfo'].post
$.paths['/connect/logout'].get
$.paths['/api/changes/force'].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 Virto Commerce Solution REST API Documentation…
  version: 1.0.0
extends: openapi/virto-commerce-virtocommerce-platform-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: 124
- target: $.paths['/externalsignin'].get
  update:
    x-apievangelist-phrasing:
      intent: Start sign-in through an external identity provider
      effect: read
      questions:
      - How do I send a user to sign in with an external login provider?
      - Can external sign-in return the user to a specific URL for a given store?
      instructions:
      - text: Start external sign-in with {AuthenticationType} and return to {ReturnUrl}.
        slots:
          AuthenticationType: query.AuthenticationType
          ReturnUrl: query.ReturnUrl
      - text: Begin an external login for store {StoreId} using provider {AuthenticationType}.
        slots:
          StoreId: query.StoreId
          AuthenticationType: query.AuthenticationType
      method: generated
      generated: '2026-09-26'
- target: $.paths['/externalsignin/signout'].get
  update:
    x-apievangelist-phrasing:
      intent: Sign out of an external identity provider
      effect: write
      questions:
      - Can I log a user out of their external identity provider session too?
      - Where does a user land after external sign-out?
      instructions:
      - text: Sign out of external provider {authenticationType} and redirect to {returnUrl}.
        slots:
          authenticationType: query.authenticationType
          returnUrl: query.returnUrl
      - text: End the user's external login session.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/externalsignin/callback'].get
  update:
    x-apievangelist-phrasing:
      intent: Complete an external sign-in callback
      effect: write
      questions:
      - Which endpoint does the external identity provider call back after login?
      - What finishes an external login once the provider redirects back?
      instructions:
      - text: Complete the external sign-in callback and continue to {returnUrl}.
        slots:
          returnUrl: query.returnUrl
      - text: Finish processing the external login redirect.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/externalsignin/providers'].get
  update:
    x-apievangelist-phrasing:
      intent: List external login providers
      effect: read
      questions:
      - Which external login providers are configured on the platform?
      - Can users sign in with an outside identity provider here, and which ones?
      instructions:
      - text: List the external sign-in providers available.
      - text: Show which third-party login options are enabled.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/apps/{appId}/manifest'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an app's plugin manifest
      effect: read
      questions:
      - What plugins does a host app's manifest declare?
      - Is the app plugin manifest cacheable with an ETag?
      instructions:
      - text: Get the plugin manifest for app {appId}.
        slots:
          appId: path.appId
      - text: Fetch the manifest descriptor of host app {appId}.
        slots:
          appId: path.appId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/apps/manifest/invalidate'].post
  update:
    x-apievangelist-phrasing:
      intent: Invalidate the app manifest cache
      effect: write
      questions:
      - How do I make app manifests pick up newly installed plugins?
      - Can I force every app's manifest to be rebuilt from disk?
      instructions:
      - text: Invalidate the manifest cache for all apps.
      - text: Force app manifests to rebuild on the next request.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/apps'].get
  update:
    x-apievangelist-phrasing:
      intent: List available apps
      effect: read
      questions:
      - Which apps can the signed-in user open on the platform?
      - What apps are available given my permissions?
      instructions:
      - text: List the apps I have permission to use.
      - text: Show the available platform apps.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/revoke/token'].post
  update:
    x-apievangelist-phrasing:
      intent: Revoke the current user's token
      effect: destructive
      questions:
      - How do I invalidate the access token I'm currently using?
      - Can I revoke my own token so it stops working?
      instructions:
      - text: Revoke my current access token.
      - text: Invalidate the token for this session now.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/connect/token'].post
  update:
    x-apievangelist-phrasing:
      intent: Get an OAuth access token
      effect: write
      questions:
      - How do I obtain an access token with a password grant?
      - Which grant types does the token endpoint accept?
      - Can I request a token scoped to a particular store?
      instructions:
      - text: Get an access token with grant type {grant_type} for user {username}.
        slots:
          grant_type: requestBody.grant_type
          username: requestBody.username
      - text: Exchange credentials for a token using grant {grant_type} and scope {scope}.
        slots:
          grant_type: requestBody.grant_type
          scope: requestBody.scope
      - text: Request a {grant_type} token for store {storeId}.
        slots:
          grant_type: requestBody.grant_type
          storeId: requestBody.storeId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/connect/authorize'].get
  update:
    x-apievangelist-phrasing:
      intent: Open the OAuth authorize endpoint via GET
      effect: read
      questions:
      - Where do I redirect a browser to start the OAuth authorization code flow?
      - Does the authorize endpoint accept a GET redirect with query parameters?
      instructions:
      - text: Redirect the browser to the GET authorize endpoint.
      - text: Start the authorization code flow with a GET authorize request.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/connect/authorize'].post
  update:
    x-apievangelist-phrasing:
      intent: Submit an OAuth authorize request via POST
      effect: write
      questions:
      - Can the authorize request be posted as a form instead of a redirect?
      - What does a form-post to the authorize endpoint do?
      instructions:
      - text: Post the authorization request to the authorize endpoint as a form.
      - text: Submit the OAuth authorize form with POST.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/connect/userinfo'].get
  update:
    x-apievangelist-phrasing:
      intent: Get OpenID user info via GET
      effect: read
      questions:
      - Which OpenID Connect claims come back for my access token?
      - Is there a GET userinfo endpoint for the token holder?
      instructions:
      - text: Fetch OpenID userinfo claims with a GET request.
      - text: Read the token holder's userinfo from the connect endpoint via GET.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/connect/userinfo'].post
  update:
    x-apievangelist-phrasing:
      intent: Get OpenID user info via POST
      effect: read
      questions:
      - Can I request OpenID userinfo claims with a POST instead of GET?
      - Does the connect userinfo endpoint support POST requests?
      instructions:
      - text: Post to the connect userinfo endpoint to get my claims.
      - text: Retrieve OpenID userinfo using the POST variant.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/connect/logout'].get
  update:
    x-apievangelist-phrasing:
      intent: End the OpenID Connect session
      effect: write
      questions:
      - How do I log out through the OpenID Connect logout endpoint?
      - Is there an OAuth end-session endpoint on the platform?
      instructions:
      - text: Log out via the connect logout endpoint.
      - text: End my OpenID Connect session.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/changes/force'].post
  update:
    x-apievangelist-phrasing:
      intent: Force a scope's last-modified date
      effect: write
      questions:
      - Can I bump the last-modified date for a scope so clients refresh their caches?
      - Is there a way to signal a change manually for cache invalidation?
      instructions:
      - text: Force the last-modified date forward for scope {Scope}.
        slots:
          Scope: query.Scope
      - text: Mark scope {Scope} as changed so external caches refresh.
        slots:
          Scope: query.Scope
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform-cache/reset'].post
  update:
    x-apievangelist-phrasing:
      intent: Reset the platform cache
      effect: write
      questions:
      - How do I clear the whole platform cache?
      - Can I flush cached data after editing records directly in the database?
      instructions:
      - text: Reset the platform cache.
      - text: Flush all cached platform data now.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/changes/lastmodifieddate'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the last-modified date for a scope
      effect: read
      questions:
      - When did something in a given scope last change?
      - How can an external client tell whether its cache is stale?
      instructions:
      - text: Get the last modified date for scope {scope}.
        slots:
          scope: query.scope
      - text: Check when the platform data last changed.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/changes/changed-entities'].post
  update:
    x-apievangelist-phrasing:
      intent: Check which entity types changed since a date
      effect: read
      questions:
      - Which entity types have changed since my last sync?
      - Can I ask whether specific entities were modified after a timestamp?
      instructions:
      - text: Tell me which of {entityNames} changed since {modifiedSince}.
        slots:
          entityNames: requestBody.entityNames
          modifiedSince: requestBody.modifiedSince
      - text: List entity types modified after {modifiedSince}.
        slots:
          modifiedSince: requestBody.modifiedSince
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/changes/changed-entities/reset'].post
  update:
    x-apievangelist-phrasing:
      intent: Reset changed-entity tracking
      effect: write
      questions:
      - Can I reset the tracked list of changed entities?
      - What clears the changed-entities markers?
      instructions:
      - text: Reset the changed-entities tracking.
      - text: Clear the record of which entities have changed.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/changelog/search'].post
  update:
    x-apievangelist-phrasing:
      intent: Search the change log
      effect: read
      questions:
      - Who changed a record, and when, according to the audit log?
      - Can I filter the change log by operation type and date range?
      instructions:
      - text: Search the change log for {objectType} changes between {startDate} and {endDate}.
        slots:
          objectType: requestBody.objectType
          startDate: requestBody.startDate
          endDate: requestBody.endDate
      - text: Show change history entries for object IDs {objectIds}.
        slots:
          objectIds: requestBody.objectIds
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/changelog/v2/search'].post
  update:
    x-apievangelist-phrasing:
      intent: Search the change log (v2 endpoint)
      effect: read
      questions:
      - Is there a newer v2 version of the change log search?
      - Can the v2 change log search filter by several object types at once?
      instructions:
      - text: Use the v2 change log search for object types {objectTypes}.
        slots:
          objectTypes: requestBody.objectTypes
      - text: Run a v2 audit search of {operationTypes} operations since {startDate}.
        slots:
          operationTypes: requestBody.operationTypes
          startDate: requestBody.startDate
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/changelog/{type}/changes'].get
  update:
    x-apievangelist-phrasing:
      intent: Get change history for an object type
      effect: read
      questions:
      - What changes were made to all objects of one type over a period?
      - Can I pull the change history for a type between two dates?
      instructions:
      - text: Show the change history for type {type} from {start} to {end}.
        slots:
          type: path.type
          start: query.start
          end: query.end
      - text: Get all recorded changes for object type {type}.
        slots:
          type: path.type
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/developer-tools'].get
  update:
    x-apievangelist-phrasing:
      intent: List developer tools
      effect: read
      questions:
      - Which developer tools does the platform expose?
      - Are there built-in developer utilities I can open from the admin?
      instructions:
      - text: List the platform's developer tools.
      - text: Show available developer utilities.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/diagnostics/systeminfo'].get
  update:
    x-apievangelist-phrasing:
      intent: Get platform system information
      effect: read
      questions:
      - What version and runtime environment is my platform running?
      - Can I get system diagnostics for a support ticket?
      instructions:
      - text: Show the platform system info.
      - text: Get diagnostics about the server environment.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/diagnostics/errors'].get
  update:
    x-apievangelist-phrasing:
      intent: List modules that failed to load
      effect: read
      questions:
      - Which installed modules have errors?
      - Why is a module not working after install, and where do I see its errors?
      instructions:
      - text: List installed modules that report errors.
      - text: Show me the module loading errors.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/dynamic/types'].get
  update:
    x-apievangelist-phrasing:
      intent: List object types that support dynamic properties
      effect: read
      questions:
      - Which entities can I add custom dynamic properties to?
      - What object types support dynamic properties?
      instructions:
      - text: List object types that accept dynamic properties.
      - text: Show which entities can have custom fields.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/dynamic/properties'].get
  update:
    x-apievangelist-phrasing:
      intent: Get all dynamic properties
      effect: read
      questions:
      - What custom dynamic properties are defined across the platform?
      - Can I fetch a dynamic property definition by its ID?
      instructions:
      - text: Get all dynamic property definitions.
      - text: Get dynamic property {id}.
        slots:
          id: query.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/dynamic/properties'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a dynamic property
      effect: write
      questions:
      - Can I make an existing custom property required or multilingual?
      - How do I rename a dynamic property that already exists?
      instructions:
      - text: Update dynamic property {id} to be named {name}.
        slots:
          id: requestBody.id
          name: requestBody.name
      - text: Change the display order of dynamic property {id} to {displayOrder}.
        slots:
          id: requestBody.id
          displayOrder: requestBody.displayOrder
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/dynamic/properties'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a dynamic property
      effect: write
      questions:
      - How do I add a new custom field to an object type?
      - What value types can a new dynamic property have?
      instructions:
      - text: Create a dynamic property {name} of type {valueType} on {objectType}.
        slots:
          name: requestBody.name
          valueType: requestBody.valueType
          objectType: requestBody.objectType
      - text: Add a new multilingual custom field called {name}.
        slots:
          name: requestBody.name
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/dynamic/properties'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete dynamic properties
      effect: destructive
      questions:
      - Can I remove custom property definitions I no longer use?
      - What happens when I delete a dynamic property?
      instructions:
      - text: Delete dynamic properties {propertyIds}.
        slots:
          propertyIds: query.propertyIds
      - text: Remove the custom field definition {propertyIds}.
        slots:
          propertyIds: query.propertyIds
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/dynamic/properties/search'].post
  update:
    x-apievangelist-phrasing:
      intent: Search dynamic properties for a type
      effect: read
      questions:
      - Which dynamic properties are registered for a given object type?
      - Can I search custom properties by keyword?
      instructions:
      - text: Search dynamic properties registered for type {typeName}.
        slots:
          typeName: requestBody.typeName
      - text: Find custom properties matching {keyword}.
        slots:
          keyword: requestBody.keyword
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/dynamic'].post
  update:
    x-apievangelist-phrasing:
      intent: Expose the dynamic object property schema
      effect: read
      questions:
      - What is the placeholder endpoint that exposes DynamicObjectProperty in the docs?
      - Does the dynamic property schema-exposure endpoint actually do anything?
      instructions:
      - text: Call the no-op endpoint that exposes the DynamicObjectProperty schema.
      - text: Hit the dynamic object property schema placeholder.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/dynamic/dictionaryitems'].get
  update:
    x-apievangelist-phrasing:
      intent: Get dictionary values of a dynamic property
      effect: read
      questions:
      - What allowed values does a dictionary-type dynamic property have?
      - Can I list all dictionary items for one property?
      instructions:
      - text: List the dictionary items for dynamic property {propertyId}.
        slots:
          propertyId: query.propertyId
      - text: Get every dictionary item defined for dynamic properties.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/dynamic/dictionaryitems'].post
  update:
    x-apievangelist-phrasing:
      intent: Add or update dynamic property dictionary items
      effect: write
      questions:
      - How do I add new allowed values to a dictionary property?
      - Can I edit an existing dictionary item by passing its ID?
      instructions:
      - text: Add these values to the dynamic property's dictionary.
      - text: Save the dictionary items, updating those that include an ID.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/dynamic/dictionaryitems'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete dynamic property dictionary items
      effect: destructive
      questions:
      - Can I remove values from a dynamic property's dictionary?
      - Which call deletes dynamic property dictionary entries by ID?
      instructions:
      - text: Delete dynamic property dictionary items {ids}.
        slots:
          ids: query.ids
      - text: Remove dictionary value {ids} from the custom property.
        slots:
          ids: query.ids
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/dynamic/dictionaryitems/search'].post
  update:
    x-apievangelist-phrasing:
      intent: Search dynamic property dictionary items
      effect: read
      questions:
      - Can I search a property's dictionary values by keyword with paging?
      - Which dictionary items match a search term for one dynamic property?
      instructions:
      - text: Search dictionary items of property {propertyId} for {keyword}.
        slots:
          propertyId: requestBody.propertyId
          keyword: requestBody.keyword
      - text: Page through dictionary values for dynamic property {propertyId}.
        slots:
          propertyId: requestBody.propertyId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/jobs/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Check a background job's status
      effect: read
      questions:
      - Has my background job finished yet?
      - How can I tell whether a long-running platform job failed?
      instructions:
      - text: Check the status of background job {id}.
        slots:
          id: path.id
      - text: Tell me whether job {id} is done.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/localizable-settings'].get
  update:
    x-apievangelist-phrasing:
      intent: List localizable settings and languages
      effect: read
      questions:
      - Which settings can be translated, and into which languages?
      - What languages are available for localizable settings?
      instructions:
      - text: List localizable settings with their languages.
      - text: Show which settings support translations.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/localizable-settings/{name}/dictionary-items/{language}/values'].get
  update:
    x-apievangelist-phrasing:
      intent: Get translated values of a setting
      effect: read
      questions:
      - What are a setting's dictionary values in a given language?
      - Can I see the localized options for one setting?
      instructions:
      - text: Get the {language} values for localizable setting {name}.
        slots:
          language: path.language
          name: path.name
      - text: Show setting {name} dictionary translations in {language}.
        slots:
          name: path.name
          language: path.language
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/localizable-settings/{name}/dictionary-items'].post
  update:
    x-apievangelist-phrasing:
      intent: Save translated items for a setting
      effect: write
      questions:
      - How do I add translations to a localizable setting's dictionary?
      - Can I update the localized options of a setting?
      instructions:
      - text: Save localized dictionary items for setting {name}.
        slots:
          name: path.name
      - text: Update the translations of setting {name}.
        slots:
          name: path.name
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/localizable-settings/{name}/dictionary-items'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete translated items from a setting
      effect: destructive
      questions:
      - Can I remove options from a localizable setting's dictionary?
      - Which call deletes localized values of a setting?
      instructions:
      - text: Delete values {values} from localizable setting {name}.
        slots:
          values: query.values
          name: path.name
      - text: Remove dictionary items from setting {name}.
        slots:
          name: path.name
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/modules/reload'].post
  update:
    x-apievangelist-phrasing:
      intent: Reload the module list
      effect: write
      questions:
      - How do I refresh the list of available modules from the registry?
      - Can I reload modules without restarting the app?
      instructions:
      - text: Reload the modules catalog.
      - text: Refresh the list of available modules.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/modules'].get
  update:
    x-apievangelist-phrasing:
      intent: List installed modules
      effect: read
      questions:
      - Which modules are installed on my Virto Commerce platform?
      - What module versions am I running?
      instructions:
      - text: List installed modules.
      - text: Show each installed module and its version.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/modules/getdependents'].post
  update:
    x-apievangelist-phrasing:
      intent: Find modules that depend on a module
      effect: read
      questions:
      - Which modules depend on the one I want to remove?
      - What would break if I uninstalled a certain module?
      instructions:
      - text: Find all modules that depend on these modules.
      - text: Show dependents of the modules I pass in.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/modules/getmissingdependencies'].post
  update:
    x-apievangelist-phrasing:
      intent: Expand modules with their dependency list
      effect: read
      questions:
      - Which dependencies are missing for the modules I'm about to install?
      - Can I get a flat expanded dependency list before installing?
      instructions:
      - text: Check missing dependencies for these modules.
      - text: Expand these modules into a flat list including dependencies.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/modules/localstorage'].post
  update:
    x-apievangelist-phrasing:
      intent: Upload a module package
      effect: write
      questions:
      - How do I upload a module zip to install or update it?
      - Can I install a custom module package from a file?
      instructions:
      - text: Upload this module package archive.
      - text: Upload a module zip for installation.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/modules/install'].post
  update:
    x-apievangelist-phrasing:
      intent: Install modules
      effect: write
      questions:
      - How do I install several modules together?
      - Can I install modules from full module descriptors?
      instructions:
      - text: Install these module descriptors.
      - text: Install the selected modules using the original install endpoint.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/modules/install/v2'].post
  update:
    x-apievangelist-phrasing:
      intent: Install modules with lightweight requests
      effect: write
      questions:
      - Is there a v2 install call that takes just module IDs and versions?
      - Can I install modules without sending full descriptors?
      instructions:
      - text: Install modules using the v2 lightweight install requests.
      - text: Send slim install requests for these modules.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/modules/update'].post
  update:
    x-apievangelist-phrasing:
      intent: Update modules
      effect: write
      questions:
      - How do I upgrade installed modules to newer versions?
      - Can I update several modules using full descriptors?
      instructions:
      - text: Update these modules using full descriptors.
      - text: Upgrade the selected installed modules.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/modules/update/v2'].post
  update:
    x-apievangelist-phrasing:
      intent: Update modules with lightweight requests
      effect: write
      questions:
      - Is there a v2 update call that accepts only module IDs and versions?
      - Can I upgrade modules without sending entire module descriptors?
      instructions:
      - text: Update modules with v2 lightweight requests.
      - text: Send slim update requests for these modules.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/modules/uninstall'].post
  update:
    x-apievangelist-phrasing:
      intent: Uninstall modules
      effect: destructive
      questions:
      - How do I uninstall a group of modules?
      - Can I remove modules by sending their descriptors?
      instructions:
      - text: Uninstall these modules using full descriptors.
      - text: Remove the selected modules from the platform.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/modules/uninstall/v2'].post
  update:
    x-apievangelist-phrasing:
      intent: Uninstall modules with lightweight requests
      effect: destructive
      questions:
      - Is there a v2 uninstall call that only needs module IDs?
      - Can I uninstall several modules with slim requests?
      instructions:
      - text: Uninstall modules with v2 lightweight requests.
      - text: Send slim uninstall requests for these modules.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/modules/restart'].post
  update:
    x-apievangelist-phrasing:
      intent: Restart the web application
      effect: write
      questions:
      - Do I need to restart the app after installing modules, and how?
      - Can I restart the platform web application remotely?
      instructions:
      - text: Restart the web application.
      - text: Restart the platform so module changes take effect.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/modules/autoinstall'].post
  update:
    x-apievangelist-phrasing:
      intent: Auto-install module groups
      effect: write
      questions:
      - Can the platform automatically install the modules in configured groups?
      - What triggers module auto-install?
      instructions:
      - text: Auto-install modules for the configured groups.
      - text: Run module auto-install now.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/modules/loading-order'].get
  update:
    x-apievangelist-phrasing:
      intent: Get module loading order
      effect: read
      questions:
      - In what order are modules loaded at startup?
      - Which module loads first?
      instructions:
      - text: Show the module loading order.
      - text: List modules in the order they load.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/platform/modules/{moduleId}/versions/{version}/validate'].get
  update:
    x-apievangelist-phrasing:
      intent: Check that a module version package exists
      effect: read
      questions:
      - Is a specific module version actually downloadable before I install it?
      - Can I verify a module version's package URL?
      instructions:
      - text: Validate that version {version} of module {moduleId} exists.
        slots:
          version: path.version
          moduleId: path.moduleId
      - text: Check the download package for {moduleId} {version}.
        slots:
          moduleId: path.moduleId
          version: path.version
      method: generated
      generated: '2026-09-26'


# --- truncated at 32 KB (71 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/virto-commerce/refs/heads/main/overlays/virto-commerce-virtocommerce-platform-api-phrasing-overlay.yaml