Webscale Networks · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Webscale APIs

Non-destructive enhancement overlay for the Webscale APIs OpenAPI 3.0.3 document published at https://control.webscale.com/docs/openapi.json (info.version 2026.273). It records two gaps API Evangelist measured in the published contract and the enhancement that closes each. It NEVER modifies the provider's document; apply it to a copy. 1. operationId — all 151 operations lack one. Every operationId added here is DERIVED mechanically from the HTTP method and path (e.g. GET /applications/{id} -> getApplicationsById). They are API Evangelist's names, not Webscale's, and MUST NOT be presented as provider-authored. Their purpose is to make the contract usable by code generators and MCP tool binders, which key on operationId. 2. Error responses — the document defines components.schemas.Error ({type, description}) but no operation references it, and not one of the 151 operations declares a 4xx or 5xx response. This overlay wires the contract's OWN error schema onto the conventional failure codes. The codes are the enhancement; the schema is Webscale's. Not asserted: no rate-limit headers, idempotency keys, examples, or reversal semantics are added, because nothing in the provider's published surface states them.

302 actions 302 updates documentation extends openapi/webscale-networks-webscale-apis-openapi.json
Generated by API Evangelist Written by API Evangelist tooling for Webscale Networks's API. It is a proposal applied on top of the contract, not a document Webscale Networks publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

operationId400401403404500

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

$.paths['/accounts'].get
$.paths['/accounts'].post
$.paths['/accounts/{account_id}/service-users/{id}'].get
$.paths['/accounts/{account_id}/service-users/{id}'].patch
$.paths['/accounts/{account_id}/service-users/{id}'].delete
$.paths['/accounts/{id}'].get
$.paths['/accounts/{id}'].patch
$.paths['/accounts/{id}'].delete
$.paths['/accounts/{id}/group-invitations'].get
$.paths['/accounts/{id}/group-invitations'].post
$.paths['/accounts/{id}/group-invitations/{invitation_id}'].get
$.paths['/accounts/{id}/group-invitations/{invitation_id}'].patch
$.paths['/accounts/{id}/group-invitations/{invitation_id}'].delete
$.paths['/accounts/{id}/groups'].get
$.paths['/accounts/{id}/groups'].post
$.paths['/accounts/{id}/groups/{group_id}'].get

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Webscale APIs
  version: 1.0.0
  description: 'Non-destructive enhancement overlay for the Webscale APIs OpenAPI 3.0.3 document published
    at https://control.webscale.com/docs/openapi.json (info.version 2026.273).


    It records two gaps API Evangelist measured in the published contract and the enhancement that closes
    each. It NEVER modifies the provider''s document; apply it to a copy.


    1. operationId — all 151 operations lack one. Every operationId added here is DERIVED mechanically
    from the HTTP method and path (e.g. GET /applications/{id} -> getApplicationsById). They are API Evangelist''s
    names, not Webscale''s, and MUST NOT be presented as provider-authored. Their purpose is to make the
    contract usable by code generators and MCP tool binders, which key on operationId.


    2. Error responses — the document defines components.schemas.Error ({type, description}) but no operation
    references it, and not one of the 151 operations declares a 4xx or 5xx response. This overlay wires
    the contract''s OWN error schema onto the conventional failure codes. The codes are the enhancement;
    the schema is Webscale''s.


    Not asserted: no rate-limit headers, idempotency keys, examples, or reversal semantics are added,
    because nothing in the provider''s published surface states them.'
  x-generated-by: API Evangelist enrichment pipeline
  x-generated: '2026-09-04'
  x-method: generated
  x-source: openapi/webscale-networks-webscale-apis-openapi.json
extends: openapi/webscale-networks-webscale-apis-openapi.json
actions:
- target: $.paths['/accounts'].get
  description: Add a derived operationId for GET /accounts; the source contract declares none.
  update:
    operationId: getAccounts
- target: $.paths['/accounts'].post
  description: Add a derived operationId for POST /accounts; the source contract declares none.
  update:
    operationId: createAccounts
- target: $.paths['/accounts/{account_id}/service-users/{id}'].get
  description: Add a derived operationId for GET /accounts/{account_id}/service-users/{id}; the source
    contract declares none.
  update:
    operationId: getAccountsByAccountIdServiceUsersById
