openapi-directory
Version:
Building & bundling https://github.com/APIs-guru/openapi-directory for easy use from JS
1 lines • 130 kB
JSON
{"openapi":"3.0.0","info":{"contact":{"name":"SwaggerHub Support","url":"https://support.smartbear.com/swaggerhub/message/"},"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\nVersion 1.29.0 or later:\n\n http(s)://SERVER/v1/openapi.yaml - YAML version\n http(s)://SERVER/v1/openapi.json - JSON version\n\nEarlier versions:\n\n http(s)://SERVER/v1/swagger.yaml - YAML version\n http(s)://SERVER/v1/swagger.json - JSON version\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/","title":"SwaggerHub Registry API","version":"1.0.66","x-apisguru-categories":["developer_tools"],"x-logo":{"url":"https://twitter.com/SwaggerHub/profile_image?size=original"},"x-origin":[{"format":"swagger","url":"https://api.swaggerhub.com/apis/swagger-hub/registry-api/1.0.66","version":"2.0"}],"x-providerName":"swaggerhub.com"},"tags":[{"description":"Manage your API definitions","name":"APIs"},{"description":"Manage your API [custom templates](https://support.smartbear.com/swaggerhub/docs/apis/creating-api-custom-template.html)","name":"Templates"},{"description":"Manage your [domains](https://support.smartbear.com/swaggerhub/docs/domains/)","name":"Domains"},{"description":"Manage your organization's [projects](https://support.smartbear.com/swaggerhub/docs/organizations/projects/)","name":"Projects"},{"description":"Create and configure [integrations](https://support.smartbear.com/swaggerhub/docs/integrations/) programmatically","name":"Integrations"}],"paths":{"/apis":{"get":{"description":"This is a convenience alias for `GET /specs?specType=API`.","operationId":"searchApis","parameters":[{"$ref":"#/components/parameters/query"},{"$ref":"#/components/parameters/state"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/sort"},{"$ref":"#/components/parameters/order"}],"responses":{"303":{"description":"Redirect to `GET /specs`, with all query parameters preserved","headers":{"Location":{"schema":{"type":"string"}}}}},"security":[{"TokenSecured":[]},{}],"summary":"Search APIs","tags":["APIs"]}},"/apis/{owner}":{"get":{"operationId":"getOwnerApis","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/sort"},{"$ref":"#/components/parameters/order"}],"responses":{"200":{"description":"A list of APIs in APIs.json format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApisJson"}}}}},"security":[{"TokenSecured":[]},{}],"summary":"Get a list of APIs of the specified owner","tags":["APIs"]}},"/apis/{owner}/{api}":{"delete":{"operationId":"deleteApi","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/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":[]}],"summary":"Delete an API","tags":["APIs"]},"get":{"operationId":"getApiVersions","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"}],"responses":{"200":{"description":"A list of API versions in APIs.json format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/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":[]},{}],"summary":"Get a list of API versions","tags":["APIs"]},"post":{"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","parameters":[{"description":"API owner name (organization or user name, case-sensitive)","in":"path","name":"owner","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/api"},{"description":"Whether to make the API private (`true`) or public (`false`)","in":"query","name":"isPrivate","required":false,"schema":{"type":"boolean","default":false}},{"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).","in":"query","name":"version","required":false,"schema":{"type":"string"}},{"description":"Force update","in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"example":"{\n \"swagger\": \"2.0\",\n \"info\": {\n \"title\": \"Sample API\",\n \"version\": \"1.0.0\"\n },\n \"paths\": {}\n}\n","type":"string"}},"application/yaml":{"schema":{"example":"{\n \"swagger\": \"2.0\",\n \"info\": {\n \"title\": \"Sample API\",\n \"version\": \"1.0.0\"\n },\n \"paths\": {}\n}\n","type":"string"}}},"description":"OpenAPI definition in the YAML or JSON format. The content must be syntactically valid YAML or JSON.","required":true},"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":"#/components/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":[]}],"summary":"Create or update an API","tags":["APIs"]}},"/apis/{owner}/{api}/rename":{"post":{"description":"The new name must follow the [naming rules](https://support.smartbear.com/swaggerhub/docs/apis/creating-api.html).","operationId":"renameApi","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/newName"}],"responses":{"200":{"description":"The API was successfully renamed"},"401":{"$ref":"#/components/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":[]}],"summary":"Rename an API","tags":["APIs"]}},"/apis/{owner}/{api}/settings/default":{"get":{"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","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"}],"responses":{"200":{"description":"The default version identifier for this API","content":{"application/json":{"schema":{"$ref":"#/components/schemas/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":[]},{}],"summary":"Get the default version of an API","tags":["APIs"]},"put":{"operationId":"setApiDefaultVersion","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefaultVersion"}}},"description":"An object that specifies the default version for this API","required":true},"responses":{"200":{"description":"The default version was successfully changed"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"description":"Access denied (insufficient user permissions)"},"404":{"description":"The specified API or version was not found"}},"security":[{"TokenSecured":[]}],"summary":"Set the default API version","tags":["APIs"]}},"/apis/{owner}/{api}/{version}":{"delete":{"operationId":"deleteApiVersion","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/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":[]}],"summary":"Delete an API version","tags":["APIs"]},"get":{"operationId":"getDefinition","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"},{"$ref":"#/components/parameters/resolved"},{"$ref":"#/components/parameters/flatten"}],"responses":{"200":{"description":"OpenAPI definition in the requested format (YAML or JSON)","content":{"application/json":{"schema":{"example":{"info":{"title":"Sample API","version":"1.0.0"},"openapi":"3.0.0","paths":{}},"type":"object"}},"application/yaml":{"schema":{"example":{"info":{"title":"Sample API","version":"1.0.0"},"openapi":"3.0.0","paths":{}},"type":"object"}}}},"400":{"description":"Could not generate resolved definition due to syntax errors in the definition","content":{"application/json":{"examples":{"response":{"value":{"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":[]},{}],"summary":"Get the OpenAPI definition of the specified API version","tags":["APIs"]}},"/apis/{owner}/{api}/{version}/clone":{"post":{"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":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/versionToClone"}],"requestBody":{"$ref":"#/components/requestBodies/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":[]}],"summary":"Create a new API version","tags":["APIs"]}},"/apis/{owner}/{api}/{version}/comments":{"get":{"operationId":"getApiCommentsV2","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"}],"responses":{"200":{"description":"Comments for the specified API","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ClosableComment"},"type":"array"}}}},"204":{"description":"No comments were found for the specified API"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/CommentForbidden"},"404":{"$ref":"#/components/responses/ApiNotFound"}},"security":[{"TokenSecured":[]}],"summary":"Get comments for the specified API version","tags":["APIs"]},"post":{"operationId":"addApiCommentV2","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"}],"requestBody":{"$ref":"#/components/requestBodies/NewComment"},"responses":{"201":{"description":"Newly created comment for the specified API","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClosableComment"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/CommentForbidden"},"404":{"$ref":"#/components/responses/ApiNotFound"}},"security":[{"TokenSecured":[]}],"summary":"Add a new comment","tags":["APIs"]}},"/apis/{owner}/{api}/{version}/comments/batch":{"post":{"operationId":"updateApiCommentsV2","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"}],"requestBody":{"$ref":"#/components/requestBodies/CommentsBatch"},"responses":{"200":{"description":"Comments were updated"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/CommentForbidden"},"404":{"$ref":"#/components/responses/ApiCommentReplyNotFound"}},"security":[{"TokenSecured":[]}],"summary":"Bulk update comments","tags":["APIs"]}},"/apis/{owner}/{api}/{version}/comments/{comment}":{"delete":{"operationId":"deleteApiCommentV2","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"},{"$ref":"#/components/parameters/comment"}],"responses":{"200":{"description":"Comment was deleted"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/CommentForbidden"},"404":{"$ref":"#/components/responses/ApiCommentNotFound"}},"security":[{"TokenSecured":[]}],"summary":"Delete a comment","tags":["APIs"]},"patch":{"operationId":"updateApiCommentV2","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"},{"$ref":"#/components/parameters/comment"}],"requestBody":{"$ref":"#/components/requestBodies/ClosableCommentPatch"},"responses":{"200":{"description":"Comment was updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClosableComment"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/CommentForbidden"},"404":{"$ref":"#/components/responses/ApiCommentNotFound"}},"security":[{"TokenSecured":[]}],"summary":"Update a comment","tags":["APIs"]}},"/apis/{owner}/{api}/{version}/comments/{comment}/replies":{"post":{"operationId":"addApiCommentReplyV2","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"},{"$ref":"#/components/parameters/comment"}],"requestBody":{"$ref":"#/components/requestBodies/NewReply"},"responses":{"201":{"description":"Newly created reply","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Comment"},"type":"array"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/CommentForbidden"},"404":{"$ref":"#/components/responses/ApiCommentNotFound"}},"security":[{"TokenSecured":[]}],"summary":"Reply to a comment","tags":["APIs"]}},"/apis/{owner}/{api}/{version}/comments/{comment}/replies/{reply}":{"delete":{"operationId":"deleteApiCommentReplyV2","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"},{"$ref":"#/components/parameters/comment"},{"$ref":"#/components/parameters/reply"}],"responses":{"200":{"description":"Сomment reply was deleted"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/CommentForbidden"},"404":{"$ref":"#/components/responses/ApiCommentReplyNotFound"}},"security":[{"TokenSecured":[]}],"summary":"Delete a comment reply","tags":["APIs"]},"patch":{"operationId":"updateApiCommentReplyV2","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"},{"$ref":"#/components/parameters/comment"},{"$ref":"#/components/parameters/reply"}],"requestBody":{"$ref":"#/components/requestBodies/CommentPatch"},"responses":{"200":{"description":"Сomment reply was updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Comment"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/CommentForbidden"},"404":{"$ref":"#/components/responses/ApiCommentReplyNotFound"}},"security":[{"TokenSecured":[]}],"summary":"Update a comment reply","tags":["APIs"]}},"/apis/{owner}/{api}/{version}/comments/{comment}/status/{status}":{"put":{"operationId":"setApiCommentStatusV2","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"},{"$ref":"#/components/parameters/comment"},{"$ref":"#/components/parameters/commentStatus"}],"responses":{"200":{"description":"Comment status was updated"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/CommentForbidden"},"404":{"$ref":"#/components/responses/ApiCommentNotFound"}},"security":[{"TokenSecured":[]}],"summary":"Resolve or reopen a comment","tags":["APIs"]}},"/apis/{owner}/{api}/{version}/fork":{"post":{"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":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"}],"requestBody":{"$ref":"#/components/requestBodies/ForkVersion"},"responses":{"201":{"description":"The API was successfully forked"},"400":{"description":"Some parameters are missing or invalid"},"401":{"$ref":"#/components/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":[]}],"summary":"Fork an API","tags":["APIs"]}},"/apis/{owner}/{api}/{version}/integrations":{"get":{"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, IBM API Connect.","operationId":"getIntegrations","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"}],"responses":{"200":{"description":"An object that contains information about the configured integrations","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationConfigurations"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/IntegrationForbidden"},"404":{"description":"The specified API or version was not found"}},"security":[{"TokenSecured":[]}],"summary":"Get all integrations configured for the specified API version","tags":["Integrations"]},"post":{"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 * `IBMApiConnectIntegration`\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","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"}],"requestBody":{"$ref":"#/components/requestBodies/createIntegrationIntegrationtypeconfiguration"},"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).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationConfiguration"},"examples":{"response":{"value":{"branch":"develop","configType":"GITHUB","enabled":true,"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","ignoredPaths":[],"managedPaths":[],"name":"Java client SDK","outputFolder":"sdk/java","owner":"myOrg","providedPaths":["*"],"repository":"petstore","syncMethod":"Advanced Sync","target":"java"}}}}}},"400":{"description":"The integration configuration was invalid"},"401":{"$ref":"#/components/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":[]}],"summary":"Create an integration for the specified API and version","tags":["Integrations"]}},"/apis/{owner}/{api}/{version}/integrations/{integrationId}":{"delete":{"description":"Delete an existing integration specified by its ID.","operationId":"deleteIntegration","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"},{"$ref":"#/components/parameters/integrationId"}],"responses":{"204":{"description":"The integration was successfully deleted"},"401":{"$ref":"#/components/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":[]}],"summary":"Delete an integration","tags":["Integrations"]},"get":{"description":"Returns the configuration of the specified integration. Access tokens and passwords are not returned for security reasons.","operationId":"getIntegrationById","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"},{"$ref":"#/components/parameters/integrationId"}],"responses":{"200":{"description":"Can be one of the following objects: `AmazonApiGatewayIntegration`, `AmazonApiGatewayLambdaIntegration`, `ApigeeEdgeIntegration`, `AutoMockingIntegration`, `AzureApiManagementIntegration`, `AzureDevopsServicesIntegration`, `BitbucketCloudIntegration`, `BitbucketServerIntegration`, `GitHubIntegration`, `GitHubEnterpriseIntegration`, `GitLabIntegration`, `IBMApiConnectIntegration`, `WebhookIntegration`\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationConfiguration"},"examples":{"response":{"value":{"branch":"develop","configType":"GITHUB","enabled":true,"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","ignoredPaths":[],"managedPaths":[],"name":"Java client SDK","outputFolder":"sdk/java","owner":"myOrg","providedPaths":["*"],"repository":"petstore","syncMethod":"Advanced Sync","target":"java"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/IntegrationForbidden"},"404":{"description":"The specified owner, API, version, or integration ID was not found"}},"security":[{"TokenSecured":[]}],"summary":"Get integration settings","tags":["Integrations"]},"patch":{"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 * `IBMApiConnectIntegration`\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","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"},{"$ref":"#/components/parameters/integrationId"}],"requestBody":{"content":{"application/json":{"schema":{"example":{"branch":"develop","enabled":true,"ignoredPaths":[],"managedPaths":[],"name":"GitHub integration","outputFolder":"sdk/java","owner":"myOrg","providedPaths":["*"],"repository":"petstore","syncMethod":"Advanced Sync","target":"java","token":"abcd12345"},"type":"object"}}},"description":"An object that contains the integration parameters you want to update","required":true},"responses":{"200":{"description":"Integration was successfully updated"},"400":{"description":"The specified integration configuration is invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/IntegrationForbidden"},"404":{"description":"The specified owner, API, version, or integration ID was not found"},"415":{"description":"Invalid content type"}},"security":[{"TokenSecured":[]}],"summary":"Partially update integration settings","tags":["Integrations"]},"put":{"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 * `IBMApiConnectIntegration`\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","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"},{"$ref":"#/components/parameters/integrationId"}],"requestBody":{"$ref":"#/components/requestBodies/createIntegrationIntegrationtypeconfiguration"},"responses":{"200":{"description":"Integration was successfully updated"},"400":{"description":"The specified integration configuration is invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/IntegrationForbidden"},"404":{"description":"The specified combination of owner, API, version, integrationId, and configType was not found"},"415":{"description":"Invalid content type"}},"security":[{"TokenSecured":[]}],"summary":"Update integration settings","tags":["Integrations"]}},"/apis/{owner}/{api}/{version}/integrations/{integrationId}/execute":{"post":{"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":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"},{"$ref":"#/components/parameters/integrationId"},{"$ref":"#/components/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":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/IntegrationForbidden"},"404":{"description":"The specified API or integration ID was not found"},"409":{"description":"The specified integration is disabled"}},"security":[{"TokenSecured":[]}],"summary":"Run an integration","tags":["Integrations"]}},"/apis/{owner}/{api}/{version}/settings/lifecycle":{"get":{"operationId":"getLifecycleSettings","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"}],"responses":{"200":{"description":"The published status of this API version","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LifecycleSettings"}}}},"401":{"$ref":"#/components/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":[]}],"summary":"Get the published status for the specified API and version","tags":["APIs"]},"put":{"operationId":"setLifecycleSettings","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"},{"description":"To publish an API that references _unpublished_ domains, this parameter must be `true`. Otherwise, the request will be rejected with status code 424.","in":"query","name":"force","required":false,"schema":{"type":"boolean","default":false}}],"requestBody":{"$ref":"#/components/requestBodies/LifecycleSettings"},"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":"#/components/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.","content":{"application/json":{"examples":{"response":{"value":{"code":424,"details":{"items":[{"apiId":"Common Models","groupId":"acme-org","private":false,"published":false,"type":"DOMAIN","versionId":"1.0.0"},{"apiId":"Common Responses","groupId":"acme-org","private":false,"published":false,"type":"DOMAIN","versionId":"1.0.2"}],"offset":0,"total":2},"message":"Conflicts detected"}}}}}}},"security":[{"TokenSecured":[]}],"summary":"Publish or unpublish an API version","tags":["APIs"]}},"/apis/{owner}/{api}/{version}/settings/private":{"get":{"operationId":"getPrivateSettings","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"}],"responses":{"200":{"description":"The response body indicates whether this API version is private (`true`) or public (`false`)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisibilitySettings"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"description":"The specified API or version was not found"}},"security":[{"TokenSecured":[]}],"summary":"Get the visibility (public or private) of API version","tags":["APIs"]},"put":{"operationId":"setPrivateSettings","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"}],"requestBody":{"$ref":"#/components/requestBodies/VisibilitySettings"},"responses":{"200":{"description":"API visibility was updated"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"description":"Access denied (insufficient user permissions)"},"404":{"description":"The specified API or version was not found"}},"security":[{"TokenSecured":[]}],"summary":"Set the visibility (public or private) of an API version","tags":["APIs"]}},"/apis/{owner}/{api}/{version}/standardization":{"get":{"operationId":"getStandardizationErrors","responses":{"200":{"description":"Returns a list of standardization errors for the given API definition\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardizationResult"}}}},"400":{"$ref":"#/components/schemas/BadRequest"},"404":{"$ref":"#/components/schemas/ApiNotFound"}},"security":[{"TokenSecured":[]}],"summary":"Retrieve the standardization errors for a given API definition","tags":["APIs"]},"parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/apiName"},{"$ref":"#/components/parameters/version"}]},"/apis/{owner}/{api}/{version}/swagger.json":{"get":{"operationId":"getJsonDefinition","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"},{"$ref":"#/components/parameters/resolved"},{"$ref":"#/components/parameters/flatten"}],"responses":{"200":{"description":"OpenAPI definition in JSON format","content":{"application/json":{"schema":{"example":{"info":{"title":"Sample API","version":"1.0.0"},"openapi":"3.0.0","paths":{}},"type":"object"}}}},"400":{"description":"Could not generate resolved definition due to syntax errors in the definition","content":{"application/json":{"examples":{"response":{"value":{"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":[]},{}],"summary":"Get the OpenAPI definition for the specified API version in JSON format","tags":["APIs"]}},"/apis/{owner}/{api}/{version}/swagger.yaml":{"get":{"operationId":"getYamlDefinition","parameters":[{"$ref":"#/components/parameters/apiOwner"},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"},{"$ref":"#/components/parameters/resolved"},{"$ref":"#/components/parameters/flatten"}],"responses":{"200":{"description":"OpenAPI definition in YAML format","content":{"application/yaml":{"schema":{"type":"object"},"examples":{"response":{"value":"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","content":{"application/json":{"examples":{"response":{"value":{"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":[]},{}],"summary":"Get the OpenAPI definition for the specified API version in YAML format","tags":["APIs"]}},"/apis/{owner}/{api}/{version}/validation":{"get":{"deprecated":true,"description":"**Note:** This endpoint is deprecated. Use the following new endpoint instead:\nGET /apis/{owner}/{api}/{version}/standardization \n\nIf your organization has [API standardization](https://support.smartbear.com/swaggerhub/docs/organizations/api-standardization.html) configured, you can use this operation to validate a specific API version and get a list of errors or warnings with line numbers.\n\nThis operation checks for standardization errors only and does not return OpenAPI syntax errors (such as misspelled keywords) or YAML syntax errors.","operationId":"getValidation","parameters":[{"description":"Organization name (case-sensitive)","in":"path","name":"owner","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/api"},{"$ref":"#/components/parameters/version"}],"responses":{"200":{"description":"An object that contains a list of standardization errors and warnings found in the specified API version. Error information includes line numbers, severity (error or warning), and error messages.\nIf no standardization errors or warnings are found, an empty validation array is returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationResult"}}}},"403":{"description":"Access denied"},"404":{"description":"The specified API or version was not found, or standardization is not enabled for this organization."}},"security":[{"TokenSecured":[]}],"summary":"Deprecated Get API Standardization errors and warnings","tags":["APIs"]}},"/domains":{"get":{"description":"This is a convenience alias for `GET /specs?specType=DOMAIN`.","operationId":"searchDomains","parameters":[{"$ref":"#/components/parameters/query"},{"$ref":"#/components/parameters/state"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/sort"},{"$ref":"#/components/parameters/order"}],"responses":{"303":{"description":"Redirect to `GET /specs`, with all query parameters preserved","headers":{"Location":{"schema":{"type":"string"}}}}},"security":[{"TokenSecured":[]},{}],"summary":"Search domains","tags":["Domains"]}},"/domains/{owner}":{"get":{"operationId":"getOwnerDomains","parameters":[{"$ref":"#/components/parameters/domainOwner"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/sort"},{"$ref":"#/components/parameters/order"}],"responses":{"200":{"description":"A list of domains in APIs.json format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApisJson"}}}}},"security":[{"TokenSecured":[]},{}],"summary":"Get a list of domains of the specified owner","tags":["Domains"]}},"/domains/{owner}/{domain}":{"delete":{"operationId":"deleteDomain","parameters":[{"$ref":"#/components/parameters/domainOwner"},{"$ref":"#/components/parameters/domain"},{"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.","in":"query","name":"force","required":false,"schema":{"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.","content":{"application/json":{"examples":{"response":{"value":{"code":424,"details":{"items":[{"apiId":"reports","groupId":"acme-org","private":false,"type":"API","versionId":"1.0.0"},{"apiId":"common-responses","groupId":"acme-org","private":false,"type":"DOMAIN","versionId":"1.0.2"}],"offset":0,"total":2},"message":"Conflicts detected"}}}}}}},"security":[{"TokenSecured":[]}],"summary":"Delete a domain","tags":["Domains"]},"get":{"operationId":"getDomainVersions","parameters":[{"$ref":"#/components/parameters/domainOwner"},{"$ref":"#/components/parameters/domain"}],"responses":{"200":{"description":"A list of domain versions in APIs.json format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/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":[]},{}],"summary":"Get a list of domain versions","tags":["Domains"]},"post":{"operationId":"saveDomainDefinition","parameters":[{"$ref":"#/components/parameters/domainOwner"},{"$ref":"#/components/parameters/domain"},{"description":"Specifies whether the domain has to be private","in":"query","name":"isPrivate","required":false,"schema":{"type":"boolean","default":false}},{"description":"Domain version. If omitted, will be taken from the `info.version` field in the definition.","in":"query","name":"version","schema":{"type":"string"}},{"description":"Force update","in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}},"application/yaml":{"schema":{"type":"string"}}},"description":"OpenAPI definition of this domain"},"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":[]}],"summary":"Create or update a domain","tags":["Domains"]}},"/domains/{owner}/{domain}/rename":{"post":{"description":"The new name must follow the [naming rules](https://support.smartbear.com/swaggerhub/docs/apis/creating-api.html).","operationId":"renameDomain","parameters":[{"$ref":"#/components/parameters/domainOwner"},{"$ref":"#/components/parameters/domain"},{"$ref":"#/components/parameters/newName"},{"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.","in":"query","name":"force","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"The domain was successfully renamed"},"401":{"$ref":"#/components/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.","content":{"application/json":{"schema":{"type":"object"},"examples":{"response":{"value":{"code":424,"details":{"items":[{"apiId":"reports","groupId":"acme-org","private":false,"type":"API","versionId":"1.0.0"},{"apiId":"common-responses","groupId":"acme-org","private":false,"type":"DOMAIN","versionId":"1.0.2"}],"offset":0,"total":2},"message":"Conflicts detected"}}}}}}},"security":[{"TokenSecured":[]}],"summary":"Rename a domain","tags":["Domains"]}},"/domains/{owner}/{domain}/settings/default":{"get":{"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","parameters":[{"$ref":"#/components/parameters/domainOwner"},{"$ref":"#/components/parameters/domain"}],"responses":{"200":{"description":"The default version identifier for this domain","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefaultVersion"}}}},"404":{"description":"The specified API was not found. If it is private, make sure the request is authenticated."}},"secu