{"swagger":"2.0","info":{"title":"SwaggerHub Registry API","version":"1.4.0","description":"# Overview\nUse SwaggerHub Registry API to access, manage, and update the following resources in SwaggerHub, bypassing the web interface:\n  * APIs\n  * Domains\n  * Integrations\n  * Projects\n  * Templates\n\n\nSwaggerHub also provides the [User Management API](https://app.swaggerhub.com/apis-docs/swagger-hub/user-management-api/) to get information about organizations and manage organization members.\n\n# Base URL\nUse the following base URL for SwaggerHub SaaS:\n\n    http(s)://api.swaggerhub.com\n\n**Note:** This documentation is for SwaggerHub SaaS. On-Premise customers should use the bundled API definition, which can be found at the URLs provided below:\n\n    http(s)://SERVER/v1/openapi.yaml - YAML version\n    http(s)://SERVER/v1/openapi.json - JSON version\n\n\n# Authentication\nOperations that update data or access private data require authentication using an API key. You can find your personal API key on the [API Keys](https://app.swaggerhub.com/settings/apiKey) page in your account settings. Send this key in the `Authorization` header when making requests to the Registry API:\n\n    Authorization: YOUR_API_KEY\n\nTo test API calls from this documentation page, click the **Authorize** button below and paste your API key there.\n\n**Important:** Keep the API key secure and do not store it directly in your code.\n# Tools\nIn addition to calling the Registry API directly, you can use the following tools to interact with the API from the command line or CI/CD pipeline:\n\n * [SwaggerHub CLI](https://www.npmjs.com/package/swaggerhub-cli) \n * [Maven plugin](https://github.com/swagger-api/swaggerhub-maven-plugin)\n * [Gradle plugin](https://github.com/swagger-api/swaggerhub-gradle-plugin)\n","termsOfService":"https://smartbear.com/terms-of-use/","contact":{"name":"SwaggerHub Support","url":"https://support.smartbear.com/swaggerhub/message/"}},"host":"api.swaggerhub.com","schemes":["https"],"tags":[{"name":"APIs","description":"Manage your API definitions"},{"name":"Templates","description":"Manage your API [custom templates](https://support.smartbear.com/swaggerhub/docs/apis/creating-api-custom-template.html)"},{"name":"Domains","description":"Manage your [domains](https://support.smartbear.com/swaggerhub/docs/domains/)"},{"name":"Projects","description":"Manage your organization's [projects](https://support.smartbear.com/swaggerhub/docs/organizations/projects/)"},{"name":"Integrations","description":"Create and configure [integrations](https://support.smartbear.com/swaggerhub/docs/integrations/) programmatically"},{"name":"Standardization","description":"Manage your organization's [standardization](https://support.smartbear.com/swaggerhub/docs/en/manage-resource-access/api-standardization.html)"}],"produces":["application/json"],"paths":{"/specs":{"get":{"tags":["APIs","Domains","Templates"],"summary":"Retrieve a list of currently defined APIs, domains, and templates in APIs.json format","operationId":"searchApisAndDomains","parameters":[{"name":"specType","in":"query","description":"Type of definitions to search:\n* API - APIs only\n* DOMAIN - domains only\n* TEMPLATE - templates only\n* ANY - APIs, domains, and templates\n","required":false,"type":"string","default":"ANY","enum":["API","DOMAIN","TEMPLATE","ANY"]},{"name":"visibility","in":"query","description":"The visibility of a definition in SwaggerHub:\n* PUBLIC - can be viewed by anyone\n* PRIVATE - can only be viewed by you or your organization and those that you are collaborating with or have shared it with\n* ANY - either PUBLIC or PRIVATE\n","required":false,"type":"string","default":"ANY","enum":["PUBLIC","PRIVATE","ANY"]},{"$ref":"#/parameters/state"},{"name":"owner","in":"query","description":"API or domain owner. Can be username or organization name. Case-sensitive.","required":false,"type":"string"},{"$ref":"#/parameters/query"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/limit"},{"$ref":"#/parameters/sort"},{"$ref":"#/parameters/order"}],"responses":{"200":{"description":"A list of APIs, domains, and templates in APIs.json format","schema":{"$ref":"#/definitions/ApisJson"}}},"security":[{"TokenSecured":[]},{}]}},"/specs/validate":{"post":{"tags":["APIs"],"summary":"Validate an OpenAPI/AsyncAPI definition","description":"Performs structural validation of a complete OpenAPI or AsyncAPI definition against its specification and returns findings with line/column positions. This check is independent of any organization standardization rules.\n\nReturns `200` if the definition is recognized as a supported specification, or `422` if it cannot be identified as one.\n\nValidation is not supported for MCP, A2A, GraphQL or gRPC definitions. These are always reported as unrecognized (`422`), even though they are otherwise valid specification types elsewhere in this API.","operationId":"validateSpec","consumes":["application/json"],"parameters":[{"name":"definition","in":"body","description":"Definition to validate.","required":true,"schema":{"$ref":"#/definitions/SpecValidationRequest"}},{"name":"maxProblems","in":"query","description":"Cap on the number of findings returned (default 100, upper bound 1000).","required":false,"type":"integer","format":"int32","minimum":1,"maximum":1000,"default":100},{"name":"uri","in":"query","description":"Optional pseudo-URI hint for the parser (e.g. `inmemory://spec.yaml`).","required":false,"type":"string"}],"responses":{"200":{"description":"Validation completed and the definition was recognized","schema":{"$ref":"#/definitions/SpecValidationResult"}},"400":{"$ref":"#/responses/BadRequest"},"401":{"$ref":"#/responses/Unauthorized"},"413":{"description":"Request body exceeded the 5 MB size limit"},"422":{"description":"Definition was not recognized as a supported specification. Also returned for MCP, A2A, GraphQL and gRPC definitions, which are not supported by this endpoint.","schema":{"$ref":"#/definitions/SpecValidationResult"}},"503":{"description":"Validation service is temporarily unavailable; retry later"},"504":{"description":"Validation timed out"}},"security":[{"TokenSecured":[]}]}},"/apis":{"get":{"tags":["APIs"],"summary":"Search APIs","description":"This is a convenience alias for `GET /specs?specType=API`.","operationId":"searchApis","parameters":[{"$ref":"#/parameters/query"},{"$ref":"#/parameters/state"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/limit"},{"$ref":"#/parameters/sort"},{"$ref":"#/parameters/order"}],"responses":{"303":{"description":"Redirect to `GET /specs`, with all query parameters preserved","headers":{"Location":{"type":"string"}}}},"security":[{"TokenSecured":[]},{}]}},"/apis/{owner}":{"get":{"tags":["APIs"],"summary":"Get a list of APIs of the specified owner","operationId":"getOwnerApis","parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/limit"},{"$ref":"#/parameters/sort"},{"$ref":"#/parameters/order"}],"responses":{"200":{"description":"A list of APIs in APIs.json format","schema":{"$ref":"#/definitions/ApisJson"}}},"security":[{"TokenSecured":[]},{}]}},"/apis/{owner}/{api}":{"get":{"tags":["APIs"],"summary":"Get a list of API versions","operationId":"getApiVersions","parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"}],"responses":{"200":{"description":"A list of API versions in APIs.json format","schema":{"$ref":"#/definitions/ApisJson"}},"404":{"description":"The specified API was not found. If it is private, make sure the request is authenticated and the authenticating user has access to this API."}},"security":[{"TokenSecured":[]},{}]},"post":{"tags":["APIs"],"summary":"Create or update an API","description":"Use this operation to create a new API or update an existing API by uploading its OpenAPI definition in YAML or JSON format. The authenticating user must have permissions to create or update APIs in the specified `owner` account.\n\nThe API name and version must follow SwaggerHub naming rules, otherwise the request will be rejected. Refer to:\n \n * [API name format](https://support.smartbear.com/swaggerhub/docs/apis/creating-api.html)\n * [Version format](https://support.smartbear.com/swaggerhub/docs/apis/versioning.html#format)\n\n\nWhen a new version of an existing API is created, it does not automatically become the default version. You can use `PUT /apis/{owner}/{api}/settings/default` to set the default version.\n\n### cURL example\nLine breaks are added for readability.\n\n    curl -X POST \"https://api.swaggerhub.com/apis/OWNER/API_TO_CREATE_OR_UPDATE\"\n         -H \"Authorization: SWAGGERHUB_API_KEY\"\n         -H \"Content-Type: application/yaml\"\n         --data-binary @C:\\work\\swagger.yaml\n\n**Note:** Use `--data-binary` (not `-d`) when uploading YAML files using cURL, and remember to specify the correct `Content-Type` header.","operationId":"saveDefinition","consumes":["application/json","application/yaml"],"parameters":[{"name":"owner","in":"path","description":"API owner name (organization or user name, case-sensitive)","required":true,"type":"string"},{"$ref":"#/parameters/api"},{"name":"isPrivate","in":"query","description":"Whether to make the API private (`true`) or public (`false`)","required":false,"type":"boolean","default":false},{"name":"version","in":"query","description":"API version to create or update. If omitted, the version is extracted from the `info.version` field of the provided OpenAPI definition.\n\nEither the `version` parameter or the `info.version` value must be specified, otherwise the request will be rejected. If both are specified, the `version` parameter overrides the `info.version` value.\n\nIf this API version already exists, it will be updated with the new definition (unless that version has been published - in this case the update will be rejected).","required":false,"type":"string"},{"name":"definition","in":"body","description":"OpenAPI definition in the YAML or JSON format. The content must be syntactically valid YAML or JSON.","required":true,"schema":{"type":"string","example":"{\n  \"swagger\": \"2.0\",\n  \"info\": {\n    \"title\": \"Sample API\",\n    \"version\": \"1.0.0\"\n  },\n  \"paths\": {}\n}\n"}},{"name":"force","in":"query","description":"Force update","required":false,"type":"boolean"}],"responses":{"200":{"description":"Existing API version was successfully updated"},"201":{"description":"New API or version was successfully created"},"205":{"description":"This status is returned when updating existing API versions that use [API Auto Mocking](https://support.smartbear.com/swaggerhub/docs/integrations/api-auto-mocking.html) with the \"Update host setting\" option enabled. Status 205 means the uploaded definition was successfully saved, and its `servers` or `host`+`basePath` values were automatically updated to point to the mock server.\n\nThe client can download the updated definition from SwaggerHub by using `GET /apis/{owner}/{api}`."},"400":{"description":"Possible reasons:\n\n * Some parameter values are invalid, or the provided OpenAPI definition is invalid.\n * The specified `projectName` does not exist in the `owner` organization, or the authenticating user does not have access to this project.\n * Cannot create a new API because a domain with this name already exists in the `owner` account. Try a different name."},"401":{"$ref":"#/responses/Unauthorized"},"403":{"description":"Maximum number of APIs reached"},"404":{"description":"The specified owner was not found"},"409":{"description":"Cannot overwrite a published API version"},"415":{"description":"Invalid content type"}},"security":[{"TokenSecured":[]}]},"delete":{"tags":["APIs"],"summary":"Delete an API","operationId":"deleteApi","parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"}],"responses":{"200":{"description":"The API was successfully deleted"},"403":{"description":"Access denied"},"404":{"description":"The specified API not found"},"409":{"description":"The API has published versions and cannot be deleted"}},"security":[{"TokenSecured":[]}]}},"/apis/{owner}/{api}/rename":{"post":{"tags":["APIs"],"summary":"Rename an API","description":"The new name must follow the [naming rules](https://support.smartbear.com/swaggerhub/docs/apis/creating-api.html).","operationId":"renameApi","parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/newName"}],"responses":{"200":{"description":"The API was successfully renamed"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"description":"Access denied (insufficient user permissions)"},"404":{"description":"The specified owner or API was not found"},"409":{"description":"An API or domain with the new name already exists, or the new and old names are the same"}},"security":[{"TokenSecured":[]}]}},"/apis/{owner}/{api}/{version}":{"get":{"tags":["APIs"],"summary":"Get the OpenAPI definition of the specified API version","operationId":"getDefinition","produces":["application/json","application/yaml"],"parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/resolved"},{"$ref":"#/parameters/flatten"}],"responses":{"200":{"description":"OpenAPI definition in the requested format (YAML or JSON)","schema":{"type":"object","example":{"openapi":"3.0.0","info":{"title":"Sample API","version":"1.0.0"},"paths":{}}}},"400":{"description":"Could not generate resolved definition due to syntax errors in the definition","examples":{"application/json":{"code":400,"message":"Failed to read OAS3 definition.\nCould not find components/schemas/SchemaName in contents of https://api.swaggerhub.com/domains/MyOrg/MyDomain/1.0.0"}}},"404":{"description":"The specified API or version was not found. If it is private, make sure the request is authenticated and the authenticating user has access to this API."}},"security":[{"TokenSecured":[]},{}]},"delete":{"tags":["APIs"],"summary":"Delete an API version","operationId":"deleteApiVersion","parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"}],"responses":{"200":{"description":"The API version was successfully deleted"},"403":{"description":"Access denied"},"404":{"description":"The specified API was not found"},"409":{"description":"The API version is published and cannot be deleted or it is the only version of this API"}},"security":[{"TokenSecured":[]}]}},"/apis/{owner}/{api}/{version}/fork":{"post":{"tags":["APIs"],"summary":"Fork an API","description":"Creates a [fork](https://support.smartbear.com/swaggerhub/docs/apis/forking-api.html) of the specified API definition and version. The fork can be created as a new API, or as a new version in another existing API.","operationId":"forkApi","parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"},{"in":"body","name":"forkVersion","description":"Fork parameters","required":true,"schema":{"$ref":"#/definitions/ForkVersion"}}],"responses":{"201":{"description":"The API was successfully forked"},"400":{"description":"Some parameters are missing or invalid"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"description":"Access denied"},"404":{"description":"The specified owner or API was not found"},"409":{"description":"An API with the name and version you're trying to create already exists"}},"security":[{"TokenSecured":[]}]}},"/apis/{owner}/{api}/{version}/clone":{"post":{"tags":["APIs"],"summary":"Create a new API version","description":"Use this operation to clone an existing API version as a new version. The new version will have the same YAML content but with updated `info.version`.\n\n**Note:** Comments, integrations, and codegen options are not copied to the new version. The default version also remains unchanged.","operationId":"cloneApi","parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/versionToClone"},{"$ref":"#/parameters/newVersion"}],"responses":{"201":{"description":"New API version was successfully created"},"400":{"description":"Bad request"},"403":{"description":"Access denied"},"404":{"description":"The specified API or version was not found"},"409":{"description":"The API version you are trying to create already exists"}},"security":[{"TokenSecured":[]}]}},"/apis/{owner}/{api}/{version}/swagger.json":{"get":{"tags":["APIs"],"summary":"Get the OpenAPI definition for the specified API version in JSON format","operationId":"getJsonDefinition","parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/resolved"},{"$ref":"#/parameters/flatten"}],"responses":{"200":{"description":"OpenAPI definition in JSON format","schema":{"type":"object","example":{"openapi":"3.0.0","info":{"title":"Sample API","version":"1.0.0"},"paths":{}}}},"400":{"description":"Could not generate resolved definition due to syntax errors in the definition","examples":{"application/json":{"code":400,"message":"Failed to read OAS3 definition.\nCould not find components/schemas/SchemaName in contents of https://api.swaggerhub.com/domains/MyOrg/MyDomain/1.0.0"}}},"404":{"description":"The specified API or version was not found. If it is private, make sure the request is authenticated and the authenticating user has access to this API."}},"security":[{"TokenSecured":[]},{}]}},"/apis/{owner}/{api}/{version}/swagger.yaml":{"get":{"tags":["APIs"],"summary":"Get the OpenAPI definition for the specified API version in YAML format","operationId":"getYamlDefinition","produces":["application/yaml"],"parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/resolved"},{"$ref":"#/parameters/flatten"}],"responses":{"200":{"description":"OpenAPI definition in YAML format","schema":{"type":"object"},"examples":{"application/yaml":"openapi: 3.0.0\ninfo:\n  title: Sample API\n  version: 1.0.0\npaths: {}\n"}},"400":{"description":"Could not generate resolved definition due to syntax errors in the definition","examples":{"application/json":{"code":400,"message":"Failed to read OAS3 definition.\nCould not find components/schemas/SchemaName in contents of https://api.swaggerhub.com/domains/MyOrg/MyDomain/1.0.0"}}},"404":{"description":"The specified API or version was not found. If it is private, make sure the request is authenticated and the authenticating user has access to this API."}},"security":[{"TokenSecured":[]},{}]}},"/apis/{owner}/{api}/{version}/comments":{"get":{"tags":["APIs"],"summary":"Get comments for the specified API version","operationId":"getApiCommentsV2","parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"}],"responses":{"200":{"description":"Comments for the specified API","schema":{"type":"array","items":{"$ref":"#/definitions/ClosableComment"}}},"204":{"description":"No comments were found for the specified API"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/CommentForbidden"},"404":{"$ref":"#/responses/ApiNotFound"}},"security":[{"TokenSecured":[]}]},"post":{"tags":["APIs"],"summary":"Add a new comment","operationId":"addApiCommentV2","parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/NewComment"}}],"responses":{"201":{"description":"Newly created comment for the specified API","schema":{"$ref":"#/definitions/ClosableComment"}},"400":{"$ref":"#/responses/BadRequest"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/CommentForbidden"},"404":{"$ref":"#/responses/ApiNotFound"}},"security":[{"TokenSecured":[]}]}},"/apis/{owner}/{api}/{version}/comments/batch":{"post":{"tags":["APIs"],"summary":"Bulk update comments","operationId":"updateApiCommentsV2","parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/CommentsBatch"}}],"responses":{"200":{"description":"Comments were updated"},"400":{"$ref":"#/responses/BadRequest"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/CommentForbidden"},"404":{"$ref":"#/responses/ApiCommentReplyNotFound"}},"security":[{"TokenSecured":[]}]}},"/apis/{owner}/{api}/{version}/comments/{comment}":{"patch":{"tags":["APIs"],"summary":"Update a comment","operationId":"updateApiCommentV2","parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/comment"},{"name":"body","in":"body","schema":{"$ref":"#/definitions/ClosableCommentPatch"}}],"responses":{"200":{"description":"Comment was updated","schema":{"$ref":"#/definitions/ClosableComment"}},"400":{"$ref":"#/responses/BadRequest"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/CommentForbidden"},"404":{"$ref":"#/responses/ApiCommentNotFound"}},"security":[{"TokenSecured":[]}]},"delete":{"tags":["APIs"],"summary":"Delete a comment","operationId":"deleteApiCommentV2","parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/comment"}],"responses":{"200":{"description":"Comment was deleted"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/CommentForbidden"},"404":{"$ref":"#/responses/ApiCommentNotFound"}},"security":[{"TokenSecured":[]}]}},"/apis/{owner}/{api}/{version}/comments/{comment}/status/{status}":{"put":{"tags":["APIs"],"summary":"Resolve or reopen a comment","operationId":"setApiCommentStatusV2","parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/comment"},{"$ref":"#/parameters/commentStatus"}],"responses":{"200":{"description":"Comment status was updated"},"400":{"$ref":"#/responses/BadRequest"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/CommentForbidden"},"404":{"$ref":"#/responses/ApiCommentNotFound"}},"security":[{"TokenSecured":[]}]}},"/apis/{owner}/{api}/{version}/comments/{comment}/replies":{"post":{"tags":["APIs"],"summary":"Reply to a comment","operationId":"addApiCommentReplyV2","parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/comment"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/NewReply"}}],"responses":{"201":{"description":"Newly created reply","schema":{"type":"array","items":{"$ref":"#/definitions/Comment"}}},"400":{"$ref":"#/responses/BadRequest"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/CommentForbidden"},"404":{"$ref":"#/responses/ApiCommentNotFound"}},"security":[{"TokenSecured":[]}]}},"/apis/{owner}/{api}/{version}/comments/{comment}/replies/{reply}":{"patch":{"tags":["APIs"],"summary":"Update a comment reply","operationId":"updateApiCommentReplyV2","parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/comment"},{"$ref":"#/parameters/reply"},{"name":"body","in":"body","schema":{"$ref":"#/definitions/CommentPatch"}}],"responses":{"200":{"description":"Сomment reply was updated","schema":{"$ref":"#/definitions/Comment"}},"400":{"$ref":"#/responses/BadRequest"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/CommentForbidden"},"404":{"$ref":"#/responses/ApiCommentReplyNotFound"}},"security":[{"TokenSecured":[]}]},"delete":{"tags":["APIs"],"summary":"Delete a comment reply","operationId":"deleteApiCommentReplyV2","parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/comment"},{"$ref":"#/parameters/reply"}],"responses":{"200":{"description":"Сomment reply was deleted"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/CommentForbidden"},"404":{"$ref":"#/responses/ApiCommentReplyNotFound"}},"security":[{"TokenSecured":[]}]}},"/apis/{owner}/{api}/settings/default":{"get":{"tags":["APIs"],"summary":"Get the default version of an API","description":"This operation returns the version identifier, such as `1.0.0`. To get the definition itself, use `GET /apis/{owner}/{api}/{version}`.","operationId":"getApiDefaultVersion","produces":["application/json"],"parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"}],"responses":{"200":{"description":"The default version identifier for this API","schema":{"$ref":"#/definitions/DefaultVersion"}},"404":{"description":"The specified API was not found. If it is private, make sure the request is authenticated and the authenticating user has access to this API."}},"security":[{"TokenSecured":[]},{}]},"put":{"tags":["APIs"],"summary":"Set the default API version","operationId":"setApiDefaultVersion","consumes":["application/json"],"parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"in":"body","name":"defaultVersion","description":"An object that specifies the default version for this API","required":true,"schema":{"$ref":"#/definitions/DefaultVersion"}}],"responses":{"200":{"description":"The default version was successfully changed"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"description":"Access denied (insufficient user permissions)"},"404":{"description":"The specified API or version was not found"}},"security":[{"TokenSecured":[]}]}},"/apis/{owner}/{api}/{version}/settings/lifecycle":{"get":{"tags":["APIs"],"summary":"Get the published status for the specified API and version","operationId":"getLifecycleSettings","parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"}],"responses":{"200":{"description":"The published status of this API version","schema":{"$ref":"#/definitions/LifecycleSettings"}},"401":{"$ref":"#/responses/Unauthorized"},"404":{"description":"The specified API or version was not found. If it is private, make sure the request is authenticated and the authenticating user has access to this API."}},"security":[{"TokenSecured":[]}]},"put":{"tags":["APIs"],"summary":"Publish or unpublish an API version","operationId":"setLifecycleSettings","consumes":["application/json"],"parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/lifecycleSettingsBody"},{"name":"force","in":"query","description":"To publish an API that references _unpublished_ domains, this parameter must be `true`. Otherwise, the request will be rejected with status code 424.","required":false,"type":"boolean","default":false}],"responses":{"200":{"description":"Successfully published or unpublished the API"},"400":{"description":"The API definition contains [standardization](https://support.smartbear.com/swaggerhub/docs/organizations/api-standardization.html) errors which prevent it from being published."},"401":{"$ref":"#/responses/Unauthorized"},"403":{"description":"Access denied (insufficient user permissions)"},"404":{"description":"The specified API or version was not found"},"424":{"description":"The API version you are trying to publish contains references to _unpublished_ domains. If those domains change, it may affect your API. To publish the API anyway, repeat the request with the `force=true` query parameter.\n\nThe response body contains a list of unpublished domains referenced from this API.","examples":{"application/json":{"code":424,"message":"Conflicts detected","details":{"offset":0,"total":2,"items":[{"groupId":"acme-org","apiId":"Common Models","versionId":"1.0.0","type":"DOMAIN","published":false,"private":false},{"groupId":"acme-org","apiId":"Common Responses","versionId":"1.0.2","type":"DOMAIN","published":false,"private":false}]}}}}},"security":[{"TokenSecured":[]}]}},"/apis/{owner}/{api}/{version}/settings/private":{"get":{"tags":["APIs"],"summary":"Get the visibility (public or private) of API version","operationId":"getPrivateSettings","parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"}],"responses":{"200":{"description":"The response body indicates whether this API version is private (`true`) or public (`false`)","schema":{"$ref":"#/definitions/VisibilitySettings"}},"401":{"$ref":"#/responses/Unauthorized"},"404":{"description":"The specified API or version was not found"}},"security":[{"TokenSecured":[]}]},"put":{"tags":["APIs"],"summary":"Set the visibility (public or private) of an API version","operationId":"setPrivateSettings","consumes":["application/json"],"parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/visibilitySettingsBody"}],"responses":{"200":{"description":"API visibility was updated"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"description":"Access denied (insufficient user permissions)"},"404":{"description":"The specified API or version was not found"}},"security":[{"TokenSecured":[]}]}},"/apis/{owner}/{api}/{version}/standardization":{"parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/apiName"},{"$ref":"#/parameters/version"}],"get":{"tags":["APIs"],"summary":"Retrieve the standardization errors for a given API definition","operationId":"getStandardizationErrors","responses":{"200":{"description":"Returns a list of standardization errors for the given API definition\n","schema":{"$ref":"#/definitions/StandardizationResult"}},"400":{"$ref":"#/definitions/BadRequest"},"404":{"$ref":"#/definitions/ApiNotFound"}},"security":[{"TokenSecured":[]}]}},"/templates/{owner}/{templateId}":{"get":{"tags":["Templates"],"summary":"Retrieve an APIs.json listing for all template versions for an owner and template","operationId":"getTemplateVersions","parameters":[{"$ref":"#/parameters/owner"},{"$ref":"#/parameters/templateId"}],"responses":{"200":{"description":"A list of template versions in APIs.json format","schema":{"$ref":"#/definitions/ApisJson"}},"404":{"description":"Template not found"}},"security":[{"TokenSecured":[]},{}]},"post":{"tags":["Templates"],"summary":"Create or update a template","description":"Saves the provided template definition; the owner must match the token owner. The version will be extracted from the template definitions itself.","operationId":"saveTemplateDefinition","consumes":["application/json","application/yaml"],"parameters":[{"$ref":"#/parameters/owner"},{"$ref":"#/parameters/templateId"},{"$ref":"#/parameters/isPrivate"},{"name":"version","in":"query","description":"Template version to create or update. If omitted, the version will be taken from the `info.version` field in the definition.","type":"string"},{"$ref":"#/parameters/force"},{"$ref":"#/parameters/projectName"},{"name":"body","in":"body","required":true,"schema":{"type":"string"},"description":"The template definition"}],"responses":{"200":{"description":"Template successfully saved"},"201":{"description":"New template successfully saved"},"205":{"description":"Template successfully saved, and should be reloaded"},"400":{"description":"Template definition invalid"},"403":{"description":"Access denied"},"409":{"description":"Cannot overwrite a template version"},"415":{"description":"Invalid content type"}},"security":[{"TokenSecured":[]}]},"delete":{"tags":["Templates"],"summary":"Delete a template","operationId":"deleteTemplate","parameters":[{"$ref":"#/parameters/owner"},{"$ref":"#/parameters/templateId"}],"responses":{"204":{"description":"Template successfully deleted"},"403":{"description":"Access denied"},"409":{"description":"Template has published versions, and cannot be deleted"}},"security":[{"TokenSecured":[]}]}},"/templates/{owner}/{templateId}/{version}":{"get":{"tags":["Templates"],"summary":"Retrieve a template definition","operationId":"getTemplateDefinition","parameters":[{"$ref":"#/parameters/owner"},{"$ref":"#/parameters/templateId"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/flatten"}],"responses":{"200":{"description":"The template in requested format (YAML or JSON)","schema":{"type":"object"}},"404":{"description":"Template not found"}},"security":[{"TokenSecured":[]}]},"delete":{"tags":["Templates"],"summary":"Delete a particular version of a template","operationId":"deleteTemplateVersion","parameters":[{"$ref":"#/parameters/owner"},{"$ref":"#/parameters/templateId"},{"$ref":"#/parameters/version"}],"responses":{"204":{"description":"Template version successfully deleted"},"403":{"description":"Access denied"},"409":{"description":"Selected template version is either published or the only version, and cannot be deleted"}},"security":[{"TokenSecured":[]}]}},"/templates":{"get":{"tags":["Templates"],"summary":"Retrieve a list of templates for an owner","operationId":"getTemplates","parameters":[{"in":"query","name":"owner","description":"Owner name","required":false,"type":"string"}],"responses":{"200":{"description":"Template wrapper","schema":{"$ref":"#/definitions/TemplateWrapper"}}},"security":[{"TokenSecured":[]}]}},"/templates/{owner}/{templateId}/{version}/settings/private":{"get":{"tags":["Templates"],"summary":"Retrieve visibility settings for a template","operationId":"getTemplatePrivateSettings","parameters":[{"$ref":"#/parameters/owner"},{"$ref":"#/parameters/templateId"},{"$ref":"#/parameters/version"}],"responses":{"200":{"description":"Visibility settings for the template","schema":{"$ref":"#/definitions/VisibilitySettings"}},"404":{"description":"Template not found"}},"security":[{"TokenSecured":[]}]},"put":{"tags":["Templates"],"summary":"Update visibility settings for a template","operationId":"setTemplatePrivateSettings","parameters":[{"$ref":"#/parameters/owner"},{"$ref":"#/parameters/templateId"},{"$ref":"#/parameters/version"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/VisibilitySettings"},"description":"Private settings"}],"responses":{"200":{"description":"Visibility setting updated"},"400":{"description":"Request body invalid"},"403":{"description":"Access denied"},"404":{"description":"Template not found"}}}},"/templates/{owner}/{templateId}/{version}/fork":{"post":{"tags":["Templates"],"summary":"Create a fork for a template","operationId":"forkTemplate","parameters":[{"$ref":"#/parameters/owner"},{"$ref":"#/parameters/templateId"},{"$ref":"#/parameters/version"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/ForkVersion"},"description":"Fork version information"}],"responses":{"201":{"description":"Template fork successfully created"},"400":{"description":"Request body invalid"},"403":{"description":"Access denied"},"409":{"description":"Conflict with existing template"}},"security":[{"TokenSecured":[]}]}},"/templates/{owner}/{templateId}/{version}/settings/lifecycle":{"get":{"tags":["Templates"],"summary":"Retrieve lifecycle settings for a template","operationId":"getTemplateLifecycleSettings","parameters":[{"$ref":"#/parameters/owner"},{"$ref":"#/parameters/templateId"},{"$ref":"#/parameters/version"}],"responses":{"200":{"description":"Lifecycle settings for the specified template","schema":{"$ref":"#/definitions/LifecycleSettings"}},"404":{"description":"Template not found"}},"security":[{"TokenSecured":[]}]},"put":{"tags":["Templates"],"summary":"Update lifecycle settings for a template","operationId":"setTemplateLifecycleSettings","parameters":[{"$ref":"#/parameters/owner"},{"$ref":"#/parameters/templateId"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/force"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/LifecycleSettings"},"description":"Fork version information"}],"responses":{"200":{"description":"Lifecycle settings successfully stored"},"400":{"description":"Request body invalid"},"403":{"description":"Access denied"},"404":{"description":"Template not found"}},"security":[{"TokenSecured":[]}]}},"/templates/{owner}/{templateId}/rename":{"post":{"tags":["Templates"],"summary":"Rename a template","operationId":"renameTemplate","parameters":[{"$ref":"#/parameters/owner"},{"$ref":"#/parameters/templateId"},{"$ref":"#/parameters/newName"}],"responses":{"200":{"description":"Template successfully renamed"},"400":{"description":"Invalid request"},"403":{"description":"Access denied"},"409":{"description":"API, domain, and template with the new name already exist"}},"security":[{"TokenSecured":[]}]}},"/templates/{owner}/{templateId}/{version}/comments":{"get":{"tags":["Templates"],"summary":"Return the list of comments for a template","operationId":"getTemplateComments","parameters":[{"$ref":"#/parameters/owner"},{"$ref":"#/parameters/templateId"},{"$ref":"#/parameters/version"}],"responses":{"200":{"description":"Comments for the template","schema":{"type":"array","items":{"$ref":"#/definitions/ClosableComment"}}},"204":{"description":"No comments found for the template"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/CommentForbidden"},"404":{"$ref":"#/responses/TemplateNotFound"}},"security":[{"TokenSecured":[]}]}},"/templates/{owner}/{templateId}/{version}/comments/batch":{"post":{"tags":["Templates"],"summary":"Update the list of comments for a template","operationId":"updateTemplateComments","parameters":[{"$ref":"#/parameters/owner"},{"$ref":"#/parameters/templateId"},{"$ref":"#/parameters/version"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/CommentsBatch"}}],"responses":{"200":{"description":"Comments successfully updated"},"400":{"$ref":"#/responses/BadRequest"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/CommentForbidden"},"404":{"$ref":"#/responses/TemplateCommentReplyNotFound"}},"security":[{"TokenSecured":[]}]}},"/projects/{owner}":{"parameters":[{"$ref":"#/parameters/projectOwner"}],"get":{"tags":["Projects"],"summary":"Get all projects of an organization","operationId":"getOrgProjectsV2","produces":["application/json"],"parameters":[{"$ref":"#/parameters/nameOnly"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/limit"},{"$ref":"#/parameters/order"}],"responses":{"200":{"description":"Project belonging to the specified organization","schema":{"$ref":"#/definitions/ProjectsJson"}},"403":{"description":"Projects are not available in the organization's plan"},"404":{"description":"The specified organization was not found"}},"security":[{"TokenSecured":[]}]},"post":{"tags":["Projects"],"summary":"Create a project in an organization","operationId":"createProject","parameters":[{"$ref":"#/parameters/projectRequest"}],"responses":{"201":{"description":"The project has been created successfully"},"400":{"description":"Bad request. For example, some of the specified `apis` or `domains` do not exist in the organization.\n","examples":{"application/json":{"error":"Unable to create project. Some api or domain entries are invalid."}}},"401":{"$ref":"#/responses/Unauthorized"},"403":{"description":"Projects are not available in the organization's plan"},"404":{"description":"The specified organization was not found"},"409":{"description":"A project with this name already exists in the organization"}},"security":[{"TokenSecured":[]}]}},"/projects/{owner}/{projectId}":{"parameters":[{"$ref":"#/parameters/projectOwner"},{"$ref":"#/parameters/projectId"}],"get":{"tags":["Projects"],"summary":"Get project information","operationId":"getProjectV2","produces":["application/json"],"responses":{"200":{"description":"Project information","schema":{"$ref":"#/definitions/Project"}},"401":{"$ref":"#/responses/Unauthorized"},"403":{"description":"Projects are not available in the organization's plan, or you are not a member of the specified project\n"},"404":{"description":"The specified organization or project name was not found"}},"security":[{"TokenSecured":[]}]},"put":{"tags":["Projects"],"summary":"Update a project","description":"Use this operation to update an existing project, for example, add or remove APIs, or change the project description.\n\nWhen updating a project, the `apis` and `domains` lists _replace_ the existing ones. This means that to add new APIs and domains to a project, you need to send the `apis` and `domains` lists containing both the existing and new APIs and domains.\n\nTo add a single API or domain to a project, you can use `PUT /projects/{owner}/{projectId}/{specType}/{name}` instead.","operationId":"saveProjectV2","parameters":[{"$ref":"#/parameters/projectRequest"}],"responses":{"200":{"description":"The project has been updated successfully"},"400":{"description":"Bad request. For example, some of the specified `apis` or `domains` do not exist in the organization to which the project belongs.\n","examples":{"application/json":{"error":"Unable to save the project. Some API or domain names are invalid."}}},"401":{"$ref":"#/responses/Unauthorized"},"403":{"description":"Projects are not available in the organization's plan, or you are not a member of the specified project\n"},"404":{"description":"The specified organization or project name was not found"}},"security":[{"TokenSecured":[]}]},"delete":{"tags":["Projects"],"summary":"Delete a project","operationId":"deleteProjectV2","responses":{"204":{"description":"The project has been deleted successfully"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"description":"Projects are not available in the organization's plan, or you are not a member of the specified project."},"404":{"description":"The specified organization or project name was not found"}},"security":[{"TokenSecured":[]}]}},"/projects/{owner}/{projectId}/{specType}/{name}":{"put":{"tags":["Projects"],"summary":"Add an API or domain to a project","description":"Use this operation to add a single API or domain to the specified project.\n\nTo add multiple APIs or domains at once, use `PUT /projects/{owner}/{projectId}`.","operationId":"addSpecToProjectV2","parameters":[{"$ref":"#/parameters/projectOwner"},{"$ref":"#/parameters/projectId"},{"in":"path","name":"specType","description":"Definition type - `apis` or `domains`.","required":true,"type":"string","enum":["apis","domains"]},{"in":"path","name":"name","description":"The name of an API or domain that you want to add to the project. Case-sensitive.","required":true,"type":"string"}],"responses":{"200":{"description":"The specified API or domain was successfully added to the project"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"description":"The projects feature is not available for the organization's plan, or the authenticating user does not have permissions to add definitions to this project\n"},"404":{"description":"The specified organization or project name was not found"},"409":{"description":"The project already contains this API or domain"}},"security":[{"TokenSecured":[]}]}},"/apis/{owner}/{api}/{version}/integrations":{"get":{"tags":["Integrations"],"summary":"Get all integrations configured for the specified API version","description":"The returned information includes integration types, names, unique IDs, and enabled/disabled status.\n\n**Note:** The following integration types are currently not returned: Amazon API Gateway Lambda Sync, Apigee Edge, Azure API Management.","operationId":"getIntegrations","parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"}],"responses":{"200":{"description":"An object that contains information about the configured integrations","schema":{"$ref":"#/definitions/IntegrationConfigurations"}},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/IntegrationForbidden"},"404":{"description":"The specified API or version was not found"}},"security":[{"TokenSecured":[]}]},"post":{"tags":["Integrations"],"summary":"Create an integration for the specified API and version","description":"Use this operation to configure an integration for a specific API version. The integration type is determined by which object is provided in the request body (specifically, by the `configType` value).\n\nFor a list of fields that need to be provided in the request body, see the descriptions of the following objects in the \"Models\" section at the bottom of API docs:\n\n * `AmazonApiGatewayIntegration`\n * `AmazonApiGatewayLambdaIntegration`\n * `ApigeeEdgeIntegration`\n * `AutoMockingIntegration`\n * `AzureApiManagementIntegration`\n * `AzureDevopsServicesIntegration`\n * `BitbucketCloudIntegration`\n * `BitbucketServerIntegration`\n * `GitHubIntegration`\n * `GitHubEnterpriseIntegration`\n * `GitLabIntegration`\n * `WebhookIntegration`\n\n**Notes:**\n  * The integration `name` must be unique among all integrations configured for the given API version.\n  * If `target` is the YAMl/JSON definition, you must specify the `outputFile`.\n  * If `syncMethod`=_Advanced Sync_, you must specify a non-empty list of either `providedPaths` or `managedPaths` (or both). If you are not sure which paths to use, use `providedPaths`=`[\"*\"]`.\n  * The operation does not validate the repository details and access tokens.","operationId":"createIntegration","consumes":["application/json"],"produces":["application/json"],"parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/integrationTypeConfiguration"}],"responses":{"201":{"description":"The integration was successfully created. The response contains the auto-generated ID of the created integration and its confguration (excluding the access tokens and passwords).","schema":{"$ref":"#/definitions/IntegrationConfiguration"},"examples":{"application/json":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","configType":"GITHUB","name":"Java client SDK","owner":"myOrg","repository":"petstore","branch":"develop","target":"java","syncMethod":"Advanced Sync","outputFolder":"sdk/java","providedPaths":["*"],"managedPaths":[],"ignoredPaths":[],"enabled":true}}},"400":{"description":"The integration configuration was invalid"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"description":"The authenticating user does not have permissions to create integrations in this API"},"404":{"description":"The specified owner, API, or version was not found"},"409":{"description":"An integration with this name already exists in this API"},"415":{"description":"Invalid content type"}},"security":[{"TokenSecured":[]}]}},"/apis/{owner}/{api}/{version}/integrations/{integrationId}":{"get":{"tags":["Integrations"],"summary":"Get integration settings","description":"Returns the configuration of the specified integration. Access tokens and passwords are not returned for security reasons.","operationId":"getIntegrationById","consumes":["application/json"],"parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/integrationId"}],"responses":{"200":{"description":"Can be one of the following objects: `AmazonApiGatewayIntegration`, `AmazonApiGatewayLambdaIntegration`, `ApigeeEdgeIntegration`, `AutoMockingIntegration`, `AzureApiManagementIntegration`, `AzureDevopsServicesIntegration`, `BitbucketCloudIntegration`, `BitbucketServerIntegration`, `GitHubIntegration`, `GitHubEnterpriseIntegration`, `GitLabIntegration`, `WebhookIntegration`\n","schema":{"$ref":"#/definitions/IntegrationConfiguration"},"examples":{"application/json":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","configType":"GITHUB","name":"Java client SDK","owner":"myOrg","repository":"petstore","branch":"develop","target":"java","syncMethod":"Advanced Sync","outputFolder":"sdk/java","providedPaths":["*"],"managedPaths":[],"ignoredPaths":[],"enabled":true}}},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/IntegrationForbidden"},"404":{"description":"The specified owner, API, version, or integration ID was not found"}},"security":[{"TokenSecured":[]}]},"put":{"tags":["Integrations"],"summary":"Update integration settings","description":"Updates integration settings for the specified API and integration ID. The integration type is determined by which object is passed in the request body.\n\nThe request body must contain a **full representation** of an integration object. If you want to update just a few parameters, use the PATCH operation instead.\n\nFor a list of fields that need to be provided in the request body, see the descriptions of the following objects in the \"Models\" section at the bottom of API docs:\n\n * `AmazonApiGatewayIntegration`\n * `AmazonApiGatewayLambdaIntegration`\n * `ApigeeEdgeIntegration`\n * `AutoMockingIntegration`\n * `AzureApiManagementIntegration`\n * `AzureDevopsServicesIntegration`\n * `BitbucketCloudIntegration`\n * `BitbucketServerIntegration`\n * `GitHubIntegration`\n * `GitHubEnterpriseIntegration`\n * `GitLabIntegration`\n * `WebhookIntegration`\n\n**Notes:**\n  * The integration `name` must be unique among all integrations configured for the given API version.\n  * If `target` is the YAMl/JSON definition, you must specify the `outputFile`.\n  * If `syncMethod`=_Advanced Sync_, you must specify a non-empty list of either `providedPaths` or `managedPaths` (or both). If you are not sure which paths to use, use `providedPaths`=`[\"*\"]`.\n  * The operation does not validate the repository details and access tokens.","operationId":"updateIntegration","consumes":["application/json"],"parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/integrationId"},{"$ref":"#/parameters/integrationTypeConfiguration"}],"responses":{"200":{"description":"Integration was successfully updated"},"400":{"description":"The specified integration configuration is invalid"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/IntegrationForbidden"},"404":{"description":"The specified combination of owner, API, version, integrationId, and configType was not found"},"415":{"description":"Invalid content type"}},"security":[{"TokenSecured":[]}]},"patch":{"tags":["Integrations"],"summary":"Partially update integration settings","description":"Use this operation to partially update integration settings for the specified API and integration ID. For example, enable or disable an integration, or specify a new access token.\n\nOnly the fields provided in the request body will be updated; other settings will remain unchanged. For a list of fields that can be updated, see the following objects in the \"Models\" section at the bottom of API docs:\n\n * `AmazonApiGatewayIntegration`\n * `AmazonApiGatewayLambdaIntegration`\n * `ApigeeEdgeIntegration`\n * `AutoMockingIntegration`\n * `AzureApiManagementIntegration`\n * `AzureDevopsServicesIntegration`\n * `BitbucketCloudIntegration`\n * `BitbucketServerIntegration`\n * `GitHubIntegration`\n * `GitHubEnterpriseIntegration`\n * `GitLabIntegration`\n * `WebhookIntegration`\n\n**Notes:**\n  * `configType` (integration type) cannot be changed.\n  * If updating the integration `name`, make sure the new name is unique among all integrations configured for the given API version.\n  * If you change `target` to the YAMl/JSON definition, you must also specify the `outputFile`.\n  * If you change `syncMethod` to _Advanced Sync_, you must also specify a non-empty list of either `providedPaths` or `managedPaths` (or both). If you are not sure which paths to use, use `providedPaths`=`[\"*\"]`.\n  * The update operation does not validate the repository details and access tokens.","operationId":"patchIntegration","consumes":["application/json"],"parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/integrationId"},{"in":"body","name":"integrationTypeConfiguration","required":true,"description":"An object that contains the integration parameters you want to update","schema":{"type":"object","example":{"name":"GitHub integration","token":"abcd12345","owner":"myOrg","repository":"petstore","branch":"develop","target":"java","syncMethod":"Advanced Sync","outputFolder":"sdk/java","providedPaths":["*"],"managedPaths":[],"ignoredPaths":[],"enabled":true}}}],"responses":{"200":{"description":"Integration was successfully updated"},"400":{"description":"The specified integration configuration is invalid"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/IntegrationForbidden"},"404":{"description":"The specified owner, API, version, or integration ID was not found"},"415":{"description":"Invalid content type"}},"security":[{"TokenSecured":[]}]},"delete":{"tags":["Integrations"],"summary":"Delete an integration","description":"Delete an existing integration specified by its ID.","operationId":"deleteIntegration","parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/integrationId"}],"responses":{"204":{"description":"The integration was successfully deleted"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"description":"The authenticating user does not have permissions to delete integrations from this API"},"404":{"description":"The specified owner, API, version, or integration ID was not found"}},"security":[{"TokenSecured":[]}]}},"/apis/{owner}/{api}/{version}/integrations/{integrationId}/execute":{"post":{"tags":["Integrations"],"summary":"Run an integration","description":"Use this operation to trigger an existing integration.\n\nSource control integrations push to (not pull from) the configured repository and branch. You can optionally provide a custom commit message.\n\n**Note:** Webhooks cannot be triggered by this operation, they are only triggered when an API is saved or published. An attempt to trigger a webhook will return status code 400.","operationId":"executeIntegration","parameters":[{"$ref":"#/parameters/apiOwner"},{"$ref":"#/parameters/api"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/integrationId"},{"$ref":"#/parameters/commitMessage"}],"responses":{"200":{"description":"The integration was executed successfully"},"205":{"description":"The integration was executed successfully and the API has been updated"},"400":{"description":"The integration encountered an error while executing. Check that the integration settings (such as access tokens) are valid."},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/IntegrationForbidden"},"404":{"description":"The specified API or integration ID was not found"},"409":{"description":"The specified integration is disabled"}},"security":[{"TokenSecured":[]}]}},"/domains":{"get":{"tags":["Domains"],"summary":"Search domains","description":"This is a convenience alias for `GET /specs?specType=DOMAIN`.","operationId":"searchDomains","parameters":[{"$ref":"#/parameters/query"},{"$ref":"#/parameters/state"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/limit"},{"$ref":"#/parameters/sort"},{"$ref":"#/parameters/order"}],"responses":{"303":{"description":"Redirect to `GET /specs`, with all query parameters preserved","headers":{"Location":{"type":"string"}}}},"security":[{"TokenSecured":[]},{}]}},"/domains/{owner}":{"get":{"tags":["Domains"],"summary":"Get a list of domains of the specified owner","operationId":"getOwnerDomains","parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/page"},{"$ref":"#/parameters/limit"},{"$ref":"#/parameters/sort"},{"$ref":"#/parameters/order"}],"responses":{"200":{"description":"A list of domains in APIs.json format","schema":{"$ref":"#/definitions/ApisJson"}}},"security":[{"TokenSecured":[]},{}]}},"/domains/{owner}/{domain}":{"get":{"tags":["Domains"],"summary":"Get a list of domain versions","operationId":"getDomainVersions","parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"}],"responses":{"200":{"description":"A list of domain versions in APIs.json format","schema":{"$ref":"#/definitions/ApisJson"}},"404":{"description":"The specified domain was not found. If it is private, make sure the request is authenticated and the authenticating user has access to this API."}},"security":[{"TokenSecured":[]},{}]},"post":{"tags":["Domains"],"summary":"Create or update a domain","operationId":"saveDomainDefinition","consumes":["application/json","application/yaml"],"parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"name":"isPrivate","in":"query","description":"Specifies whether the domain has to be private","required":false,"type":"boolean","default":false},{"name":"version","in":"query","description":"Domain version. If omitted, will be taken from the `info.version` field in the definition.","type":"string"},{"in":"body","name":"definition","description":"OpenAPI definition of this domain","required":false,"schema":{"type":"string"}},{"name":"force","in":"query","description":"Force update","required":false,"type":"boolean"}],"responses":{"200":{"description":"The domain was successfully saved"},"201":{"description":"New domain was successfully saved"},"205":{"description":"The domain was successfully saved and should be reloaded"},"400":{"description":"Possible reasons:\n\n * Some parameter values are invalid, or the provided OpenAPI domain definition is invalid.\n * The specified `projectName` does not exist in the `owner` organization.\n * Cannot create a new domain because an API with this name already exists in the `owner` account. Try a different name."},"403":{"description":"Maximum number of domains reached"},"409":{"description":"Cannot overwrite a published domain version"},"415":{"description":"Invalid content type"}},"security":[{"TokenSecured":[]}]},"delete":{"tags":["Domains"],"summary":"Delete a domain","operationId":"deleteDomain","parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"name":"force","in":"query","description":"If this domain is referenced from other APIs and domains, this parameter must be `true`. Otherwise, the request will be rejected with status code 424.","required":false,"type":"boolean","default":false}],"responses":{"200":{"description":"The domain was successfully deleted"},"403":{"description":"Access denied"},"404":{"description":"The specified domain not found"},"409":{"description":"The domain has published versions and can not be deleted"},"424":{"description":"The domain you are trying to delete is referenced from other APIs and domains. To delete it anyway, repeat the request with the `force=true` query parameter.\n\nThe response body contains a list of APIs and domains that reference this domain.","examples":{"application/json":{"code":424,"message":"Conflicts detected","details":{"offset":0,"total":2,"items":[{"groupId":"acme-org","apiId":"reports","versionId":"1.0.0","type":"API","private":false},{"groupId":"acme-org","apiId":"common-responses","versionId":"1.0.2","type":"DOMAIN","private":false}]}}}}},"security":[{"TokenSecured":[]}]}},"/domains/{owner}/{domain}/rename":{"post":{"tags":["Domains"],"summary":"Rename a domain","description":"The new name must follow the [naming rules](https://support.smartbear.com/swaggerhub/docs/apis/creating-api.html).","operationId":"renameDomain","parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"$ref":"#/parameters/newName"},{"name":"force","in":"query","description":"If this domain is referenced from other APIs and domains, this parameter must be true. Otherwise, the request will be rejected with status code 424.","required":false,"type":"boolean","default":false}],"responses":{"200":{"description":"The domain was successfully renamed"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"description":"Access denied (insufficient user permissions)"},"409":{"description":"An API or domain with the new name already exists, or the new and old names are the same"},"424":{"description":"The domain you are trying to rename is referenced from other APIs or domains. Renaming the domain will break the references in those definitions. To rename the domain anyway, repeat the request with the `force=true` query parameter.\n\nThe response body contains a list of APIs and domains that reference this domain.","schema":{"type":"object"},"examples":{"application/json":{"code":424,"message":"Conflicts detected","details":{"offset":0,"total":2,"items":[{"groupId":"acme-org","apiId":"reports","versionId":"1.0.0","type":"API","private":false},{"groupId":"acme-org","apiId":"common-responses","versionId":"1.0.2","type":"DOMAIN","private":false}]}}}}},"security":[{"TokenSecured":[]}]}},"/domains/{owner}/{domain}/{version}":{"get":{"tags":["Domains"],"summary":"Get the OpenAPI definition of the specified domain version","operationId":"getDomainDefinition","produces":["application/json","application/yaml"],"parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"$ref":"#/parameters/version"}],"responses":{"200":{"description":"OpenAPI definition of a domain in the requested format (YAML or JSON)","schema":{"type":"object"}},"404":{"description":"The specified domain or version was not found. If it is private, make sure the request is authenticated and the authenticating user has access to this API."}},"security":[{"TokenSecured":[]},{}]},"delete":{"tags":["Domains"],"summary":"Delete a domain version","operationId":"deleteDomainVersion","parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"$ref":"#/parameters/version"},{"name":"force","in":"query","description":"If this domain version is referenced from other APIs and domains, this parameter must be `true`. Otherwise, the request will be rejected with status code 424.","required":false,"type":"boolean","default":false}],"responses":{"200":{"description":"The domain version was successfully deleted"},"403":{"description":"Access denied"},"404":{"description":"The specified domain or version was not found"},"409":{"description":"The domain version is published and can not be deleted or it is the only version of this domain"},"424":{"description":"The domain version you are trying to delete is referenced from other APIs and domains. To delete it anyway, repeat the request with the `force=true` query parameter.\n\nThe response body contains a list of APIs and domains that reference this domain version.","examples":{"application/json":{"code":424,"message":"Conflicts detected","details":{"offset":0,"total":2,"items":[{"groupId":"acme-org","apiId":"reports","versionId":"1.0.0","type":"API","private":false},{"groupId":"acme-org","apiId":"common-responses","versionId":"1.0.2","type":"DOMAIN","private":false}]}}}}},"security":[{"TokenSecured":[]}]}},"/domains/{owner}/{domain}/{version}/fork":{"post":{"tags":["Domains"],"summary":"Fork a domain","description":"Creates a [fork](https://support.smartbear.com/swaggerhub/docs/apis/forking-api.html) of the specified domain definition and version. The fork can be created as a new domain, or as a new version in another existing domain.","operationId":"forkDomain","parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"$ref":"#/parameters/version"},{"in":"body","name":"forkVersion","description":"Fork parameters","required":true,"schema":{"$ref":"#/definitions/ForkVersion"}}],"responses":{"201":{"description":"The domain was successfully forked"},"400":{"description":"Some parameters are missing or invalid"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"description":"Access denied"},"404":{"description":"The specified owner or domain was not found"},"409":{"description":"A domain with the name and version you're trying to create already exists"}},"security":[{"TokenSecured":[]}]}},"/domains/{owner}/{domain}/{version}/clone":{"post":{"tags":["Domains"],"summary":"Create a new domain version","description":"Use this operation to clone an existing domain version as a new version.\n\nNote that the new version is not automatically set as the default version.","operationId":"cloneDomain","parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"$ref":"#/parameters/versionToClone"},{"$ref":"#/parameters/newVersion"}],"responses":{"201":{"description":"New domain version was successfully created"},"400":{"description":"Bad request"},"403":{"description":"Access denied"},"404":{"description":"The specified domain or version was not found"},"409":{"description":"The domain version you are trying to create already exists"}},"security":[{"TokenSecured":[]}]}},"/domains/{owner}/{domain}/{version}/domain.json":{"get":{"tags":["Domains"],"summary":"Get the OpenAPI definition for the specified domain version in JSON format","operationId":"getDomainJsonDefinition","parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"$ref":"#/parameters/version"}],"responses":{"200":{"description":"Domain definition in JSON format","schema":{"type":"object"}},"404":{"description":"The specified domain or version was not found. If it is private, make sure the request is authenticated and the authenticating user has access to this API."}},"security":[{"TokenSecured":[]},{}]}},"/domains/{owner}/{domain}/{version}/domain.yaml":{"get":{"tags":["Domains"],"summary":"Get the OpenAPI definition for the specified domain version in YAML format","operationId":"getDomainYamlDefinition","produces":["application/yaml"],"parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"$ref":"#/parameters/version"}],"responses":{"200":{"description":"Domain definition in YAML format","schema":{"type":"object"}},"404":{"description":"The specified domain or version was not found. If it is private, make sure the request is authenticated and the authenticating user has access to this API."}},"security":[{"TokenSecured":[]},{}]}},"/domains/{owner}/{domain}/{version}/comments":{"get":{"tags":["Domains"],"summary":"Get comments for the specified domain version","operationId":"getDomainCommentsV2","parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"$ref":"#/parameters/version"}],"responses":{"200":{"description":"Comments for the specified domain version","schema":{"type":"array","items":{"$ref":"#/definitions/ClosableComment"}}},"204":{"description":"No comments were found for the specified domain version"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/CommentForbidden"},"404":{"$ref":"#/responses/DomainNotFound"}},"security":[{"TokenSecured":[]}]},"post":{"tags":["Domains"],"summary":"Add a new comment","operationId":"addDomainCommentV2","parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"$ref":"#/parameters/version"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/NewComment"}}],"responses":{"200":{"description":"Newly created comment for the specified domain","schema":{"$ref":"#/definitions/ClosableComment"}},"400":{"$ref":"#/responses/BadRequest"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/CommentForbidden"},"404":{"$ref":"#/responses/DomainNotFound"}},"security":[{"TokenSecured":[]}]}},"/domains/{owner}/{domain}/{version}/comments/batch":{"post":{"tags":["Domains"],"summary":"Bulk update comments","operationId":"updateDomainCommentsV2","parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"$ref":"#/parameters/version"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/CommentsBatch"}}],"responses":{"200":{"description":"Comments were updated"},"400":{"$ref":"#/responses/BadRequest"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/CommentForbidden"},"404":{"$ref":"#/responses/DomainCommentReplyNotFound"}},"security":[{"TokenSecured":[]}]}},"/domains/{owner}/{domain}/{version}/comments/{comment}":{"patch":{"tags":["Domains"],"summary":"Update a comment","operationId":"updateDomainCommentV2","parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/comment"},{"name":"body","in":"body","schema":{"$ref":"#/definitions/ClosableCommentPatch"}}],"responses":{"200":{"description":"Comment was updated","schema":{"$ref":"#/definitions/ClosableComment"}},"400":{"$ref":"#/responses/BadRequest"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/CommentForbidden"},"404":{"$ref":"#/responses/DomainCommentNotFound"}},"security":[{"TokenSecured":[]}]},"delete":{"tags":["Domains"],"summary":"Delete a comment","operationId":"deleteDomainCommentV2","parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/comment"}],"responses":{"200":{"description":"Comment was deleted"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/CommentForbidden"},"404":{"$ref":"#/responses/DomainCommentNotFound"}},"security":[{"TokenSecured":[]}]}},"/domains/{owner}/{domain}/{version}/comments/{comment}/status/{status}":{"put":{"tags":["Domains"],"summary":"Resolve or reopen a comment","operationId":"setDomainCommentStatusV2","parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/comment"},{"$ref":"#/parameters/commentStatus"}],"responses":{"200":{"description":"Comment status was updated"},"400":{"$ref":"#/responses/BadRequest"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/CommentForbidden"},"404":{"$ref":"#/responses/DomainCommentNotFound"}},"security":[{"TokenSecured":[]}]}},"/domains/{owner}/{domain}/{version}/comments/{comment}/replies":{"post":{"tags":["Domains"],"summary":"Reply to a comment","operationId":"addDomainCommentReplyV2","parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/comment"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/NewReply"}}],"responses":{"200":{"description":"Newly created reply","schema":{"type":"array","items":{"$ref":"#/definitions/Comment"}}},"400":{"$ref":"#/responses/BadRequest"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/CommentForbidden"},"404":{"$ref":"#/responses/DomainCommentNotFound"}},"security":[{"TokenSecured":[]}]}},"/domains/{owner}/{domain}/{version}/comments/{comment}/replies/{reply}":{"patch":{"tags":["Domains"],"summary":"Update a comment reply","operationId":"updateDomainCommentReplyV2","parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/comment"},{"$ref":"#/parameters/reply"},{"name":"body","in":"body","schema":{"$ref":"#/definitions/CommentPatch"}}],"responses":{"200":{"description":"Comment reply was updated","schema":{"$ref":"#/definitions/Comment"}},"400":{"$ref":"#/responses/BadRequest"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/CommentForbidden"},"404":{"$ref":"#/responses/DomainCommentReplyNotFound"}},"security":[{"TokenSecured":[]}]},"delete":{"tags":["Domains"],"summary":"Delete a comment reply","operationId":"deleteDomainCommentReplyV2","parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/comment"},{"$ref":"#/parameters/reply"}],"responses":{"200":{"description":"Comment reply was deleted"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"$ref":"#/responses/CommentForbidden"},"404":{"$ref":"#/responses/DomainCommentReplyNotFound"}},"security":[{"TokenSecured":[]}]}},"/domains/{owner}/{domain}/settings/default":{"get":{"tags":["Domains"],"summary":"Get the default version of a domain","description":"This operation returns the version identifier, such as `1.0.0`. To get the definition itself, use `GET /domains/{owner}/{domain}/{version}`.","operationId":"getDomainDefaultVersion","produces":["application/json"],"parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"}],"responses":{"200":{"description":"The default version identifier for this domain","schema":{"$ref":"#/definitions/DefaultVersion"}},"404":{"description":"The specified API was not found. If it is private, make sure the request is authenticated."}},"security":[{"TokenSecured":[]},{}]},"put":{"tags":["Domains"],"summary":"Set the default version for a domain","operationId":"setDomainDefaultVersion","consumes":["application/json"],"parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"in":"body","name":"defaultVersion","description":"An object that specifies the default version for this domain","required":true,"schema":{"$ref":"#/definitions/DefaultVersion"}}],"responses":{"200":{"description":"The default version was successfully changed"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"description":"Access denied (insufficient user permissions)"},"404":{"description":"The specified domain or version was not found"}},"security":[{"TokenSecured":[]}]}},"/domains/{owner}/{domain}/{version}/settings/lifecycle":{"get":{"tags":["Domains"],"summary":"Get the published status for the specified domain and version","operationId":"getDomainLifecycleSettings","parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"$ref":"#/parameters/version"}],"responses":{"200":{"description":"The published status of this domain version","schema":{"$ref":"#/definitions/LifecycleSettings"}},"401":{"$ref":"#/responses/Unauthorized"},"404":{"description":"The specified domain or version was not found"}},"security":[{"TokenSecured":[]}]},"put":{"tags":["Domains"],"summary":"Publish or unpublish a domain version","operationId":"setDomainLifecycleSettings","consumes":["application/json"],"parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/lifecycleSettingsBody"},{"name":"force","in":"query","description":"To publish a domain that references other _unpublished_ domains, this parameter must be `true`. Otherwise, the request will be rejected with status code 424.","required":false,"type":"boolean","default":false}],"responses":{"200":{"description":"Successfully published or unpublished the domain"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"description":"Access denied (insufficient user permissions)"},"404":{"description":"The specified domain or version was not found"},"424":{"description":"The domain version you are trying to publish contains references to other _unpublished_ domains. If those domains change, it may affect your domain. To publish the domain anyway, repeat the request with the `force=true` query parameter.\n\nThe response body contains a list of unpublished domains referenced from this domain.","examples":{"application/json":{"code":424,"message":"Conflicts detected","details":{"offset":0,"total":2,"items":[{"groupId":"acme-org","apiId":"Common Models","versionId":"1.0.0","type":"DOMAIN","published":false,"private":false},{"groupId":"acme-org","apiId":"Common Responses","versionId":"1.0.2","type":"DOMAIN","published":false,"private":false}]}}}}},"security":[{"TokenSecured":[]}]}},"/domains/{owner}/{domain}/{version}/settings/private":{"get":{"tags":["Domains"],"summary":"Get the visibility (public or private) of a domain version","operationId":"getDomainPrivateSettings","parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"$ref":"#/parameters/version"}],"responses":{"200":{"description":"The response body indicates whether this domain version is private (`true`) or public (`false`)","schema":{"$ref":"#/definitions/VisibilitySettings"}},"401":{"$ref":"#/responses/Unauthorized"},"404":{"description":"The specified domain or version was not found"}},"security":[{"TokenSecured":[]}]},"put":{"tags":["Domains"],"summary":"Set the visibility (public or private) of a domain version","operationId":"setDomainPrivateSettings","consumes":["application/json"],"parameters":[{"$ref":"#/parameters/domainOwner"},{"$ref":"#/parameters/domain"},{"$ref":"#/parameters/version"},{"$ref":"#/parameters/visibilitySettingsBody"},{"name":"force","in":"query","description":"To change the visibility from _public_ to _private_ in case this domain is referenced from other _public_ definitions, this parameter must be `true`. Otherwise, the request will be rejected with status code 424.","required":false,"type":"boolean","default":false}],"responses":{"200":{"description":"Domain visibility was updated"},"401":{"$ref":"#/responses/Unauthorized"},"403":{"description":"Access denied (insufficient user permissions)"},"404":{"description":"The specified domain or version was not found"},"424":{"description":"The domain version you are trying to make _private_ is referenced from other _public_ definitions. Changing domain visibility may affect those definitions. To proceed anyway, repeat the request with the `force=true` query parameter.\n\nThe response body contains a list of APIs and domains that may be affected by this change.","examples":{"application/json":{"code":424,"message":"Conflicts detected","details":{"offset":0,"total":2,"items":[{"groupId":"acme-org","apiId":"reports","versionId":"1.0.0","type":"API","private":false},{"groupId":"acme-org","apiId":"common-responses","versionId":"1.0.2","type":"DOMAIN","private":false}]}}}}},"security":[{"TokenSecured":[]}]}},"/standardization/spectral-rulesets/{owner}/{name}/zip":{"get":{"tags":["Standardization"],"summary":"Get Spectral ruleset bundle as ZIP","description":"Returns the ruleset bundle for the given org, name and version as a ZIP file.\n","operationId":"getRulesetZip","consumes":["application/zip"],"parameters":[{"$ref":"#/parameters/rulesetOwner"},{"$ref":"#/parameters/rulesetName"}],"responses":{"200":{"description":"Ruleset bundle retrieved successfully.","schema":{"type":"string","format":"binary"}},"400":{"$ref":"#/responses/BadRequest"},"403":{"description":"Access denied (insufficient user permissions)"},"404":{"$ref":"#/responses/OwnerNotFound"}},"security":[{"TokenSecured":[]}]},"put":{"tags":["Standardization"],"summary":"Create or update Spectral ruleset (ZIP)","description":"Create or update the ruleset using a zip of the files.\nRequires org owner permissions. Calling this on an existing ruleset will overwrite the files.\n","operationId":"saveRulesetZip","consumes":["application/zip"],"parameters":[{"$ref":"#/parameters/rulesetOwner"},{"$ref":"#/parameters/rulesetName"},{"in":"body","name":"body","description":"Spectral ruleset (ZIP)","required":true,"schema":{"type":"string","format":"binary"}}],"responses":{"200":{"description":"Ruleset bundle saved successfully.","schema":{"$ref":"#/definitions/SpectralRulesetId"}},"400":{"$ref":"#/responses/BadRequest"},"403":{"description":"Access denied (insufficient user permissions)"},"404":{"$ref":"#/responses/OwnerNotFound"}},"security":[{"TokenSecured":[]}]}}},"securityDefinitions":{"TokenSecured":{"type":"apiKey","name":"Authorization","in":"header","description":"Specify your SwaggerHub API key found in https://app.swaggerhub.com/settings/apiKey."}},"parameters":{"apiName":{"in":"path","name":"api","required":true,"type":"string"},"apiOwner":{"name":"owner","in":"path","description":"API owner (organization or user, case-sensitive)","required":true,"type":"string"},"domainOwner":{"name":"owner","in":"path","description":"Domain owner (organization or user, case-sensitive)","required":true,"type":"string"},"rulesetOwner":{"name":"owner","in":"path","description":"Ruleset owner (organization or user, case-sensitive)","required":true,"type":"string"},"api":{"name":"api","in":"path","description":"API name (case-sensitive)","required":true,"type":"string"},"templateId":{"name":"templateId","in":"path","description":"Template identifier","required":true,"type":"string"},"scope":{"name":"scope","in":"query","description":"Identifies requester","required":true,"type":"string","enum":["USER","ALL"],"default":"USER"},"specVersion":{"name":"version","in":"query","description":"Version of the spec","required":false,"type":"string"},"filterViewers":{"name":"filterViewers","in":"query","description":"Role as a criteria for filter list of notifiable users.","required":false,"type":"boolean"},"owner":{"name":"owner","in":"path","description":"API, domain, or template owner identifier (case-sensitive)","required":true,"type":"string"},"isPrivate":{"name":"isPrivate","in":"query","description":"Defines whether the API or template has to be private","required":false,"type":"boolean","default":false},"force":{"name":"force","in":"query","description":"Force update","required":false,"type":"boolean"},"template":{"name":"template","in":"query","description":"Source template ID","required":true,"type":"string"},"projectName":{"name":"projectName","in":"query","description":"The project to add the API, domain, or template to","required":false,"type":"string"},"domain":{"name":"domain","in":"path","description":"Domain name (case-sensitive)","required":true,"type":"string"},"version":{"name":"version","in":"path","description":"Version identifier","required":true,"type":"string"},"versionToClone":{"name":"version","in":"path","description":"The version to clone (case-sensitive)","required":true,"type":"string"},"query":{"name":"query","in":"query","description":"Free text query to match","required":false,"type":"string"},"state":{"name":"state","in":"query","description":"Matches against published state of the spec:\n* UNPUBLISHED - spec is a draft, a work in progress\n* PUBLISHED - spec is a stable version ready for consuming from client applications\n* ANY - either PUBLISHED or UNPUBLISHED\n","required":false,"type":"string","default":"ALL","enum":["ALL","PUBLISHED","UNPUBLISHED"]},"page":{"name":"page","in":"query","description":"Page to return","required":false,"type":"integer","default":0,"format":"int32"},"limit":{"name":"limit","in":"query","description":"Number of results per page (1 .. 100)","required":false,"type":"integer","default":10,"format":"int32","maximum":100},"sort":{"name":"sort","in":"query","description":"Sort criteria of result set:\n* NAME\n* UPDATED\n* CREATED\n* OWNER\n* BEST_MATCH - by relevance\n* TITLE - by `info.title`\n","required":false,"type":"string","default":"NAME","enum":["NAME","UPDATED","CREATED","OWNER","BEST_MATCH","TITLE"]},"order":{"name":"order","in":"query","description":"Sort order","required":false,"type":"string","default":"ASC","enum":["ASC","DESC"]},"resolved":{"name":"resolved","in":"query","type":"boolean","default":false,"description":"Set to true to get the resolved version of the API definition. The content of all external $refs will be included in the resulting file."},"flatten":{"name":"flatten","in":"query","description":"If set to `true`, it creates models from inline schemas in OpenAPI definition. AsyncAPI definitions cannot be flattened.","required":false,"type":"boolean","default":false},"lifecycleSettingsBody":{"in":"body","name":"settings","description":"An object that specifies the new `published` state: `true` means published, `false` - unpublished","required":true,"schema":{"$ref":"#/definitions/LifecycleSettings"}},"visibilitySettingsBody":{"in":"body","name":"settings","description":"An object that specifies the new visibility level: `true` means private, `false` - public","required":true,"schema":{"$ref":"#/definitions/VisibilitySettings"}},"comment":{"name":"comment","in":"path","description":"Comment identifier","required":true,"type":"string"},"commentStatus":{"name":"status","in":"path","description":"Comment status","required":true,"type":"string","enum":["OPEN","RESOLVED"]},"reply":{"name":"reply","in":"path","description":"Reply identifier","required":true,"type":"string"},"newVersion":{"in":"body","name":"newVersion","description":"An object that contains the new version number and other parameters. The version number must be in the format described in the [documentation](https://support.smartbear.com/swaggerhub/docs/apis/versioning.html#format).","required":true,"schema":{"$ref":"#/definitions/NewVersion"}},"newName":{"name":"newName","in":"query","description":"New name","required":true,"type":"string","minLength":3,"maxLength":60},"projectOwner":{"in":"path","name":"owner","description":"Organization name (case-sensitive)","required":true,"type":"string"},"projectId":{"in":"path","name":"projectId","description":"Project name (case-sensitive)","required":true,"type":"string"},"projectRequest":{"name":"projectRequest","in":"body","description":"The project data. Properties that are not provided are set to empty values.\n","required":true,"schema":{"$ref":"#/definitions/Project"}},"nameOnly":{"name":"nameOnly","in":"query","description":"Return the project information excluding APIs and domains","required":false,"type":"boolean","default":"false - DELETE"},"integrationId":{"name":"integrationId","in":"path","description":"Integration ID (case-sensitive). To get the available integration IDs, use `GET /apis/{owner}/{api}/{version}/integrations`","required":true,"type":"string","format":"uuid"},"integrationTypeConfiguration":{"name":"integrationTypeConfiguration","in":"body","required":true,"description":"Can be one of the following objects:\n\n| `configType` value        | Object |\n| ------------------------- | ------ |\n| AMAZON_API_GATEWAY        | AmazonApiGatewayIntegration |\n| AMAZON_API_GATEWAY_LAMBDA | AmazonApiGatewayLambdaIntegration |\n| API_AUTO_MOCKING          | AutoMockingIntegration |\n| APIGEE_EDGE               | ApigeeEdgeIntegration |\n| AZURE_API_MANAGEMENT      | AzureApiManagementIntegration |\n| AZURE_DEVOPS_SERVICES     | AzureDevopsServicesIntegration |\n| BITBUCKET_CLOUD           | BitbucketCloudIntegration |\n| BITBUCKET_SERVER          | BitbucketServerIntegration |\n| GITHUB                    | GitHubIntegration |\n| GITHUB_ENTERPRISE         | GitHubEnterpriseIntegration |\n| GITLAB                    | GitLabIntegration |\n| WEBHOOK                   | WebhookIntegration |\n\nFor more examples, see the JSON files in this repository:\nhttps://github.com/SmartBear/swaggerhub-cli/tree/master/examples/integrations","schema":{"type":"object","example":{"configType":"GITHUB","name":"Java client SDK","token":"abcd12345","owner":"myOrg","repository":"petstore","branch":"develop","target":"java","syncMethod":"Advanced Sync","outputFolder":"sdk/java","providedPaths":["*"],"managedPaths":[],"ignoredPaths":[],"enabled":true}}},"commitMessage":{"name":"commitMessage","in":"query","description":"Commit message for source control integrations","required":false,"type":"string"},"rulesetName":{"name":"name","in":"path","description":"Ruleset name","required":true,"type":"string"}},"definitions":{"ApiNotFound":{"description":"The API definition could not be found"},"ApisJsonProperty":{"description":"An API property. Has a `type` and either `url` or `value`.","type":"object","required":["type"],"properties":{"type":{"type":"string"},"url":{"type":"string"},"value":{"type":"string"}}},"ApisJson":{"type":"object","properties":{"name":{"type":"string","example":"Default listing"},"description":{"type":"string","example":"Default registry listing"},"url":{"type":"string"},"offset":{"type":"integer","format":"int32"},"totalCount":{"type":"integer","format":"int64","example":1},"apis":{"type":"array","items":{"$ref":"#/definitions/ApisJsonApi"}}}},"ApisJsonApi":{"type":"object","properties":{"name":{"type":"string","example":"petstore"},"description":{"type":"string","example":"This is a sample Petstore server."},"tags":{"description":"Reserved for future use","type":"array","uniqueItems":true,"items":{"type":"string"}},"properties":{"type":"array","items":{"$ref":"#/definitions/ApisJsonProperty"},"example":[{"type":"Swagger","url":"https://api.swaggerhub.com/apis/username/petstore/1.1"},{"type":"X-Version","value":"1.1"},{"type":"X-Created","value":"2017-01-16T13:39:06Z"},{"type":"X-Modified","value":"2017-01-25T11:48:13Z"},{"type":"X-Published","value":"true"},{"type":"X-Versions","value":"1.0,*1.1,1.1-oas3"},{"type":"X-Private","value":"false"},{"type":"X-OASVersion","value":"3.0.0"},{"type":"X-Notifications","value":"true"},{"type":"X-CreatedBy","value":"username"}]}}},"User":{"type":"object","description":"The user who added a comment","properties":{"id":{"type":"string","description":"User name","example":"alex"},"active":{"type":"boolean","description":"`true` means an existing user, `false` means the user is inactive (for example, deleted)\n"}}},"Comment":{"type":"object","required":["body","created","id","user"],"properties":{"id":{"type":"string","description":"The unique ID of the comment","example":"141b0adb-f26a-438b-be78-906445c91a36"},"user":{"$ref":"#/definitions/User"},"created":{"type":"string","format":"date-time","description":"The UTC date and time when the comment was added"},"modified":{"type":"string","format":"date-time","description":"The UTC date and time the when the comment was last edited"},"body":{"type":"string","description":"Markdown contents of the comment"}}},"Range":{"type":"object","required":["startLine","endLine","startColumn","endColumn","startOffset","endOffset"],"properties":{"startLine":{"type":"integer","format":"int32","minimum":1},"endLine":{"type":"integer","format":"int32","minimum":1},"startColumn":{"type":"integer","format":"int32","minimum":1},"endColumn":{"type":"integer","format":"int32","minimum":1},"startOffset":{"type":"integer","format":"int32","minimum":0},"endOffset":{"type":"integer","format":"int32","minimum":0}}},"ClosableComment":{"allOf":[{"$ref":"#/definitions/Comment"},{"type":"object","properties":{"position":{"type":"integer","format":"int32","description":"This field is DEPRECATED and will be removed in a future version. Use 'range' instead.  The line number (zero-based) the comment is associated with. For example, if the comment is on line 7 in the editor, `position`=6.\n"},"status":{"type":"string","description":"Comment status","enum":["OPEN","RESOLVED"]},"replies":{"type":"array","description":"A list of replies to this comment","items":{"$ref":"#/definitions/Comment"}},"range":{"$ref":"#/definitions/Range"}}}]},"NewComment":{"type":"object","properties":{"position":{"type":"integer","format":"int32","minimum":0,"description":"This field is DEPRECATED and will be removed in a future version. Use 'range' instead."},"body":{"type":"string"},"replies":{"type":"array","items":{"$ref":"#/definitions/NewReply"}},"range":{"$ref":"#/definitions/Range"}},"required":["body","replies"]},"NewReply":{"type":"object","properties":{"body":{"type":"string"}},"required":["body"]},"CommentPatch":{"type":"object","properties":{"body":{"type":"string"}}},"ClosableCommentPatch":{"allOf":[{"$ref":"#/definitions/CommentPatch"},{"type":"object","properties":{"position":{"type":"integer","format":"int32","minimum":0,"description":"This field is DEPRECATED and will be removed in a future version. Use 'range' instead."},"range":{"$ref":"#/definitions/Range"}}}]},"CommentsBatch":{"type":"object","properties":{"addComment":{"type":"array","items":{"$ref":"#/definitions/NewComment"}},"updateComment":{"type":"object","additionalProperties":{"$ref":"#/definitions/ClosableCommentPatch"}},"updateStatus":{"type":"object","additionalProperties":{"type":"string","enum":["OPEN","RESOLVED"]}},"deleteComment":{"type":"array","items":{"type":"string"}},"addReply":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/definitions/NewReply"}}},"updateReply":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"$ref":"#/definitions/CommentPatch"}}},"deleteReply":{"type":"object","additionalProperties":{"type":"array","uniqueItems":true,"items":{"type":"string"}}}}},"DefaultVersion":{"type":"object","required":["version"],"properties":{"version":{"type":"string","example":"1.0.0","description":"Version identifier (case-insensitive)"}}},"NewVersion":{"type":"object","required":["version"],"properties":{"version":{"type":"string","minLength":1,"description":"The version identifier for the new version","example":"1.0.1"},"private":{"type":"boolean","description":"Whether the new version should be public (`false`) or private (`true`)","example":false}}},"ForkVersion":{"type":"object","required":["owner","name","version"],"properties":{"owner":{"type":"string","minLength":3,"example":"acme","description":"The account to fork into. Can be an organization or user name. Case-sensitive. The authenticated user must have permissions to create definitions in this account."},"name":{"type":"string","minLength":3,"maxLength":60,"example":"api-fork","description":"The name for the forked definition. Must follow the [naming rules](https://support.smartbear.com/swaggerhub/docs/apis/creating-api.html). Can be the name of an existing definition, in which case the fork will become a new version in that definition, unless that version already exists."},"version":{"type":"string","example":"1.0.0","minLength":1,"description":"Version identifier for the forked definition. Must follow the [naming rules](https://support.smartbear.com/swaggerhub/docs/apis/versioning.html#format). If forking into an existing definition, this version must not already exist."},"project":{"type":"string","minLength":1,"description":"If forking into an organization, you can optionally specify an existing project to add the forked definition to."},"private":{"type":"boolean","description":"Whether the forked version should be public (`false`) or private (`true`). If the value is not set, the original version's setting will be used."}}},"LifecycleSettings":{"type":"object","properties":{"published":{"type":"boolean","description":"Whether the definition is published (`true`) or unpublished (`false`)"}}},"VisibilitySettings":{"type":"object","required":["private"],"properties":{"private":{"type":"boolean","description":"Whether the definition version is private (`true`) or public (`false`)"}}},"IntegrationConfiguration":{"description":"Common configuration details for all integrations","type":"object","properties":{"id":{"type":"string","format":"uuid","description":"ID of the integration","readOnly":true},"name":{"type":"string","description":"The display name of the integration. Must be unique among all integrations configured for the given API version.","example":"Java client"},"enabled":{"type":"boolean","description":"Whether the integration is enabled or disabled","default":true}},"required":["name"]},"IntegrationConfigurations":{"type":"object","properties":{"integrations":{"type":"array","description":"A list of integrations","items":{"$ref":"#/definitions/IntegrationConfigurationSummary"}}}},"IntegrationConfigurationSummary":{"allOf":[{"$ref":"#/definitions/IntegrationConfiguration"},{"type":"object","properties":{"configType":{"type":"string","description":"Integration type","enum":["AMAZON_API_GATEWAY","AMAZON_API_GATEWAY_LAMBDA","API_AUTO_MOCKING","APIGEE_EDGE","AZURE_DEVOPS_SERVICES","BITBUCKET_CLOUD","BITBUCKET_SERVER","GITHUB","GITHUB_ENTERPRISE","GITLAB","WEBHOOK"]}},"required":["configType"]}]},"AmazonIntegration":{"description":"Common configuration details for Amazon integrations","allOf":[{"$ref":"#/definitions/IntegrationConfiguration"},{"type":"object","required":["region"],"properties":{"region":{"description":"AWS region where the API will be published","type":"string","enum":["us-west-2","us-west-1","us-gov-west-1","us-gov-east-1","us-east-2","us-east-1","sa-east-1","me-south-1","me-central-1","il-central-1","eu-west-3","eu-west-2","eu-west-1","eu-south-2","eu-south-1","eu-north-1","eu-central-2","eu-central-1","cn-northwest-1","cn-north-1","ca-west-1","ca-central-1","aws-us-gov-global","aws-iso-global","aws-iso-b-global","aws-global","aws-cn-global","ap-southeast-4","ap-southeast-3","ap-southeast-2","ap-southeast-1","ap-south-2","ap-south-1","ap-northeast-3","ap-northeast-2","ap-northeast-1","ap-east-1","af-south-1"]},"apiId":{"description":"AWS ID of the API to update. Empty value will create a new API in AWS.","type":"string"},"publishMode":{"description":"How to update an existing API in AWS","type":"string","enum":["merge","overwrite"],"default":"merge"},"basePathMode":{"description":"How to handle the API's `basePath` value. Refer to [AWS documentation](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api-basePath.html) for details.","type":"string","enum":["ignore","prepend","split"],"default":"ignore"},"updateDefinition":{"description":"Whether to update the API definition with Amazon-specific extensions and compatibility modifications","type":"boolean","default":false},"deploymentMode":{"description":"Should be \"on save\". The value \"never\" means the integration is disabled.","type":"string","enum":["on save","never"],"default":"on save"},"accessKey":{"description":"AWS access key. Write-only property. Required to create and update the integration.","type":"string","format":"password"},"secretKey":{"description":"AWS secret key. Write-only property. Required to create and update the integration.","type":"string","format":"password"}}}]},"AmazonApiGatewayIntegration":{"description":"Configuration details for the [Amazon API Gateway](https://support.smartbear.com/swaggerhub/docs/integrations/amazon-api-gateway.html) integration","allOf":[{"$ref":"#/definitions/AmazonIntegration"},{"type":"object","properties":{"configType":{"description":"Integration type","type":"string","enum":["AMAZON_API_GATEWAY"]},"proxyToAddress":{"description":"The URL of the backend endpoint to which API Gateway will proxy the requests","type":"string","example":"https://api.example.com/v2"}},"required":["configType","proxyToAddress"]}]},"AmazonApiGatewayLambdaIntegration":{"description":"Configuration details for the [Amazon API Gateway Lambda Sync](https://support.smartbear.com/swaggerhub/docs/integrations/amazon-api-gateway-lambda-sync.html) integration","allOf":[{"$ref":"#/definitions/AmazonIntegration"},{"type":"object","required":["configType"],"properties":{"configType":{"description":"Integration type","type":"string","enum":["AMAZON_API_GATEWAY_LAMBDA"]},"runtimeLanguage":{"description":"The target runtime language for the generated Lambda functions","type":"string","enum":["python3.10","python3.9","python3.8","nodejs22.x","nodejs20.x","nodejs18.x","nodejs16.x"],"default":"nodejs22.x"},"lambdaRole":{"description":"The default execution role that will be assigned to newly Lambda functions created by SwaggerHub. Must be in the `arn:aws:iam::{ID}:role/{NAME}` format.\nCan be omitted if all Lambda functions already exist and you are not going to recreate them.","type":"string","pattern":"^arn:aws"}}}]},"ApigeeEdgeIntegration":{"description":"Configuration details for the [Apigee Edge](https://support.smartbear.com/swaggerhub/docs/integrations/apigee-edge.html) integration","allOf":[{"$ref":"#/definitions/IntegrationConfiguration"},{"type":"object","required":["configType","email","organization","apiName","targetUrl"],"properties":{"configType":{"description":"Integration type","type":"string","enum":["APIGEE_EDGE"]},"host":{"description":"Apigee Edge Management instance URL. Use the default URL `https://api.enterprise.apigee.com/v1` for the cloud version of Apigee Edge. If using an On-Premise deployment, enter the URL to your Edge instance.","type":"string","default":"https://api.enterprise.apigee.com/v1"},"email":{"description":"Email address of your Apigee account","type":"string","format":"email"},"password":{"description":"Password of your Apigee account. Write-only property. Required to create and update the integration.","type":"string","format":"password"},"organization":{"description":"Organization where the API will be saved","type":"string"},"apiName":{"description":"Name for the API that is going to be saved in your Apigee account","type":"string"},"targetUrl":{"description":"Target endpoint for proxy","type":"string"}}}]},"AzureApiManagementIntegration":{"description":"Configuration details for the [Azure API Management](https://support.smartbear.com/swaggerhub/docs/integrations/azure-api-management.html) integration","allOf":[{"$ref":"#/definitions/IntegrationConfiguration"},{"type":"object","required":["configType","serviceInstance"],"properties":{"configType":{"type":"string","description":"Integration type","enum":["AZURE_API_MANAGEMENT"]},"serviceInstance":{"type":"string","description":"The name of the Azure API Management service instance as it appears in the \"All resources\" list in the Azure portal\n"},"token":{"type":"string","format":"password","description":"A personal access token for accessing the Azure API Management service. Documentation for generating tokens is here:  https://docs.microsoft.com/en-us/rest/api/apimanagement/apimanagementrest/azure-api-management-rest-api-authentication Write-only property. Required to create and update the integration.\n","example":"SharedAccessSignature integration&202103141856&..."},"urlSuffix":{"type":"string","description":"This suffix will be appended to the hostname of your API Management service instance to create a public URL for your API"},"apiId":{"type":"string","description":"A unique identifier that allows you to connect your definition to an existing API. If left blank, a unique identifier will be added using an extension, `x-azure-api-id`. This value will be ignored if a value exists in the definition.\n","example":"sh-12345678-22a9-abcd-8d0f-30dd5197cf45"}}}]},"AutoMockingIntegration":{"description":"Configuration details for the [API Auto Mocking](https://support.smartbear.com/swaggerhub/docs/integrations/api-auto-mocking.html) integration","allOf":[{"$ref":"#/definitions/IntegrationConfiguration"},{"type":"object","required":["configType"],"properties":{"configType":{"description":"Integration type","type":"string","enum":["API_AUTO_MOCKING"]},"defaultResponseType":{"description":"Response content type that the mock server will return if no `Accept` header is specified.","type":"string","default":"application/json","enum":["application/json","application/xml","application/yaml"]},"token":{"description":"(For private APIs only.) An arbitrary bearer token that the users will need to send in requests to the mock server.","type":"string"},"modify":{"description":"Whether to update the `host`/`servers` in the API definition to point to the mock server. `modify`=`true` can only be used if the API is _unpublished_.","type":"boolean","default":true}}}]},"WebhookIntegration":{"description":"Configuration details for [webhooks](https://support.smartbear.com/swaggerhub/docs/integrations/webhook.html)","allOf":[{"$ref":"#/definitions/IntegrationConfiguration"},{"type":"object","required":["configType","url","contentType"],"properties":{"configType":{"description":"Integration type","type":"string","enum":["WEBHOOK"]},"url":{"description":"The URL to send the webhook to","type":"string","format":"uri","example":"https://example.com:8443/swaggerhub-webhook"},"contentType":{"description":"Webhook content type","type":"string","enum":["application/json","application/x-www-form-urlencoded"]},"lifeCycleEvents":{"description":"Events that will trigger the webhook","type":"array","items":{"type":"string","enum":["API_SAVED","API_PUBLISHED"]},"default":[]},"additionalHeaders":{"description":"Custom HTTP headers to be sent with the webhook. Use the \"name: value\" format for each header.","type":"array","items":{"type":"string","example":"Authorization: Bearer abcd12345"},"default":[]}}}]},"SCMIntegrationConfiguration":{"description":"Common configuration details for source control integrations","allOf":[{"$ref":"#/definitions/IntegrationConfiguration"},{"type":"object","required":["branch","target","syncMethod","repository","outputFolder"],"properties":{"branch":{"type":"string","description":"The branch to synchronize to. If it does not exist in the repository, it will be created based on the default branch. Branch name must not contain whitespace characters.\n","example":"develop"},"repository":{"type":"string","description":"The repository to synchronize with","example":"petstore"},"outputFile":{"type":"string","description":"Required if `target` is \"YAML (Resolved)\", \"YAML (Unresolved)\", \"JSON (Resolved)\", or \"JSON (Unresolved)\". Specifies the file name for the generated definition.","example":"openapi.yaml"},"target":{"type":"string","description":"The type of code to generate and push to the repository. For the possible values, start creating any source control integration manually and check the \"Generated API Code\" values. Note that the available codegens for OAS2 and OAS3 vary.\n","example":"java"},"syncMethod":{"type":"string","enum":["Basic Sync","Advanced Sync"],"description":"\"Basic Sync\" or \"Advanced Sync\". Basic Sync will manage all files and folders in the branch. Advanced Sync allows you to define which files and folders will be managed by SwaggerHub.\nNote: If \"Advanced Sync\" is used, you must specify either `providedPaths` or `managedPaths`.\n"},"outputFolder":{"type":"string","description":"The output folder for the generated code or definition, relative to the repository root. If this folder does not exist, it will be created. If the output folder is not specified, SwaggerHub will create files and folders in the repository root.\nUse forward slashes `/` as path separators, but do not add `/` at the beginning.\n","example":"sdk/java"},"providedPaths":{"type":"array","description":"Partially Managed Paths: These files and folders will be created only if they do not exist. Existing files will not be modified.\nPaths are relative to the `outputFolder`. Use forward slashes `/` as folder separators, but do not add `/` at the beginning of the paths.\n`*` means all files in the `outputFolder`.\n","items":{"type":"string"},"example":["*"]},"ignoredPaths":{"description":"Ignored Paths: These files and folders (if exist) will remain as is and will not be changed in any way.\nPaths are relative to the `outputFolder`. Use forward slashes `/` as folder separators, but do not add `/` at the beginning of the paths.\n","type":"array","items":{"type":"string"},"example":[]},"managedPaths":{"type":"array","description":"Fully Managed Paths: These files and folders will be completely managed by the integration. New files will be added, the existing files will be overwritten, and the files that are no longer used will be deleted. \nPaths are relative to the `outputFolder`. Use forward slashes `/` as folder separators, but do not add `/` at the beginning of the paths.\n`*` means all files in the `outputFolder`.\n","items":{"type":"string"},"example":[]}}}]},"AzureDevopsServicesIntegration":{"description":"Configuration details for the Azure DevOps Services integration","allOf":[{"$ref":"#/definitions/SCMIntegrationConfiguration"},{"type":"object","required":["configType","organization","project"],"properties":{"configType":{"type":"string","description":"Integration type","enum":["AZURE_DEVOPS_SERVICES"]},"organization":{"type":"string","description":"The Azure DevOps organization that contains the target repository","example":"my-org"},"personalAccessToken":{"type":"string","format":"password","description":"A [personal access token](https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops&tabs=preview-page#create-a-pat) for accessing the target repository. The token must have the _Code > Read & write_ scope. Write-only property. Required to create and update the integration.\n"},"project":{"type":"string","description":"Team Project which contains the target repository","example":"Petstore 2.0"}}}]},"BadRequest":{"description":"Bad request"},"BitbucketCloudIntegration":{"description":"Configuration details for the Bitbucket Cloud integration","allOf":[{"$ref":"#/definitions/SCMIntegrationConfiguration"},{"type":"object","required":["configType","username","owner"],"properties":{"configType":{"type":"string","description":"Integration type","enum":["BITBUCKET_CLOUD"]},"username":{"type":"string","description":"Bitbucket username to authenticate with","example":"service_user"},"password":{"type":"string","format":"password","description":"Bitbucket [app password](https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/) to authenticate with. Write-only property. Required to create and update the integration.\nThis app password must correspond to the `username` account and have the following permissions:\n\n * Account: Email, Read\n * Repositories: Read, Write\n"},"owner":{"type":"string","description":"The owner of the Bitbucket repository to synchronize with"}}}]},"BitbucketServerIntegration":{"description":"Configuration details for the Bitbucket Server integration","allOf":[{"$ref":"#/definitions/SCMIntegrationConfiguration"},{"type":"object","required":["configType","host","username","owner"],"properties":{"configType":{"type":"string","description":"Integration type","enum":["BITBUCKET_SERVER"]},"host":{"type":"string","description":"The Bitbucket Server host to connect to. Make sure to include `http://` or `https://` at the beginning.","example":"https://bitbucket.example.com"},"username":{"type":"string","description":"Bitbucket username to authenticate with","example":"service_user"},"password":{"type":"string","format":"password","description":"A [personal access token](https://support.smartbear.com/swaggerhub/docs/integrations/bitbucket-server-sync.html#token) for accessing the target Bitbucket Server repository. This token must have permissions for _Projects: Read_ and _Repositories: Write_.\nWrite-only property. Required to create and update the integration."},"owner":{"type":"string","description":"The owner of the repository to synchronize with","example":"myOrg"}}}]},"GitHubIntegration":{"description":"Configuration details for the GitHub.com integration","allOf":[{"$ref":"#/definitions/SCMIntegrationConfiguration"},{"type":"object","required":["configType","owner"],"properties":{"configType":{"type":"string","description":"Integration type","enum":["GITHUB"]},"token":{"type":"string","format":"password","description":"A personal access token for accessing the target GitHub repository. You can generate tokens here: https://github.com/settings/tokens. Write-only property. Required to create and update the integration.\nThe token must have the _public_repo_ scope if the target repository is public, or the _repo_ scope if it is private.\n"},"owner":{"type":"string","description":"The owner of the GitHub repository to synchronize with","example":"myOrg"}}}]},"GitHubEnterpriseIntegration":{"description":"Configuration details for the GitHub Enterprise integration","allOf":[{"$ref":"#/definitions/SCMIntegrationConfiguration"},{"type":"object","required":["configType","host","owner"],"properties":{"configType":{"type":"string","description":"Integration type","enum":["GITHUB_ENTERPRISE"]},"host":{"type":"string","description":"The GitHub Enterprise host to connect to. Make sure to include `http://` or `https://` at the beginning.","example":"https://github.mycompany.com"},"token":{"type":"string","format":"password","description":"A [personal access token](https://docs.github.com/en/enterprise/user/github/authenticating-to-github/creating-a-personal-access-token) for accessing the target repository. Write-only property. Required to create and update the integration.\nThe token must have the _public_repo_ scope if the target repository is public, or the _repo_ scope if it is private.\n"},"owner":{"type":"string","description":"The owner of the repository to synchronize with","example":"myOrg"}}}]},"GitLabIntegration":{"description":"Configuration details for the GitLab integration","allOf":[{"$ref":"#/definitions/SCMIntegrationConfiguration"},{"type":"object","required":["configType","owner"],"properties":{"configType":{"type":"string","description":"Integration type","enum":["GITLAB"]},"host":{"type":"string","default":"https://gitlab.com","description":"The GitLab host to connect to. Make sure to include `https://` or `http://` at the beginning."},"personalAccessToken":{"type":"string","format":"password","description":"A personal access token for accessing the target repository. The token must have the _api_ scope.\nWrite-only property. Required to create and update the integration.\n"},"owner":{"type":"string","description":"The owner of the repository to synchronize with","example":"myOrg"}}}]},"Project":{"type":"object","properties":{"name":{"type":"string","description":"Project name","example":"CoreServices"},"description":{"type":"string","description":"Project description","default":"","example":"APIs for core functionality"},"apis":{"description":"A list of APIs included in this project. The APIs must belong to the same owner as the project. API names are case-sensitive.\n","type":"array","items":{"type":"string","description":"API name (case-sensitive)"},"default":[],"example":["petstore"]},"domains":{"description":"A list of domains included in this project. The domains must belong to the same owner as the project. Domain names are case-sensitive.\n","type":"array","items":{"type":"string","description":"Domain name (case-sensitive)"},"default":[],"example":["common-models"]}}},"ProjectsJson":{"type":"object","properties":{"offset":{"type":"integer","format":"int32","example":0},"totalCount":{"type":"integer","format":"int64","example":1},"projects":{"type":"array","items":{"$ref":"#/definitions/Project"}}}},"StandardizationResult":{"type":"object","properties":{"validation":{"type":"array","items":{"$ref":"#/definitions/StandardizationError"}}}},"StandardizationError":{"type":"object","required":["line","description"],"properties":{"line":{"type":"integer","minimum":0,"default":0,"example":1,"description":"The line number where the issue occurs. 0-indexed. If for some\nreason, the broken rule does not include a line number, default to\nzero.\n"},"description":{"type":"string","description":"The issue's description, human friendly. Pertaining to how the user\ncan fix it.\n","example":"API title must be present and non-empty string"},"severity":{"$ref":"#/definitions/StandardizationRuleSeverity"}}},"StandardizationRuleSeverity":{"type":"string","enum":["Warning","Critical"],"example":"Warning"},"TemplateWrapper":{"type":"object","description":"A list of Templates. Template names are case-sensitive.\n","properties":{"id":{"type":"string"},"title":{"type":"string"},"specification":{"type":"string"},"builtIn":{"type":"boolean"},"defaultVersion":{"type":"string"}}},"SpectralRulesetId":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid"}}},"SpecValidationRequest":{"type":"object","required":["definition"],"properties":{"definition":{"type":"string","description":"An OpenAPI/AsyncAPI definition in YAML or JSON format.","example":"openapi: 3.0.0\ninfo:\n  title: My API\n  version: 1.0.0\npaths: {}\n"}}},"SpecValidationResult":{"type":"object","properties":{"valid":{"type":"boolean","description":"True if the definition was recognized and has no error-severity findings."},"recognized":{"type":"boolean","description":"False when the definition could not be identified as any supported specification."},"spec":{"$ref":"#/definitions/DetectedSpec"},"summary":{"$ref":"#/definitions/SpecValidationSummary"},"findings":{"type":"array","items":{"$ref":"#/definitions/SpecValidationFinding"}}}},"DetectedSpec":{"type":"object","properties":{"namespace":{"type":"string","description":"Detected specification type (`openapi`, `asyncapi`), or `unknown` when the definition could not be identified."},"version":{"type":"string","description":"Detected specification version, if identified."},"format":{"type":"string","description":"Detected definition format (e.g. `yaml`, `json`), if identified."},"mediaType":{"type":"string","description":"Media type inferred from the definition."}}},"SpecValidationSummary":{"type":"object","properties":{"errors":{"type":"integer"},"warnings":{"type":"integer"},"total":{"type":"integer"},"durationMs":{"type":"integer","format":"int64"}}},"SpecValidationFinding":{"type":"object","properties":{"severity":{"type":"string","enum":["error","warning","information","hint","unknown"]},"message":{"type":"string"},"code":{"description":"Diagnostic code (string or number)."},"source":{"type":"string"},"line":{"type":"integer","description":"1-based line number of the finding start."},"column":{"type":"integer","description":"1-based column of the finding start."},"range":{"$ref":"#/definitions/SpecValidationRange"}}},"SpecValidationRange":{"type":"object","properties":{"start":{"$ref":"#/definitions/SpecValidationPosition"},"end":{"$ref":"#/definitions/SpecValidationPosition"}}},"SpecValidationPosition":{"type":"object","properties":{"line":{"type":"integer","description":"0-based line number."},"character":{"type":"integer","description":"0-based character offset within the line."}}}},"responses":{"BadRequest":{"description":"Request body invalid"},"Unauthorized":{"description":"Access token is not set or invalid"},"ApiNotFound":{"description":"The specified API was not found"},"DomainNotFound":{"description":"The specified domain was not found"},"ApiCommentNotFound":{"description":"The specified API or comment was not found"},"DomainCommentNotFound":{"description":"The specified domain or comment was not found"},"ApiCommentReplyNotFound":{"description":"The specified API, comment, or reply was not found"},"DomainCommentReplyNotFound":{"description":"The specified domain, comment, or reply was not found"},"OwnerNotFound":{"description":"The specified organization or user was not found"},"CommentForbidden":{"description":"The comment feature is not available for the organization's plan, or the authenticating user does not have permission to complete this action"},"IntegrationForbidden":{"description":"The authenticating user does not have access to integrations in this API"},"TemplateNotFound":{"description":"Template not found"},"TemplateCommentReplyNotFound":{"description":"Template, comment, or reply not found"}}}