- target: $.paths['/accounts/{account_id}/service-users/{id}'].patch
  description: Add a derived operationId for PATCH /accounts/{account_id}/service-users/{id}; the source
    contract declares none.
  update:
    operationId: updateAccountsByAccountIdServiceUsersById
- target: $.paths['/accounts/{account_id}/service-users/{id}'].delete
  description: Add a derived operationId for DELETE /accounts/{account_id}/service-users/{id}; the source
    contract declares none.
  update:
    operationId: deleteAccountsByAccountIdServiceUsersById
- target: $.paths['/accounts/{id}'].get
  description: Add a derived operationId for GET /accounts/{id}; the source contract declares none.
  update:
    operationId: getAccountsById
- target: $.paths['/accounts/{id}'].patch
  description: Add a derived operationId for PATCH /accounts/{id}; the source contract declares none.
  update:
    operationId: updateAccountsById
- target: $.paths['/accounts/{id}'].delete
  description: Add a derived operationId for DELETE /accounts/{id}; the source contract declares none.
  update:
    operationId: deleteAccountsById
- target: $.paths['/accounts/{id}/group-invitations'].get
  description: Add a derived operationId for GET /accounts/{id}/group-invitations; the source contract
    declares none.
  update:
    operationId: getAccountsByIdGroupInvitations
- target: $.paths['/accounts/{id}/group-invitations'].post
  description: Add a derived operationId for POST /accounts/{id}/group-invitations; the source contract
    declares none.
  update:
    operationId: createAccountsByIdGroupInvitations
- target: $.paths['/accounts/{id}/group-invitations/{invitation_id}'].get
  description: Add a derived operationId for GET /accounts/{id}/group-invitations/{invitation_id}; the
    source contract declares none.
  update:
    operationId: getAccountsByIdGroupInvitationsByInvitationId
- target: $.paths['/accounts/{id}/group-invitations/{invitation_id}'].patch
  description: Add a derived operationId for PATCH /accounts/{id}/group-invitations/{invitation_id}; the
    source contract declares none.
  update:
    operationId: updateAccountsByIdGroupInvitationsByInvitationId
- target: $.paths['/accounts/{id}/group-invitations/{invitation_id}'].delete
  description: Add a derived operationId for DELETE /accounts/{id}/group-invitations/{invitation_id};
    the source contract declares none.
  update:
    operationId: deleteAccountsByIdGroupInvitationsByInvitationId
- target: $.paths['/accounts/{id}/groups'].get
  description: Add a derived operationId for GET /accounts/{id}/groups; the source contract declares none.
  update:
    operationId: getAccountsByIdGroups
- target: $.paths['/accounts/{id}/groups'].post
  description: Add a derived operationId for POST /accounts/{id}/groups; the source contract declares
    none.
  update:
    operationId: createAccountsByIdGroups
- target: $.paths['/accounts/{id}/groups/{group_id}'].get
  description: Add a derived operationId for GET /accounts/{id}/groups/{group_id}; the source contract
    declares none.
  update:
    operationId: getAccountsByIdGroupsByGroupId
- target: $.paths['/accounts/{id}/groups/{group_id}'].patch
  description: Add a derived operationId for PATCH /accounts/{id}/groups/{group_id}; the source contract
    declares none.
  update:
    operationId: updateAccountsByIdGroupsByGroupId
- target: $.paths['/accounts/{id}/groups/{group_id}'].delete
  description: Add a derived operationId for DELETE /accounts/{id}/groups/{group_id}; the source contract
    declares none.
  update:
    operationId: deleteAccountsByIdGroupsByGroupId
- target: $.paths['/accounts/{id}/invitations'].get
  description: Add a derived operationId for GET /accounts/{id}/invitations; the source contract declares
    none.
  update:
    operationId: getAccountsByIdInvitations
- target: $.paths['/accounts/{id}/invitations'].post
  description: Add a derived operationId for POST /accounts/{id}/invitations; the source contract declares
    none.
  update:
    operationId: createAccountsByIdInvitations
- target: $.paths['/accounts/{id}/invitations/{invitation_id}'].get
  description: Add a derived operationId for GET /accounts/{id}/invitations/{invitation_id}; the source
    contract declares none.
  update:
    operationId: getAccountsByIdInvitationsByInvitationId
- target: $.paths['/accounts/{id}/invitations/{invitation_id}'].patch
  description: Add a derived operationId for PATCH /accounts/{id}/invitations/{invitation_id}; the source
    contract declares none.
  update:
    operationId: updateAccountsByIdInvitationsByInvitationId
- target: $.paths['/accounts/{id}/invitations/{invitation_id}'].delete
  description: Add a derived operationId for DELETE /accounts/{id}/invitations/{invitation_id}; the source
    contract declares none.
  update:
    operationId: deleteAccountsByIdInvitationsByInvitationId
- target: $.paths['/accounts/{id}/roles'].get
  description: Add a derived operationId for GET /accounts/{id}/roles; the source contract declares none.
  update:
    operationId: getAccountsByIdRoles
- target: $.paths['/accounts/{id}/roles'].post
  description: Add a derived operationId for POST /accounts/{id}/roles; the source contract declares none.
  update:
    operationId: createAccountsByIdRoles
- target: $.paths['/accounts/{id}/roles/{role_id}'].get
  description: Add a derived operationId for GET /accounts/{id}/roles/{role_id}; the source contract declares
    none.
  update:
    operationId: getAccountsByIdRolesByRoleId
- target: $.paths['/accounts/{id}/roles/{role_id}'].patch
  description: Add a derived operationId for PATCH /accounts/{id}/roles/{role_id}; the source contract
    declares none.
  update:
    operationId: updateAccountsByIdRolesByRoleId
- target: $.paths['/accounts/{id}/roles/{role_id}'].delete
  description: Add a derived operationId for DELETE /accounts/{id}/roles/{role_id}; the source contract
    declares none.
  update:
    operationId: deleteAccountsByIdRolesByRoleId
- target: $.paths['/accounts/{id}/service-users'].get
  description: Add a derived operationId for GET /accounts/{id}/service-users; the source contract declares
    none.
  update:
    operationId: getAccountsByIdServiceUsers
- target: $.paths['/accounts/{id}/service-users'].post
  description: Add a derived operationId for POST /accounts/{id}/service-users; the source contract declares
    none.
  update:
    operationId: createAccountsByIdServiceUsers
- target: $.paths['/address-sets'].get
  description: Add a derived operationId for GET /address-sets; the source contract declares none.
  update:
    operationId: getAddressSets
- target: $.paths['/address-sets'].post
  description: Add a derived operationId for POST /address-sets; the source contract declares none.
  update:
    operationId: createAddressSets
- target: $.paths['/address-sets/metrics'].get
  description: Add a derived operationId for GET /address-sets/metrics; the source contract declares none.
  update:
    operationId: getAddressSetsMetrics
- target: $.paths['/address-sets/{id}'].get
  description: Add a derived operationId for GET /address-sets/{id}; the source contract declares none.
  update:
    operationId: getAddressSetsById
- target: $.paths['/address-sets/{id}'].patch
  description: Add a derived operationId for PATCH /address-sets/{id}; the source contract declares none.
  update:
    operationId: updateAddressSetsById
- target: $.paths['/address-sets/{id}'].delete
  description: Add a derived operationId for DELETE /address-sets/{id}; the source contract declares none.
  update:
    operationId: deleteAddressSetsById
- target: $.paths['/address-sets/{id}/addresses'].get
  description: Add a derived operationId for GET /address-sets/{id}/addresses; the source contract declares
    none.
  update:
    operationId: getAddressSetsByIdAddresses
- target: $.paths['/address-sets/{id}/metrics'].get
  description: Add a derived operationId for GET /address-sets/{id}/metrics; the source contract declares
    none.
  update:
    operationId: getAddressSetsByIdMetrics
- target: $.paths['/applications'].get
  description: Add a derived operationId for GET /applications; the source contract declares none.
  update:
    operationId: getApplications
- target: $.paths['/applications'].post
  description: Add a derived operationId for POST /applications; the source contract declares none.
  update:
    operationId: createApplications
- target: $.paths['/applications/metrics'].get
  description: Add a derived operationId for GET /applications/metrics; the source contract declares none.
  update:
    operationId: getApplicationsMetrics
- target: $.paths['/applications/{app_id}/webcontrols'].get
  description: Add a derived operationId for GET /applications/{app_id}/webcontrols; the source contract
    declares none.
  update:
    operationId: getApplicationsByAppIdWebcontrols
- target: $.paths['/applications/{app_id}/webcontrols/{id}'].get
  description: Add a derived operationId for GET /applications/{app_id}/webcontrols/{id}; the source contract
    declares none.
  update:
    operationId: getApplicationsByAppIdWebcontrolsById
- target: $.paths['/applications/{id}'].get
  description: Add a derived operationId for GET /applications/{id}; the source contract declares none.
  update:
    operationId: getApplicationsById
- target: $.paths['/applications/{id}'].patch
  description: Add a derived operationId for PATCH /applications/{id}; the source contract declares none.
  update:
    operationId: updateApplicationsById
- target: $.paths['/applications/{id}'].delete
  description: Add a derived operationId for DELETE /applications/{id}; the source contract declares none.
  update:
    operationId: deleteApplicationsById
- target: $.paths['/applications/{id}/logs'].get
  description: Add a derived operationId for GET /applications/{id}/logs; the source contract declares
    none.
  update:
    operationId: getApplicationsByIdLogs
- target: $.paths['/applications/{id}/logs'].post
  description: Add a derived operationId for POST /applications/{id}/logs; the source contract declares
    none.
  update:
    operationId: createApplicationsByIdLogs
- target: $.paths['/applications/{id}/metrics'].get
  description: Add a derived operationId for GET /applications/{id}/metrics; the source contract declares
    none.
  update:
    operationId: getApplicationsByIdMetrics
- target: $.paths['/archived-logs'].get
  description: Add a derived operationId for GET /archived-logs; the source contract declares none.
  update:
    operationId: getArchivedLogs
- target: $.paths['/archived-logs/{ref}'].get
  description: Add a derived operationId for GET /archived-logs/{ref}; the source contract declares none.
  update:
    operationId: getArchivedLogsByRef
- target: $.paths['/archived-logs/{ref}'].delete
  description: Add a derived operationId for DELETE /archived-logs/{ref}; the source contract declares
    none.
  update:
    operationId: deleteArchivedLogsByRef
- target: $.paths['/builders'].get
  description: Add a derived operationId for GET /builders; the source contract declares none.
  update:
    operationId: getBuilders
- target: $.paths['/builders'].post
  description: Add a derived operationId for POST /builders; the source contract declares none.
  update:
    operationId: createBuilders
- target: $.paths['/builders/{id}'].get
  description: Add a derived operationId for GET /builders/{id}; the source contract declares none.
  update:
    operationId: getBuildersById
- target: $.paths['/builders/{id}'].patch
  description: Add a derived operationId for PATCH /builders/{id}; the source contract declares none.
  update:
    operationId: updateBuildersById
- target: $.paths['/builders/{id}'].delete
  description: Add a derived operationId for DELETE /builders/{id}; the source contract declares none.
  update:
    operationId: deleteBuildersById
- target: $.paths['/clusters'].get
  description: Add a derived operationId for GET /clusters; the source contract declares none.
  update:
    operationId: getClusters
- target: $.paths['/clusters'].post
  description: Add a derived operationId for POST /clusters; the source contract declares none.
  update:
    operationId: createClusters
- target: $.paths['/clusters/metrics'].get
  description: Add a derived operationId for GET /clusters/metrics; the source contract declares none.
  update:
    operationId: getClustersMetrics
- target: $.paths['/clusters/{id}'].get
  description: Add a derived operationId for GET /clusters/{id}; the source contract declares none.
  update:
    operationId: getClustersById
- target: $.paths['/clusters/{id}'].patch
  description: Add a derived operationId for PATCH /clusters/{id}; the source contract declares none.
  update:
    operationId: updateClustersById
- target: $.paths['/clusters/{id}'].delete
  description: Add a derived operationId for DELETE /clusters/{id}; the source contract declares none.
  update:
    operationId: deleteClustersById
- target: $.paths['/clusters/{id}/metrics'].get
  description: Add a derived operationId for GET /clusters/{id}/metrics; the source contract declares
    none.
  update:
    operationId: getClustersByIdMetrics
- target: $.paths['/environments'].get
  description: Add a derived operationId for GET /environments; the source contract declares none.
  update:
    operationId: getEnvironments
- target: $.paths['/environments'].post
  description: Add a derived operationId for POST /environments; the source contract declares none.
  update:
    operationId: createEnvironments
- target: $.paths['/environments/{id}'].get
  description: Add a derived operationId for GET /environments/{id}; the source contract declares none.
  update:
    operationId: getEnvironmentsById
- target: $.paths['/environments/{id}'].patch
  description: Add a derived operationId for PATCH /environments/{id}; the source contract declares none.
  update:
    operationId: updateEnvironmentsById
- target: $.paths['/environments/{id}'].delete
  description: Add a derived operationId for DELETE /environments/{id}; the source contract declares none.
  update:
    operationId: deleteEnvironmentsById
- target: $.paths['/files'].get
  description: Add a derived operationId for GET /files; the source contract declares none.
  update:
    operationId: getFiles
- target: $.paths['/files'].post
  description: Add a derived operationId for POST /files; the source contract declares none.
  update:
    operationId: createFiles
- target: $.paths['/files/{id}'].get
  description: Add a derived operationId for GET /files/{id}; the source contract declares none.
  update:
    operationId: getFilesById
- target: $.paths['/files/{id}'].patch
  description: Add a derived operationId for PATCH /files/{id}; the source contract declares none.
  update:
    operationId: updateFilesById
- target: $.paths['/files/{id}'].delete
  description: Add a derived operationId for DELETE /files/{id}; the source contract declares none.
  update:
    operationId: deleteFilesById
- target: $.paths['/files/{id}/contents'].get
  description: Add a derived operationId for GET /files/{id}/contents; the source contract declares none.
  update:
    operationId: getFilesByIdContents
- target: $.paths['/files/{id}/contents/{path}'].get
  description: Add a derived operationId for GET /files/{id}/contents/{path}; the source contract declares
    none.
  update:
    operationId: getFilesByIdContentsByPath
- target: $.paths['/files/{id}/details'].get
  description: Add a derived operationId for GET /files/{id}/details; the source contract declares none.
  update:
    operationId: getFilesByIdDetails
- target: $.paths['/files/{id}/versions/{version_id}'].get
  description: Add a derived operationId for GET /files/{id}/versions/{version_id}; the source contract
    declares none.
  update:
    operationId: getFilesByIdVersionsByVersionId
- target: $.paths['/files/{id}/versions/{version_id}/contents'].get
  description: Add a derived operationId for GET /files/{id}/versions/{version_id}/contents; the source
    contract declares none.
  update:
    operationId: getFilesByIdVersionsByVersionIdContents
- target: $.paths['/files/{id}/versions/{version_id}/contents/{path}'].get
  description: Add a derived operationId for GET /files/{id}/versions/{version_id}/contents/{path}; the
    source contract declares none.
  update:
    operationId: getFilesByIdVersionsByVersionIdContentsByPath
- target: $.paths['/labelers/{id}'].delete
  description: Add a derived operationId for DELETE /labelers/{id}; the source contract declares none.
  update:
    operationId: deleteLabelersById
- target: $.paths['/log-schemas'].get
  description: Add a derived operationId for GET /log-schemas; the source contract declares none.
  update:
    operationId: getLogSchemas
- target: $.paths['/metric-prototypes'].get
  description: Add a derived operationId for GET /metric-prototypes; the source contract declares none.
  update:
    operationId: getMetricPrototypes
- target: $.paths['/metric-prototypes'].post
  description: Add a derived operationId for POST /metric-prototypes; the source contract declares none.
  update:
    operationId: createMetricPrototypes
- target: $.paths['/metric-prototypes/{id}'].get
  description: Add a derived operationId for GET /metric-prototypes/{id}; the source contract declares
    none.
  update:
    operationId: getMetricPrototypesById
- target: $.paths['/metric-prototypes/{id}'].delete
  description: Add a derived operationId for DELETE /metric-prototypes/{id}; the source contract declares
    none.
  update:
    operationId: deleteMetricPrototypesById
- target: $.paths['/monitors'].get
  description: Add a derived operationId for GET /monitors; the source contract declares none.
  update:
    operationId: getMonitors
- target: $.paths['/monitors'].post
  description: Add a derived operationId for POST /monitors; the source contract declares none.
  update:
    operationId: createMonitors
- target: $.paths['/monitors/{id}'].get
  description: Add a derived operationId for GET /monitors/{id}; the source contract declares none.
  update:
    operationId: getMonitorsById
- target: $.paths['/monitors/{id}'].patch
  description: Add a derived operationId for PATCH /monitors/{id}; the source contract declares none.
  update:
    operationId: updateMonitorsById
- target: $.paths['/monitors/{id}'].delete
  description: Add a derived operationId for DELETE /monitors/{id}; the source contract declares none.
  update:
    operationId: deleteMonitorsById
- target: $.paths['/reports/{report_id}/sections/{section_id}'].get
  description: Add a derived operationId for GET /reports/{report_id}/sections/{section_id}; the source
    contract declares none.
  update:
    operationId: getReportsByReportIdSectionsBySectionId
- target: $.paths['/resources/{id}'].delete
  description: Add a derived operationId for DELETE /resources/{id}; the source contract declares none.
  update:
    operationId: deleteResourcesById
- target: $.paths['/secrets'].get
  description: Add a derived operationId for GET /secrets; the source contract declares none.
  update:
    operationId: getSecrets
- target: $.paths['/secrets'].post
  description: Add a derived operationId for POST /secrets; the source contract declares none.
  update:
    operationId: createSecrets
- target: $.paths['/secrets/{id}'].get
  description: Add a derived operationId for GET /secrets/{id}; the source contract declares none.
  update:
    operationId: getSecretsById
- target: $.paths['/secrets/{id}'].delete
  description: Add a derived operationId for DELETE /secrets/{id}; the source contract declares none.
  update:
    operationId: deleteSecretsById
- target: $.paths['/servers'].get
  description: Add a derived operationId for GET /servers; the source contract declares none.
  update:
    operationId: getServers
- target: $.paths['/servers/{id}'].delete
  description: Add a derived operationId for DELETE /servers/{id}; the source contract declares none.
  update:
    operationId: deleteServersById
- target: $.paths['/servers/{id}/metrics'].post
  description: Add a derived operationId for POST /servers/{id}/metrics; the source contract declares
    none.
  update:
    operationId: createServersByIdMetrics
- target: $.paths['/ssh-hosts'].get
  description: Add a derived operationId for GET /ssh-hosts; the source contract declares none.
  update:
    operationId: getSshHosts
- target: $.paths['/ssh-hosts'].post
  description: Add a derived operationId for POST /ssh-hosts; the source contract declares none.
  update:
    operationId: createSshHosts
- target: $.paths['/ssh-hosts/{id}'].get
  description: Add a derived operationId for GET /ssh-hosts/{id}; the source contract declares none.
  update:
    operationId: getSshHostsById
- target: $.paths['/ssh-hosts/{id}'].patch
  description: Add a derived operationId for PATCH /ssh-hosts/{id}; the source contract declares none.
  update:
    operationId: updateSshHostsById
- target: $.paths['/ssh-hosts/{id}'].delete
  description: Add a derived operationId for DELETE /ssh-hosts/{id}; the source contract declares none.
  update:
    operationId: deleteSshHostsById
- target: $.paths['/ssh-hosts/{id}/logs'].get
  description: Add a derived operationId for GET /ssh-hosts/{id}/logs; the source contract declares none.
  update:
    operationId: getSshHostsByIdLogs
- target: $.paths['/stacks'].get
  description: Add a derived operationId for GET /stacks; the source contract declares none.
  update:
    operationId: getStacks
- target: $.paths['/stacks'].post
  description: Add a derived operationId for POST /stacks; the source contract declares none.
  update:
    operationId: createStacks
- target: $.paths['/stacks/{id}'].get
  description: Add a derived operationId for GET /stacks/{id}; the source contract declares none.
  update:
    operationId: getStacksById
- target: $.paths['/stacks/{id}'].patch
  description: Add a derived operationId for PATCH /stacks/{id}; the source contract declares none.
  update:
    operationId: updateStacksById
- target: $.paths['/stacks/{id}'].delete
  description: Add a derived operationId for DELETE /stacks/{id}; the source contract declares none.
  update:
    operationId: deleteStacksById
- target: $.paths['/tasks'].get
  description: Add a derived operationId for GET /tasks; the source contract declares none.
  update:
    operationId: getTasks
- target: $.paths['/tasks'].post
  description: Add a derived operationId for POST /tasks; the source contract declares none.
  update:
    operationId: createTasks
- target: $.paths['/tasks/{id}'].get
  description: Add a derived operationId for GET /tasks/{id}; the source contract declares none.
  update:
    operationId: getTasksById
- target: $.paths['/tasks/{id}/logs'].get
  description: Add a derived operationId for GET /tasks/{id}/logs; the source contract declares none.
  update:
    operationId: getTasksByIdLogs
- target: $.paths['/templates'].get
  description: Add a derived operationId for GET /templates; the source contract declares none.
  update:
    operationId: getTemplates
- target: $.paths['/templates'].post
  description: Add a derived operationId for POST /templates; the source contract declares none.
  update:
    operationId: createTemplates
- target: $.paths['/templates/{id}'].get
  description: Add a derived operationId for GET /templates/{id}; the source contract declares none.
  update:
    operationId: getTemplatesById
- target: $.paths['/templates/{id}'].patch
  description: Add a derived operationId for PATCH /templates/{id}; the source contract declares none.
  update:
    operationId: updateTemplatesById
- target: $.paths['/templates/{id}'].delete
  description: Add a derived operationId for DELETE /templates/{id}; the source contract declares none.
  update:
    operationId: deleteTemplatesById
- target: $.paths['/tests/{id}'].delete
  description: Add a derived operationId for DELETE /tests/{id}; the source contract declares none.
  update:
    operationId: deleteTestsById
- target: $.paths['/url-maps'].get
  description: Add a derived operationId for GET /url-maps; the source contract declares none.
  update:
    operationId: getUrlMaps
- target: $.paths['/url-maps'].post
  description: Add a derived operationId for POST /url-maps; the source contract declares none.
  update:
    operationId: createUrlMaps
- target: $.paths['/url-maps/{id}'].get
  description: Add a derived operationId for GET /url-maps/{id}; the source contract declares none.
  update:
    operationId: getUrlMapsById
- target: $.paths['/url-maps/{id}'].patch
  description: Add a derived operationId for PATCH /url-maps/{id}; the source contract declares none.
  update:
    operationId: updateUrlMapsById
- target: $.paths['/url-maps/{id}'].delete
  description: Add a derived operationId for DELETE /url-maps/{id}; the source contract declares none.
  update:
    operationId: deleteUrlMapsById
- target: $.paths['/users'].get
  description: Add a derived operationId for GET /users; the source contract declares none.
  update:
    operationId: getUsers
- target: $.paths['/users/{id}'].get
  description: Add a derived operationId for GET /users/{id}; the source contract declares none.
  update:
    operationId: getUsersById
- target: $.paths['/users/{id}'].patch
  description: Add a derived operationId for PATCH /users/{id}; the source contract declares none.
  update:
    operationId: updateUsersById
- target: $.paths['/users/{id}/access-keys'].get
  description: Add a derived operationId for GET /users/{id}/access-keys; the source contract declares
    none.
  update:
    operationId: getUsersByIdAccessKeys
- target: $.paths['/users/{id}/access-keys'].post
  description: Add a derived operationId for POST /users/{id}/access-keys; the source contract declares
    none.
  update:
    operationId: createUsersByIdAccessKeys
- target: $.paths['/users/{id}/authorization'].get
  description: Add a derived operationId for GET /users/{id}/authorization; the source contract declares
    none.
  update:
    operationId: getUsersByIdAuthorization
- target: $.paths['/users/{id}/authorization'].post
  description: Add a derived operationId for POST /users/{id}/authorization; the source contract declares
    none.
  update:
    operationId: createUsersByIdAuthorization
- target: $.paths['/users/{id}/group-invitations'].get
  description: Add a derived operationId for GET /users/{id}/group-invitations; the source contract declares
    none.
  update:
    operationId: getUsersByIdGroupInvitations
- target: $.paths['/users/{id}/group-invitations/{group-invitation-id}'].get
  description: Add a derived operationId for GET /users/{id}/group-invitations/{group-invitation-id};
    the source contract declares none.
  update:
    operationId: getUsersByIdGroupInvitationsByGroupInvitationId
- target: $.paths['/users/{id}/group-invitations/{group-invitation-id}'].patch
  description: Add a derived operationId for PATCH /users/{id}/group-invitations/{group-invitation-id};
    the source contract declares none.
  update:
    operationId: updateUsersByIdGroupInvitationsByGroupInvitationId
- target: $.paths['/users/{id}/groups'].get
  description: Add a derived operationId for GET /users/{id}/groups; the source contract declares none.
  update:
    operationId: getUsersByIdGroups
- target: $.paths['/users/{id}/groups/{group_id}'].get
  description: Add a derived operationId for GET /users/{id}/groups/{group_id}; the source contract declares
    none.
  update:
    operationId: getUsersByIdGroupsByGroupId
- target: $.paths['/users/{id}/groups/{group_id}'].delete
  description: Add a derived operationId for DELETE /users/{id}/groups/{group_id}; the source contract
    declares none.
  update:
    operationId: deleteUsersByIdGroupsByGroupId
- target: $.paths['/users/{id}/invitations'].get
  description: Add a derived operationId for GET /users/{id}/invitations; the source contract declares
    none.
  update:
    operationId: getUsersByIdInvitations
- target: $.paths['/users/{id}/invitations/{invitation_id}'].get
  description: Add a derived operationId for GET /users/{id}/invitations/{invitation_id}; the source contract
    declares none.
  update:
    operationId: getUsersByIdInvitationsByInvitationId
- target: $.paths['/users/{id}/invitations/{invitation_id}'].patch
  description: Add a derived operationId for PATCH /users/{id}/invitations/{invitation_id}; the source
    contract declares none.
  update:
    operationId: updateUsersByIdInvitationsByInvitationId
- target: $.paths['/users/{id}/roles'].get
  description: Add a derived operationId for GET /users/{id}/roles; the source contract declares none.
  update:
    operationId: getUsersByIdRoles
- target: $.paths['/users/{id}/roles/{role_id}'].get
  description: Add a derived operationId for GET /users/{id}/roles/{role_id}; the source contract declares
    none.
  update:
    operationId: getUsersByIdRolesByRoleId
- target: $.paths['/users/{id}/roles/{role_id}'].delete
  description: Add a derived operationId for DELETE /users/{id}/roles/{role_id}; the source contract declares
    none.
  update:
    operationId: deleteUsersByIdRolesByRoleId
- target: $.paths['/users/{id}/ssh-public-keys'].get
  description: Add a derived operationId for GET /users/{id}/ssh-public-keys; the source contract declares
    none.
  update:
    operationId: getUsersByIdSshPublicKeys
- target: $.paths['/users/{id}/ssh-public-keys'].post
  description: Add a derived operationId for POST /users/{id}/ssh-public-keys; the source contract declares
    none.
  update:
    operationId: createUsersByIdSshPublicKeys
- target: $.paths['/users/{id}/ssh-public-keys/{key_id}'].get
  description: Add a derived operationId for GET /users/{id}/ssh-public-keys/{key_id}; the source contract
    declares none.
  update:
    operationId: getUsersByIdSshPublicKeysByKeyId
- target: $.paths['/users/{id}/ssh-public-keys/{key_id}'].patch
  description: Add a derived operationId for PATCH /users/{id}/ssh-public-keys/{key_id}; the source contract
    declares none.
  update:
    operationId: updateUsersByIdSshPublicKeysByKeyId
- target: $.paths['/users/{id}/ssh-public-keys/{key_id}'].delete
  description: Add a derived operationId for DELETE /users/{id}/ssh-public-keys/{key_id}; the source contract
    declares none.
  update:
    operationId: deleteUsersByIdSshPublicKeysByKeyId


# --- truncated at 32 KB (164 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/webscale-networks/refs/heads/main/overlays/webscale-networks-webscale-apis-overlay.yaml