From f7b1f2b952ce68009988e413c14d47086311a2e8 Mon Sep 17 00:00:00 2001 From: ehmicky Date: Wed, 26 Feb 2020 18:19:04 +0100 Subject: [PATCH 1/3] Add is-plain-obj dependency --- package-lock.json | 12 +++++++++--- package.json | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 72abec68..aad73806 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4360,9 +4360,9 @@ } }, "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true }, "is-promise": { @@ -5022,6 +5022,12 @@ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true } } }, diff --git a/package.json b/package.json index 6419e7eb..da4873d5 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "eslint-plugin-prettier": "^3.1.0", "execa": "^2.0.4", "gh-release": "^3.5.0", + "is-plain-obj": "^2.1.0", "make-dir": "^3.0.0", "npm-run-all": "^4.1.5", "prettier": "^1.18.2", From c7b56a77e186bccf76c55ba586a640499aa789e8 Mon Sep 17 00:00:00 2001 From: ehmicky Date: Wed, 26 Feb 2020 18:19:14 +0100 Subject: [PATCH 2/3] Add unit test --- src/convert.test.js | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/convert.test.js b/src/convert.test.js index efa9e9bf..adcd85d2 100644 --- a/src/convert.test.js +++ b/src/convert.test.js @@ -1,8 +1,28 @@ const test = require('ava') +const isPlainObj = require('is-plain-obj') + +const { version } = require('../package.json') // eslint-disable-next-line node/no-missing-require const openApiDef = require('..') -test('OpenAPI definition snapshot', async t => { - t.snapshot(openApiDef) +test('OpenAPI definition normalization', async t => { + // Ensure the OpenAPI definition general shape looks normal + t.true(isPlainObj(openApiDef)) + t.true(isPlainObj(openApiDef.definitions)) + t.true(isPlainObj(openApiDef.paths)) + + // Ensure the endpoints are present by checking for one of them + t.true(isPlainObj(openApiDef.paths['/accounts'])) + t.true(isPlainObj(openApiDef.paths['/accounts'].get)) + t.is(openApiDef.paths['/accounts'].get.operationId, 'listAccountsForUser') + + // Ensure the host URL is present + t.is(typeof openApiDef.host, 'string') + + // Ensure the API version is correct + t.is(openApiDef.info.version, version) + + // Ensure JSON references are normalized + t.true(isPlainObj(openApiDef.paths['/accounts'].get.responses.default.schema)) }) From cbad8ae799ef2713b153f337388ba54c9ecf2edb Mon Sep 17 00:00:00 2001 From: ehmicky Date: Wed, 26 Feb 2020 18:19:19 +0100 Subject: [PATCH 3/3] Remove snapshots --- src/convert.test.js.md | 12197 ------------------------------------- src/convert.test.js.snap | Bin 72415 -> 0 bytes 2 files changed, 12197 deletions(-) delete mode 100644 src/convert.test.js.md delete mode 100644 src/convert.test.js.snap diff --git a/src/convert.test.js.md b/src/convert.test.js.md deleted file mode 100644 index 9b938c6d..00000000 --- a/src/convert.test.js.md +++ /dev/null @@ -1,12197 +0,0 @@ -# Snapshot report for `src/convert.test.js` - -The actual snapshot is saved in `convert.test.js.snap`. - -Generated by [AVA](https://ava.li). - -## OpenAPI definition snapshot - -> Snapshot 1 - - { - basePath: '/api/v1', - consumes: [ - 'application/json', - ], - definitions: { - accessToken: { - properties: { - access_token: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - user_email: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - accountMembership: { - properties: { - billing_details: { - type: 'string', - }, - billing_email: { - type: 'string', - }, - billing_name: { - type: 'string', - }, - billing_period: { - type: 'string', - }, - capabilities: { - properties: { - collaborators: { - properties: { - included: { - type: 'integer', - }, - used: { - type: 'integer', - }, - }, - type: 'object', - }, - sites: { - properties: { - included: { - type: 'integer', - }, - used: { - type: 'integer', - }, - }, - type: 'object', - }, - }, - type: 'object', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - name: { - type: 'string', - }, - owner_ids: { - items: { - type: 'string', - }, - type: 'array', - }, - payment_method_id: { - type: 'string', - }, - roles_allowed: { - items: { - type: 'string', - }, - type: 'array', - }, - slug: { - type: 'string', - }, - type: { - type: 'string', - }, - type_id: { - type: 'string', - }, - type_name: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - accountSetup: { - properties: { - extra_seats_block: { - type: 'integer', - }, - name: { - type: 'string', - }, - payment_method_id: { - type: 'string', - }, - period: { - enum: [ - 'monthly', - 'yearly', - ], - type: 'string', - }, - type_id: { - type: 'string', - }, - }, - required: [ - 'name', - 'type_id', - ], - type: 'object', - }, - accountType: { - properties: { - capabilities: { - type: 'object', - }, - description: { - type: 'string', - }, - id: { - type: 'string', - }, - monthly_dollar_price: { - type: 'integer', - }, - monthly_seats_addon_dollar_price: { - type: 'integer', - }, - name: { - type: 'string', - }, - yearly_dollar_price: { - type: 'integer', - }, - yearly_seats_addon_dollar_price: { - type: 'integer', - }, - }, - type: 'object', - }, - accountUpdateSetup: { - properties: { - billing_details: { - type: 'string', - }, - billing_email: { - type: 'string', - }, - billing_name: { - type: 'string', - }, - extra_seats_block: { - type: 'integer', - }, - name: { - type: 'string', - }, - slug: { - type: 'string', - }, - type_id: { - type: 'string', - }, - }, - type: 'object', - }, - accountUsageCapability: { - properties: { - included: { - type: 'integer', - }, - used: { - type: 'integer', - }, - }, - type: 'object', - }, - asset: { - properties: { - content_type: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - creator_id: { - type: 'string', - }, - id: { - type: 'string', - }, - key: { - type: 'string', - }, - name: { - type: 'string', - }, - site_id: { - type: 'string', - }, - size: { - format: 'int64', - type: 'integer', - }, - state: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - visibility: { - type: 'string', - }, - }, - type: 'object', - }, - assetForm: { - properties: { - fields: { - additionalProperties: { - type: 'string', - }, - type: 'object', - }, - url: { - type: 'string', - }, - }, - type: 'object', - }, - assetPublicSignature: { - properties: { - url: { - type: 'string', - }, - }, - type: 'object', - }, - assetSignature: { - properties: { - asset: { - properties: { - content_type: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - creator_id: { - type: 'string', - }, - id: { - type: 'string', - }, - key: { - type: 'string', - }, - name: { - type: 'string', - }, - site_id: { - type: 'string', - }, - size: { - format: 'int64', - type: 'integer', - }, - state: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - visibility: { - type: 'string', - }, - }, - type: 'object', - }, - form: { - properties: { - fields: { - additionalProperties: { - type: 'string', - }, - type: 'object', - }, - url: { - type: 'string', - }, - }, - type: 'object', - }, - }, - type: 'object', - }, - auditLog: { - properties: { - account_id: { - type: 'string', - }, - id: { - type: 'string', - }, - payload: { - additionalProperties: { - type: 'object', - }, - properties: { - action: { - type: 'string', - }, - actor_email: { - type: 'string', - }, - actor_id: { - type: 'string', - }, - actor_name: { - type: 'string', - }, - log_type: { - type: 'string', - }, - timestamp: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - }, - type: 'object', - }, - build: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_id: { - type: 'string', - }, - done: { - type: 'boolean', - }, - error: { - type: 'string', - }, - id: { - type: 'string', - }, - sha: { - type: 'string', - }, - }, - type: 'object', - }, - buildHook: { - properties: { - branch: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - site_id: { - type: 'string', - }, - title: { - type: 'string', - }, - url: { - type: 'string', - }, - }, - type: 'object', - }, - buildLogMsg: { - properties: { - error: { - type: 'boolean', - }, - message: { - type: 'string', - }, - }, - type: 'object', - }, - deploy: { - properties: { - admin_url: { - type: 'string', - }, - branch: { - type: 'string', - }, - build_id: { - type: 'string', - }, - commit_ref: { - type: 'string', - }, - commit_url: { - type: 'string', - }, - context: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_ssl_url: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - draft: { - type: 'boolean', - }, - error_message: { - type: 'string', - }, - id: { - type: 'string', - }, - locked: { - type: 'boolean', - }, - name: { - type: 'string', - }, - published_at: { - format: 'dateTime', - type: 'string', - }, - required: { - items: { - type: 'string', - }, - type: 'array', - }, - required_functions: { - items: { - type: 'string', - }, - type: 'array', - }, - review_id: { - type: 'number', - }, - review_url: { - type: 'string', - }, - screenshot_url: { - type: 'string', - }, - site_capabilities: { - properties: { - large_media_enabled: { - type: 'boolean', - }, - }, - type: 'object', - }, - site_id: { - type: 'string', - }, - skipped: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - title: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - deployFiles: { - properties: { - async: { - type: 'boolean', - }, - draft: { - type: 'boolean', - }, - files: { - type: 'object', - }, - functions: { - type: 'object', - }, - }, - type: 'object', - }, - deployKey: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - public_key: { - type: 'string', - }, - }, - type: 'object', - }, - deployedBranch: { - properties: { - deploy_id: { - type: 'string', - }, - id: { - type: 'string', - }, - name: { - type: 'string', - }, - slug: { - type: 'string', - }, - ssl_url: { - type: 'string', - }, - url: { - type: 'string', - }, - }, - type: 'object', - }, - dnsRecord: { - properties: { - hostname: { - type: 'string', - }, - id: { - type: 'string', - }, - priority: { - format: 'int64', - type: 'integer', - }, - ttl: { - format: 'int64', - type: 'integer', - }, - type: { - type: 'string', - }, - value: { - type: 'string', - }, - }, - type: 'object', - }, - dnsZone: { - properties: { - id: { - type: 'string', - }, - name: { - type: 'string', - }, - records: { - items: { - properties: { - hostname: { - type: 'string', - }, - id: { - type: 'string', - }, - priority: { - format: 'int64', - type: 'integer', - }, - ttl: { - format: 'int64', - type: 'integer', - }, - type: { - type: 'string', - }, - value: { - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - type: 'object', - }, - error: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - file: { - properties: { - id: { - type: 'string', - }, - mime_type: { - type: 'string', - }, - path: { - type: 'string', - }, - sha: { - type: 'string', - }, - size: { - format: 'int64', - type: 'integer', - }, - }, - type: 'object', - }, - form: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - fields: { - items: { - type: 'object', - }, - type: 'array', - }, - id: { - type: 'string', - }, - name: { - type: 'string', - }, - paths: { - items: { - type: 'string', - }, - type: 'array', - }, - site_id: { - type: 'string', - }, - submission_count: { - format: 'int32', - type: 'integer', - }, - }, - type: 'object', - }, - function: { - properties: { - id: { - type: 'string', - }, - name: { - type: 'string', - }, - sha: { - type: 'string', - }, - }, - type: 'object', - }, - hook: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - data: { - type: 'object', - }, - disabled: { - type: 'boolean', - }, - event: { - type: 'string', - }, - id: { - type: 'string', - }, - site_id: { - type: 'string', - }, - type: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - hookType: { - properties: { - events: { - items: { - type: 'string', - }, - type: 'array', - }, - fields: { - items: { - type: 'object', - }, - type: 'array', - }, - name: { - type: 'string', - }, - }, - type: 'object', - }, - member: { - properties: { - avatar: { - type: 'string', - }, - email: { - type: 'string', - }, - full_name: { - type: 'string', - }, - id: { - type: 'string', - }, - role: { - type: 'string', - }, - }, - type: 'object', - }, - metadata: { - type: 'object', - }, - minifyOptions: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - paymentMethod: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - data: { - properties: { - card_type: { - type: 'string', - }, - email: { - type: 'string', - }, - last4: { - type: 'string', - }, - }, - type: 'object', - }, - id: { - type: 'string', - }, - method_name: { - type: 'string', - }, - state: { - type: 'string', - }, - type: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - repoInfo: { - properties: { - allowed_branches: { - items: { - type: 'string', - }, - type: 'array', - }, - cmd: { - type: 'string', - }, - deploy_key_id: { - type: 'string', - }, - dir: { - type: 'string', - }, - env: { - additionalProperties: { - type: 'string', - }, - type: 'object', - }, - id: { - type: 'integer', - }, - installation_id: { - type: 'integer', - }, - private_logs: { - type: 'boolean', - }, - provider: { - type: 'string', - }, - public_repo: { - type: 'boolean', - }, - repo_branch: { - type: 'string', - }, - repo_path: { - type: 'string', - }, - repo_url: { - type: 'string', - }, - }, - type: 'object', - }, - service: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - description: { - type: 'string', - }, - environments: { - items: { - type: 'string', - }, - type: 'array', - }, - events: { - items: { - type: 'object', - }, - type: 'array', - }, - icon: { - type: 'string', - }, - id: { - type: 'string', - }, - long_description: { - type: 'string', - }, - manifest_url: { - type: 'string', - }, - name: { - type: 'string', - }, - service_path: { - type: 'string', - }, - slug: { - type: 'string', - }, - tags: { - items: { - type: 'string', - }, - type: 'array', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - serviceInstance: { - properties: { - auth_url: { - type: 'string', - }, - config: { - type: 'object', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - env: { - type: 'object', - }, - external_attributes: { - type: 'object', - }, - id: { - type: 'string', - }, - service_name: { - type: 'string', - }, - service_path: { - type: 'string', - }, - service_slug: { - type: 'string', - }, - snippets: { - items: { - type: 'object', - }, - type: 'array', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - }, - type: 'object', - }, - site: { - properties: { - account_name: { - type: 'string', - }, - account_slug: { - type: 'string', - }, - admin_url: { - type: 'string', - }, - build_image: { - type: 'string', - }, - build_settings: { - properties: { - allowed_branches: { - items: { - type: 'string', - }, - type: 'array', - }, - cmd: { - type: 'string', - }, - deploy_key_id: { - type: 'string', - }, - dir: { - type: 'string', - }, - env: { - additionalProperties: { - type: 'string', - }, - type: 'object', - }, - id: { - type: 'integer', - }, - installation_id: { - type: 'integer', - }, - private_logs: { - type: 'boolean', - }, - provider: { - type: 'string', - }, - public_repo: { - type: 'boolean', - }, - repo_branch: { - type: 'string', - }, - repo_path: { - type: 'string', - }, - repo_url: { - type: 'string', - }, - }, - type: 'object', - }, - capabilities: { - additionalProperties: { - type: 'object', - }, - type: 'object', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - custom_domain: { - type: 'string', - }, - default_hooks_data: { - properties: { - access_token: { - type: 'string', - }, - }, - type: 'object', - }, - deploy_hook: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - domain_aliases: { - items: { - type: 'string', - }, - type: 'array', - }, - force_ssl: { - type: 'boolean', - }, - git_provider: { - type: 'string', - }, - id: { - type: 'string', - }, - id_domain: { - type: 'string', - }, - managed_dns: { - type: 'boolean', - }, - name: { - type: 'string', - }, - notification_email: { - type: 'string', - }, - password: { - type: 'string', - }, - plan: { - type: 'string', - }, - processing_settings: { - properties: { - css: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - html: { - properties: { - pretty_urls: { - type: 'boolean', - }, - }, - type: 'object', - }, - images: { - properties: { - optimize: { - type: 'boolean', - }, - }, - type: 'object', - }, - js: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - skip: { - type: 'boolean', - }, - }, - type: 'object', - }, - published_deploy: { - properties: { - admin_url: { - type: 'string', - }, - branch: { - type: 'string', - }, - build_id: { - type: 'string', - }, - commit_ref: { - type: 'string', - }, - commit_url: { - type: 'string', - }, - context: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_ssl_url: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - draft: { - type: 'boolean', - }, - error_message: { - type: 'string', - }, - id: { - type: 'string', - }, - locked: { - type: 'boolean', - }, - name: { - type: 'string', - }, - published_at: { - format: 'dateTime', - type: 'string', - }, - required: { - items: { - type: 'string', - }, - type: 'array', - }, - required_functions: { - items: { - type: 'string', - }, - type: 'array', - }, - review_id: { - type: 'number', - }, - review_url: { - type: 'string', - }, - screenshot_url: { - type: 'string', - }, - site_capabilities: { - properties: { - large_media_enabled: { - type: 'boolean', - }, - }, - type: 'object', - }, - site_id: { - type: 'string', - }, - skipped: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - title: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - screenshot_url: { - type: 'string', - }, - session_id: { - type: 'string', - }, - ssl: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - siteSetup: { - allOf: [ - { - properties: { - account_name: { - type: 'string', - }, - account_slug: { - type: 'string', - }, - admin_url: { - type: 'string', - }, - build_image: { - type: 'string', - }, - build_settings: { - properties: { - allowed_branches: { - items: { - type: 'string', - }, - type: 'array', - }, - cmd: { - type: 'string', - }, - deploy_key_id: { - type: 'string', - }, - dir: { - type: 'string', - }, - env: { - additionalProperties: { - type: 'string', - }, - type: 'object', - }, - id: { - type: 'integer', - }, - installation_id: { - type: 'integer', - }, - private_logs: { - type: 'boolean', - }, - provider: { - type: 'string', - }, - public_repo: { - type: 'boolean', - }, - repo_branch: { - type: 'string', - }, - repo_path: { - type: 'string', - }, - repo_url: { - type: 'string', - }, - }, - type: 'object', - }, - capabilities: { - additionalProperties: { - type: 'object', - }, - type: 'object', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - custom_domain: { - type: 'string', - }, - default_hooks_data: { - properties: { - access_token: { - type: 'string', - }, - }, - type: 'object', - }, - deploy_hook: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - domain_aliases: { - items: { - type: 'string', - }, - type: 'array', - }, - force_ssl: { - type: 'boolean', - }, - git_provider: { - type: 'string', - }, - id: { - type: 'string', - }, - id_domain: { - type: 'string', - }, - managed_dns: { - type: 'boolean', - }, - name: { - type: 'string', - }, - notification_email: { - type: 'string', - }, - password: { - type: 'string', - }, - plan: { - type: 'string', - }, - processing_settings: { - properties: { - css: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - html: { - properties: { - pretty_urls: { - type: 'boolean', - }, - }, - type: 'object', - }, - images: { - properties: { - optimize: { - type: 'boolean', - }, - }, - type: 'object', - }, - js: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - skip: { - type: 'boolean', - }, - }, - type: 'object', - }, - published_deploy: { - properties: { - admin_url: { - type: 'string', - }, - branch: { - type: 'string', - }, - build_id: { - type: 'string', - }, - commit_ref: { - type: 'string', - }, - commit_url: { - type: 'string', - }, - context: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_ssl_url: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - draft: { - type: 'boolean', - }, - error_message: { - type: 'string', - }, - id: { - type: 'string', - }, - locked: { - type: 'boolean', - }, - name: { - type: 'string', - }, - published_at: { - format: 'dateTime', - type: 'string', - }, - required: { - items: { - type: 'string', - }, - type: 'array', - }, - required_functions: { - items: { - type: 'string', - }, - type: 'array', - }, - review_id: { - type: 'number', - }, - review_url: { - type: 'string', - }, - screenshot_url: { - type: 'string', - }, - site_capabilities: { - properties: { - large_media_enabled: { - type: 'boolean', - }, - }, - type: 'object', - }, - site_id: { - type: 'string', - }, - skipped: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - title: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - screenshot_url: { - type: 'string', - }, - session_id: { - type: 'string', - }, - ssl: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - { - properties: { - repo: { - properties: { - allowed_branches: { - items: { - type: 'string', - }, - type: 'array', - }, - cmd: { - type: 'string', - }, - deploy_key_id: { - type: 'string', - }, - dir: { - type: 'string', - }, - env: { - additionalProperties: { - type: 'string', - }, - type: 'object', - }, - id: { - type: 'integer', - }, - installation_id: { - type: 'integer', - }, - private_logs: { - type: 'boolean', - }, - provider: { - type: 'string', - }, - public_repo: { - type: 'boolean', - }, - repo_branch: { - type: 'string', - }, - repo_path: { - type: 'string', - }, - repo_url: { - type: 'string', - }, - }, - type: 'object', - }, - }, - }, - ], - }, - sniCertificate: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - domains: { - items: { - type: 'string', - }, - type: 'array', - }, - expires_at: { - format: 'dateTime', - type: 'string', - }, - state: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - snippet: { - properties: { - general: { - type: 'string', - }, - general_position: { - type: 'string', - }, - goal: { - type: 'string', - }, - goal_position: { - type: 'string', - }, - id: { - format: 'int32', - type: 'integer', - }, - site_id: { - type: 'string', - }, - title: { - type: 'string', - }, - }, - type: 'object', - }, - splitTest: { - properties: { - active: { - type: 'boolean', - }, - branches: { - items: { - type: 'object', - }, - type: 'array', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - name: { - type: 'string', - }, - path: { - type: 'string', - }, - site_id: { - type: 'string', - }, - unpublished_at: { - format: 'dateTime', - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - splitTestSetup: { - properties: { - branch_tests: { - type: 'object', - }, - }, - type: 'object', - }, - splitTests: { - items: { - properties: { - active: { - type: 'boolean', - }, - branches: { - items: { - type: 'object', - }, - type: 'array', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - name: { - type: 'string', - }, - path: { - type: 'string', - }, - site_id: { - type: 'string', - }, - unpublished_at: { - format: 'dateTime', - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - submission: { - properties: { - body: { - type: 'string', - }, - company: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - data: { - type: 'object', - }, - email: { - type: 'string', - }, - first_name: { - type: 'string', - }, - id: { - type: 'string', - }, - last_name: { - type: 'string', - }, - name: { - type: 'string', - }, - number: { - format: 'int32', - type: 'integer', - }, - site_url: { - type: 'string', - }, - summary: { - type: 'string', - }, - }, - type: 'object', - }, - ticket: { - properties: { - authorized: { - type: 'boolean', - }, - client_id: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - }, - type: 'object', - }, - user: { - properties: { - affiliate_id: { - type: 'string', - }, - avatar_url: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - email: { - type: 'string', - }, - full_name: { - type: 'string', - }, - id: { - type: 'string', - }, - last_login: { - format: 'dateTime', - type: 'string', - }, - login_providers: { - items: { - type: 'string', - }, - type: 'array', - }, - onboarding_progress: { - properties: { - slides: { - type: 'string', - }, - }, - type: 'object', - }, - site_count: { - format: 'int64', - type: 'integer', - }, - support_priority: { - format: 'int64', - type: 'integer', - }, - uid: { - type: 'string', - }, - }, - type: 'object', - }, - }, - externalDocs: { - description: 'Online documentation', - url: 'https://www.netlify.com/docs/api/', - }, - host: 'api.netlify.com', - info: { - description: `Netlify is a hosting service for the programmable web. It understands your documents and provides an API to handle atomic deploys of websites, manage form submissions, inject JavaScript snippets, and much more. This is a REST-style API that uses JSON for serialization and OAuth 2 for authentication.␊ - ␊ - This document is an OpenAPI reference for the Netlify API that you can explore. For more detailed instructions for common uses, please visit the [online documentation](https://www.netlify.com/docs/api/). Visit our Community forum to join the conversation about [understanding and using Netlify’s API](https://community.netlify.com/t/common-issue-understanding-and-using-netlifys-api/160).␊ - ␊ - Additionally, we have two API clients for your convenience:␊ - - [Go Client](https://github.com/netlify/open-api#go-client)␊ - - [JS Client](https://github.com/netlify/js-client)`, - termsOfService: 'https://www.netlify.com/legal/terms-of-use/', - title: 'Netlify\'s API documentation', - version: '0.13.0', - 'x-logo': { - altText: 'Netlify', - href: 'https://www.netlify.com/docs/', - url: 'netlify-logo.png', - }, - }, - paths: { - '/accounts': { - get: { - operationId: 'listAccountsForUser', - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - billing_details: { - type: 'string', - }, - billing_email: { - type: 'string', - }, - billing_name: { - type: 'string', - }, - billing_period: { - type: 'string', - }, - capabilities: { - properties: { - collaborators: { - properties: { - included: { - type: 'integer', - }, - used: { - type: 'integer', - }, - }, - type: 'object', - }, - sites: { - properties: { - included: { - type: 'integer', - }, - used: { - type: 'integer', - }, - }, - type: 'object', - }, - }, - type: 'object', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - name: { - type: 'string', - }, - owner_ids: { - items: { - type: 'string', - }, - type: 'array', - }, - payment_method_id: { - type: 'string', - }, - roles_allowed: { - items: { - type: 'string', - }, - type: 'array', - }, - slug: { - type: 'string', - }, - type: { - type: 'string', - }, - type_id: { - type: 'string', - }, - type_name: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'accountMembership', - ], - }, - post: { - operationId: 'createAccount', - parameters: [ - { - in: 'body', - name: 'accountSetup', - required: true, - schema: { - properties: { - extra_seats_block: { - type: 'integer', - }, - name: { - type: 'string', - }, - payment_method_id: { - type: 'string', - }, - period: { - enum: [ - 'monthly', - 'yearly', - ], - type: 'string', - }, - type_id: { - type: 'string', - }, - }, - required: [ - 'name', - 'type_id', - ], - type: 'object', - }, - }, - ], - responses: { - 201: { - description: 'Created', - schema: { - properties: { - billing_details: { - type: 'string', - }, - billing_email: { - type: 'string', - }, - billing_name: { - type: 'string', - }, - billing_period: { - type: 'string', - }, - capabilities: { - properties: { - collaborators: { - properties: { - included: { - type: 'integer', - }, - used: { - type: 'integer', - }, - }, - type: 'object', - }, - sites: { - properties: { - included: { - type: 'integer', - }, - used: { - type: 'integer', - }, - }, - type: 'object', - }, - }, - type: 'object', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - name: { - type: 'string', - }, - owner_ids: { - items: { - type: 'string', - }, - type: 'array', - }, - payment_method_id: { - type: 'string', - }, - roles_allowed: { - items: { - type: 'string', - }, - type: 'array', - }, - slug: { - type: 'string', - }, - type: { - type: 'string', - }, - type_id: { - type: 'string', - }, - type_name: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'accountMembership', - ], - }, - }, - '/accounts/types': { - get: { - operationId: 'listAccountTypesForUser', - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - capabilities: { - type: 'object', - }, - description: { - type: 'string', - }, - id: { - type: 'string', - }, - monthly_dollar_price: { - type: 'integer', - }, - monthly_seats_addon_dollar_price: { - type: 'integer', - }, - name: { - type: 'string', - }, - yearly_dollar_price: { - type: 'integer', - }, - yearly_seats_addon_dollar_price: { - type: 'integer', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'accountType', - ], - }, - }, - '/accounts/{account_id}': { - delete: { - operationId: 'cancelAccount', - responses: { - 204: { - description: 'Not Content', - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'accountMembership', - ], - }, - get: { - operationId: 'getAccount', - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - billing_details: { - type: 'string', - }, - billing_email: { - type: 'string', - }, - billing_name: { - type: 'string', - }, - billing_period: { - type: 'string', - }, - capabilities: { - properties: { - collaborators: { - properties: { - included: { - type: 'integer', - }, - used: { - type: 'integer', - }, - }, - type: 'object', - }, - sites: { - properties: { - included: { - type: 'integer', - }, - used: { - type: 'integer', - }, - }, - type: 'object', - }, - }, - type: 'object', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - name: { - type: 'string', - }, - owner_ids: { - items: { - type: 'string', - }, - type: 'array', - }, - payment_method_id: { - type: 'string', - }, - roles_allowed: { - items: { - type: 'string', - }, - type: 'array', - }, - slug: { - type: 'string', - }, - type: { - type: 'string', - }, - type_id: { - type: 'string', - }, - type_name: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'accountMembership', - ], - }, - parameters: [ - { - in: 'path', - name: 'account_id', - required: true, - type: 'string', - }, - ], - put: { - operationId: 'updateAccount', - parameters: [ - { - in: 'body', - name: 'accountUpdateSetup', - schema: { - properties: { - billing_details: { - type: 'string', - }, - billing_email: { - type: 'string', - }, - billing_name: { - type: 'string', - }, - extra_seats_block: { - type: 'integer', - }, - name: { - type: 'string', - }, - slug: { - type: 'string', - }, - type_id: { - type: 'string', - }, - }, - type: 'object', - }, - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - properties: { - billing_details: { - type: 'string', - }, - billing_email: { - type: 'string', - }, - billing_name: { - type: 'string', - }, - billing_period: { - type: 'string', - }, - capabilities: { - properties: { - collaborators: { - properties: { - included: { - type: 'integer', - }, - used: { - type: 'integer', - }, - }, - type: 'object', - }, - sites: { - properties: { - included: { - type: 'integer', - }, - used: { - type: 'integer', - }, - }, - type: 'object', - }, - }, - type: 'object', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - name: { - type: 'string', - }, - owner_ids: { - items: { - type: 'string', - }, - type: 'array', - }, - payment_method_id: { - type: 'string', - }, - roles_allowed: { - items: { - type: 'string', - }, - type: 'array', - }, - slug: { - type: 'string', - }, - type: { - type: 'string', - }, - type_id: { - type: 'string', - }, - type_name: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'accountMembership', - ], - }, - }, - '/accounts/{account_id}/audit': { - get: { - operationId: 'listAccountAuditEvents', - parameters: [ - { - in: 'query', - name: 'query', - type: 'string', - }, - { - in: 'query', - name: 'log_type', - type: 'string', - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - account_id: { - type: 'string', - }, - id: { - type: 'string', - }, - payload: { - additionalProperties: { - type: 'object', - }, - properties: { - action: { - type: 'string', - }, - actor_email: { - type: 'string', - }, - actor_id: { - type: 'string', - }, - actor_name: { - type: 'string', - }, - log_type: { - type: 'string', - }, - timestamp: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'auditLog', - ], - }, - parameters: [ - { - in: 'path', - name: 'account_id', - required: true, - type: 'string', - }, - ], - }, - '/billing/payment_methods': { - get: { - operationId: 'listPaymentMethodsForUser', - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - data: { - properties: { - card_type: { - type: 'string', - }, - email: { - type: 'string', - }, - last4: { - type: 'string', - }, - }, - type: 'object', - }, - id: { - type: 'string', - }, - method_name: { - type: 'string', - }, - state: { - type: 'string', - }, - type: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'paymentMethod', - ], - }, - }, - '/builds/{build_id}': { - get: { - operationId: 'getSiteBuild', - responses: { - 200: { - description: 'OK', - schema: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_id: { - type: 'string', - }, - done: { - type: 'boolean', - }, - error: { - type: 'string', - }, - id: { - type: 'string', - }, - sha: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'build', - ], - }, - parameters: [ - { - in: 'path', - name: 'build_id', - required: true, - type: 'string', - }, - ], - }, - '/builds/{build_id}/log': { - parameters: [ - { - in: 'path', - name: 'build_id', - required: true, - type: 'string', - }, - { - in: 'body', - name: 'msg', - required: true, - schema: { - properties: { - error: { - type: 'boolean', - }, - message: { - type: 'string', - }, - }, - type: 'object', - }, - }, - ], - post: { - operationId: 'updateSiteBuildLog', - responses: { - 204: { - description: 'No content', - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'buildLogMsg', - ], - }, - }, - '/builds/{build_id}/start': { - parameters: [ - { - in: 'path', - name: 'build_id', - required: true, - type: 'string', - }, - ], - post: { - operationId: 'notifyBuildStart', - responses: { - 204: { - description: 'No content', - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'build', - ], - }, - }, - '/deploy_keys': { - get: { - operationId: 'listDeployKeys', - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - public_key: { - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'deployKey', - ], - }, - post: { - consumes: [ - 'application/json', - ], - operationId: 'createDeployKey', - responses: { - 201: { - description: 'Created', - schema: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - public_key: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'deployKey', - ], - }, - }, - '/deploy_keys/{key_id}': { - delete: { - operationId: 'deleteDeployKey', - responses: { - 204: { - description: 'Not Content', - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'deployKey', - ], - }, - get: { - operationId: 'getDeployKey', - responses: { - 200: { - description: 'OK', - schema: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - public_key: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'deployKey', - ], - }, - parameters: [ - { - in: 'path', - name: 'key_id', - required: true, - type: 'string', - }, - ], - }, - '/deploys/{deploy_id}': { - get: { - operationId: 'getDeploy', - parameters: [ - { - in: 'path', - name: 'deploy_id', - required: true, - type: 'string', - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - properties: { - admin_url: { - type: 'string', - }, - branch: { - type: 'string', - }, - build_id: { - type: 'string', - }, - commit_ref: { - type: 'string', - }, - commit_url: { - type: 'string', - }, - context: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_ssl_url: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - draft: { - type: 'boolean', - }, - error_message: { - type: 'string', - }, - id: { - type: 'string', - }, - locked: { - type: 'boolean', - }, - name: { - type: 'string', - }, - published_at: { - format: 'dateTime', - type: 'string', - }, - required: { - items: { - type: 'string', - }, - type: 'array', - }, - required_functions: { - items: { - type: 'string', - }, - type: 'array', - }, - review_id: { - type: 'number', - }, - review_url: { - type: 'string', - }, - screenshot_url: { - type: 'string', - }, - site_capabilities: { - properties: { - large_media_enabled: { - type: 'boolean', - }, - }, - type: 'object', - }, - site_id: { - type: 'string', - }, - skipped: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - title: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'deploy', - ], - }, - }, - '/deploys/{deploy_id}/files/{path}': { - put: { - consumes: [ - 'application/octet-stream', - ], - operationId: 'uploadDeployFile', - parameters: [ - { - in: 'path', - name: 'deploy_id', - required: true, - type: 'string', - }, - { - in: 'path', - name: 'path', - required: true, - type: 'string', - }, - { - in: 'query', - name: 'size', - type: 'integer', - }, - { - in: 'body', - name: 'file_body', - required: true, - schema: { - format: 'binary', - type: 'string', - }, - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - properties: { - id: { - type: 'string', - }, - mime_type: { - type: 'string', - }, - path: { - type: 'string', - }, - sha: { - type: 'string', - }, - size: { - format: 'int64', - type: 'integer', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'file', - ], - }, - }, - '/deploys/{deploy_id}/functions/{name}': { - put: { - consumes: [ - 'application/octet-stream', - ], - operationId: 'uploadDeployFunction', - parameters: [ - { - in: 'path', - name: 'deploy_id', - required: true, - type: 'string', - }, - { - in: 'path', - name: 'name', - required: true, - type: 'string', - }, - { - in: 'query', - name: 'runtime', - type: 'string', - }, - { - in: 'query', - name: 'size', - type: 'integer', - }, - { - in: 'body', - name: 'file_body', - required: true, - schema: { - format: 'binary', - type: 'string', - }, - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - properties: { - id: { - type: 'string', - }, - name: { - type: 'string', - }, - sha: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'function', - ], - }, - }, - '/deploys/{deploy_id}/lock': { - post: { - operationId: 'lockDeploy', - parameters: [ - { - in: 'path', - name: 'deploy_id', - required: true, - type: 'string', - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - properties: { - admin_url: { - type: 'string', - }, - branch: { - type: 'string', - }, - build_id: { - type: 'string', - }, - commit_ref: { - type: 'string', - }, - commit_url: { - type: 'string', - }, - context: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_ssl_url: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - draft: { - type: 'boolean', - }, - error_message: { - type: 'string', - }, - id: { - type: 'string', - }, - locked: { - type: 'boolean', - }, - name: { - type: 'string', - }, - published_at: { - format: 'dateTime', - type: 'string', - }, - required: { - items: { - type: 'string', - }, - type: 'array', - }, - required_functions: { - items: { - type: 'string', - }, - type: 'array', - }, - review_id: { - type: 'number', - }, - review_url: { - type: 'string', - }, - screenshot_url: { - type: 'string', - }, - site_capabilities: { - properties: { - large_media_enabled: { - type: 'boolean', - }, - }, - type: 'object', - }, - site_id: { - type: 'string', - }, - skipped: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - title: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'deploy', - ], - }, - }, - '/deploys/{deploy_id}/unlock': { - post: { - operationId: 'unlockDeploy', - parameters: [ - { - in: 'path', - name: 'deploy_id', - required: true, - type: 'string', - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - properties: { - admin_url: { - type: 'string', - }, - branch: { - type: 'string', - }, - build_id: { - type: 'string', - }, - commit_ref: { - type: 'string', - }, - commit_url: { - type: 'string', - }, - context: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_ssl_url: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - draft: { - type: 'boolean', - }, - error_message: { - type: 'string', - }, - id: { - type: 'string', - }, - locked: { - type: 'boolean', - }, - name: { - type: 'string', - }, - published_at: { - format: 'dateTime', - type: 'string', - }, - required: { - items: { - type: 'string', - }, - type: 'array', - }, - required_functions: { - items: { - type: 'string', - }, - type: 'array', - }, - review_id: { - type: 'number', - }, - review_url: { - type: 'string', - }, - screenshot_url: { - type: 'string', - }, - site_capabilities: { - properties: { - large_media_enabled: { - type: 'boolean', - }, - }, - type: 'object', - }, - site_id: { - type: 'string', - }, - skipped: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - title: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'deploy', - ], - }, - }, - '/forms': { - get: { - operationId: 'listForms', - parameters: [ - { - in: 'query', - name: 'site_id', - type: 'string', - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - fields: { - items: { - type: 'object', - }, - type: 'array', - }, - id: { - type: 'string', - }, - name: { - type: 'string', - }, - paths: { - items: { - type: 'string', - }, - type: 'array', - }, - site_id: { - type: 'string', - }, - submission_count: { - format: 'int32', - type: 'integer', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'form', - ], - }, - }, - '/forms/{form_id}/submissions': { - get: { - operationId: 'listFormSubmissions', - parameters: [ - { - in: 'path', - name: 'form_id', - required: true, - type: 'string', - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - body: { - type: 'string', - }, - company: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - data: { - type: 'object', - }, - email: { - type: 'string', - }, - first_name: { - type: 'string', - }, - id: { - type: 'string', - }, - last_name: { - type: 'string', - }, - name: { - type: 'string', - }, - number: { - format: 'int32', - type: 'integer', - }, - site_url: { - type: 'string', - }, - summary: { - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'submission', - ], - }, - }, - '/hooks': { - get: { - operationId: 'listHooksBySiteId', - parameters: [ - { - in: 'query', - name: 'site_id', - required: true, - type: 'string', - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - data: { - type: 'object', - }, - disabled: { - type: 'boolean', - }, - event: { - type: 'string', - }, - id: { - type: 'string', - }, - site_id: { - type: 'string', - }, - type: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'hook', - ], - }, - post: { - consumes: [ - 'application/json', - ], - operationId: 'createHookBySiteId', - parameters: [ - { - in: 'query', - name: 'site_id', - required: true, - type: 'string', - }, - { - in: 'body', - name: 'hook', - required: true, - schema: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - data: { - type: 'object', - }, - disabled: { - type: 'boolean', - }, - event: { - type: 'string', - }, - id: { - type: 'string', - }, - site_id: { - type: 'string', - }, - type: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - }, - ], - responses: { - 201: { - description: 'OK', - schema: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - data: { - type: 'object', - }, - disabled: { - type: 'boolean', - }, - event: { - type: 'string', - }, - id: { - type: 'string', - }, - site_id: { - type: 'string', - }, - type: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'hook', - ], - }, - }, - '/hooks/types': { - get: { - operationId: 'listHookTypes', - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - events: { - items: { - type: 'string', - }, - type: 'array', - }, - fields: { - items: { - type: 'object', - }, - type: 'array', - }, - name: { - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'hookType', - ], - }, - }, - '/hooks/{hook_id}': { - delete: { - operationId: 'deleteHookBySiteId', - responses: { - 204: { - description: 'No content', - }, - }, - tags: [ - 'hook', - ], - }, - get: { - operationId: 'getHook', - responses: { - 200: { - description: 'OK', - schema: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - data: { - type: 'object', - }, - disabled: { - type: 'boolean', - }, - event: { - type: 'string', - }, - id: { - type: 'string', - }, - site_id: { - type: 'string', - }, - type: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'hook', - ], - }, - parameters: [ - { - in: 'path', - name: 'hook_id', - required: true, - type: 'string', - }, - ], - put: { - operationId: 'updateHook', - parameters: [ - { - in: 'body', - name: 'hook', - required: true, - schema: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - data: { - type: 'object', - }, - disabled: { - type: 'boolean', - }, - event: { - type: 'string', - }, - id: { - type: 'string', - }, - site_id: { - type: 'string', - }, - type: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - data: { - type: 'object', - }, - disabled: { - type: 'boolean', - }, - event: { - type: 'string', - }, - id: { - type: 'string', - }, - site_id: { - type: 'string', - }, - type: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'hook', - ], - }, - }, - '/hooks/{hook_id}/enable': { - parameters: [ - { - in: 'path', - name: 'hook_id', - required: true, - type: 'string', - }, - ], - post: { - operationId: 'enableHook', - responses: { - 200: { - description: 'OK', - schema: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - data: { - type: 'object', - }, - disabled: { - type: 'boolean', - }, - event: { - type: 'string', - }, - id: { - type: 'string', - }, - site_id: { - type: 'string', - }, - type: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'hook', - ], - }, - }, - '/oauth/tickets': { - post: { - operationId: 'createTicket', - parameters: [ - { - in: 'query', - name: 'client_id', - required: true, - type: 'string', - }, - ], - responses: { - 201: { - description: 'ok', - schema: { - properties: { - authorized: { - type: 'boolean', - }, - client_id: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'ticket', - ], - }, - }, - '/oauth/tickets/{ticket_id}': { - get: { - operationId: 'showTicket', - parameters: [ - { - in: 'path', - name: 'ticket_id', - required: true, - type: 'string', - }, - ], - responses: { - 200: { - description: 'ok', - schema: { - properties: { - authorized: { - type: 'boolean', - }, - client_id: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'ticket', - ], - }, - }, - '/oauth/tickets/{ticket_id}/exchange': { - post: { - operationId: 'exchangeTicket', - parameters: [ - { - in: 'path', - name: 'ticket_id', - required: true, - type: 'string', - }, - ], - responses: { - 201: { - description: 'ok', - schema: { - properties: { - access_token: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - user_email: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'accessToken', - ], - }, - }, - '/services/': { - get: { - operationId: 'getServices', - responses: { - 200: { - description: 'services', - schema: { - items: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - description: { - type: 'string', - }, - environments: { - items: { - type: 'string', - }, - type: 'array', - }, - events: { - items: { - type: 'object', - }, - type: 'array', - }, - icon: { - type: 'string', - }, - id: { - type: 'string', - }, - long_description: { - type: 'string', - }, - manifest_url: { - type: 'string', - }, - name: { - type: 'string', - }, - service_path: { - type: 'string', - }, - slug: { - type: 'string', - }, - tags: { - items: { - type: 'string', - }, - type: 'array', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'service', - ], - }, - parameters: [ - { - in: 'query', - name: 'search', - type: 'string', - }, - ], - }, - '/services/{addonName}': { - get: { - operationId: 'showService', - responses: { - 200: { - description: 'services', - schema: { - properties: { - auth_url: { - type: 'string', - }, - config: { - type: 'object', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - env: { - type: 'object', - }, - external_attributes: { - type: 'object', - }, - id: { - type: 'string', - }, - service_name: { - type: 'string', - }, - service_path: { - type: 'string', - }, - service_slug: { - type: 'string', - }, - snippets: { - items: { - type: 'object', - }, - type: 'array', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'service', - ], - }, - parameters: [ - { - in: 'path', - name: 'addonName', - required: true, - type: 'string', - }, - ], - }, - '/services/{addonName}/manifest': { - get: { - operationId: 'showServiceManifest', - responses: { - 201: { - description: 'retrieving from provider', - schema: { - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'service', - ], - }, - parameters: [ - { - in: 'path', - name: 'addonName', - required: true, - type: 'string', - }, - ], - }, - '/site/{site_id}/traffic_splits': { - get: { - operationId: 'getSplitTests', - responses: { - 200: { - description: 'split_tests', - schema: { - items: { - properties: { - active: { - type: 'boolean', - }, - branches: { - items: { - type: 'object', - }, - type: 'array', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - name: { - type: 'string', - }, - path: { - type: 'string', - }, - site_id: { - type: 'string', - }, - unpublished_at: { - format: 'dateTime', - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'splitTest', - ], - }, - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - ], - post: { - consumes: [ - 'application/json', - ], - operationId: 'createSplitTest', - parameters: [ - { - in: 'body', - name: 'branch_tests', - required: true, - schema: { - properties: { - branch_tests: { - type: 'object', - }, - }, - type: 'object', - }, - }, - ], - responses: { - 201: { - description: 'Created', - schema: { - properties: { - active: { - type: 'boolean', - }, - branches: { - items: { - type: 'object', - }, - type: 'array', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - name: { - type: 'string', - }, - path: { - type: 'string', - }, - site_id: { - type: 'string', - }, - unpublished_at: { - format: 'dateTime', - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'splitTest', - ], - }, - }, - '/site/{site_id}/traffic_splits/{split_test_id}': { - get: { - operationId: 'getSplitTest', - responses: { - 200: { - description: 'split_test', - schema: { - properties: { - active: { - type: 'boolean', - }, - branches: { - items: { - type: 'object', - }, - type: 'array', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - name: { - type: 'string', - }, - path: { - type: 'string', - }, - site_id: { - type: 'string', - }, - unpublished_at: { - format: 'dateTime', - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'splitTest', - ], - }, - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - { - in: 'path', - name: 'split_test_id', - required: true, - type: 'string', - }, - ], - put: { - consumes: [ - 'application/json', - ], - operationId: 'updateSplitTest', - parameters: [ - { - in: 'body', - name: 'branch_tests', - required: true, - schema: { - properties: { - branch_tests: { - type: 'object', - }, - }, - type: 'object', - }, - }, - ], - responses: { - 201: { - description: 'Created', - schema: { - properties: { - active: { - type: 'boolean', - }, - branches: { - items: { - type: 'object', - }, - type: 'array', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - name: { - type: 'string', - }, - path: { - type: 'string', - }, - site_id: { - type: 'string', - }, - unpublished_at: { - format: 'dateTime', - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'splitTest', - ], - }, - }, - '/site/{site_id}/traffic_splits/{split_test_id}/publish': { - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - { - in: 'path', - name: 'split_test_id', - required: true, - type: 'string', - }, - ], - post: { - operationId: 'enableSplitTest', - responses: { - 204: { - description: 'enable', - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'splitTest', - ], - }, - }, - '/site/{site_id}/traffic_splits/{split_test_id}/unpublish': { - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - { - in: 'path', - name: 'split_test_id', - required: true, - type: 'string', - }, - ], - post: { - operationId: 'disableSplitTest', - responses: { - 204: { - description: 'disabled', - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'splitTest', - ], - }, - }, - '/sites': { - get: { - operationId: 'listSites', - parameters: [ - { - in: 'query', - name: 'name', - type: 'string', - }, - { - enum: [ - 'all', - 'owner', - 'guest', - ], - in: 'query', - name: 'filter', - type: 'string', - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - account_name: { - type: 'string', - }, - account_slug: { - type: 'string', - }, - admin_url: { - type: 'string', - }, - build_image: { - type: 'string', - }, - build_settings: { - properties: { - allowed_branches: { - items: { - type: 'string', - }, - type: 'array', - }, - cmd: { - type: 'string', - }, - deploy_key_id: { - type: 'string', - }, - dir: { - type: 'string', - }, - env: { - additionalProperties: { - type: 'string', - }, - type: 'object', - }, - id: { - type: 'integer', - }, - installation_id: { - type: 'integer', - }, - private_logs: { - type: 'boolean', - }, - provider: { - type: 'string', - }, - public_repo: { - type: 'boolean', - }, - repo_branch: { - type: 'string', - }, - repo_path: { - type: 'string', - }, - repo_url: { - type: 'string', - }, - }, - type: 'object', - }, - capabilities: { - additionalProperties: { - type: 'object', - }, - type: 'object', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - custom_domain: { - type: 'string', - }, - default_hooks_data: { - properties: { - access_token: { - type: 'string', - }, - }, - type: 'object', - }, - deploy_hook: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - domain_aliases: { - items: { - type: 'string', - }, - type: 'array', - }, - force_ssl: { - type: 'boolean', - }, - git_provider: { - type: 'string', - }, - id: { - type: 'string', - }, - id_domain: { - type: 'string', - }, - managed_dns: { - type: 'boolean', - }, - name: { - type: 'string', - }, - notification_email: { - type: 'string', - }, - password: { - type: 'string', - }, - plan: { - type: 'string', - }, - processing_settings: { - properties: { - css: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - html: { - properties: { - pretty_urls: { - type: 'boolean', - }, - }, - type: 'object', - }, - images: { - properties: { - optimize: { - type: 'boolean', - }, - }, - type: 'object', - }, - js: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - skip: { - type: 'boolean', - }, - }, - type: 'object', - }, - published_deploy: { - properties: { - admin_url: { - type: 'string', - }, - branch: { - type: 'string', - }, - build_id: { - type: 'string', - }, - commit_ref: { - type: 'string', - }, - commit_url: { - type: 'string', - }, - context: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_ssl_url: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - draft: { - type: 'boolean', - }, - error_message: { - type: 'string', - }, - id: { - type: 'string', - }, - locked: { - type: 'boolean', - }, - name: { - type: 'string', - }, - published_at: { - format: 'dateTime', - type: 'string', - }, - required: { - items: { - type: 'string', - }, - type: 'array', - }, - required_functions: { - items: { - type: 'string', - }, - type: 'array', - }, - review_id: { - type: 'number', - }, - review_url: { - type: 'string', - }, - screenshot_url: { - type: 'string', - }, - site_capabilities: { - properties: { - large_media_enabled: { - type: 'boolean', - }, - }, - type: 'object', - }, - site_id: { - type: 'string', - }, - skipped: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - title: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - screenshot_url: { - type: 'string', - }, - session_id: { - type: 'string', - }, - ssl: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'site', - ], - }, - post: { - consumes: [ - 'application/json', - ], - operationId: 'createSite', - parameters: [ - { - in: 'body', - name: 'site', - required: true, - schema: { - allOf: [ - { - properties: { - account_name: { - type: 'string', - }, - account_slug: { - type: 'string', - }, - admin_url: { - type: 'string', - }, - build_image: { - type: 'string', - }, - build_settings: { - properties: { - allowed_branches: { - items: { - type: 'string', - }, - type: 'array', - }, - cmd: { - type: 'string', - }, - deploy_key_id: { - type: 'string', - }, - dir: { - type: 'string', - }, - env: { - additionalProperties: { - type: 'string', - }, - type: 'object', - }, - id: { - type: 'integer', - }, - installation_id: { - type: 'integer', - }, - private_logs: { - type: 'boolean', - }, - provider: { - type: 'string', - }, - public_repo: { - type: 'boolean', - }, - repo_branch: { - type: 'string', - }, - repo_path: { - type: 'string', - }, - repo_url: { - type: 'string', - }, - }, - type: 'object', - }, - capabilities: { - additionalProperties: { - type: 'object', - }, - type: 'object', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - custom_domain: { - type: 'string', - }, - default_hooks_data: { - properties: { - access_token: { - type: 'string', - }, - }, - type: 'object', - }, - deploy_hook: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - domain_aliases: { - items: { - type: 'string', - }, - type: 'array', - }, - force_ssl: { - type: 'boolean', - }, - git_provider: { - type: 'string', - }, - id: { - type: 'string', - }, - id_domain: { - type: 'string', - }, - managed_dns: { - type: 'boolean', - }, - name: { - type: 'string', - }, - notification_email: { - type: 'string', - }, - password: { - type: 'string', - }, - plan: { - type: 'string', - }, - processing_settings: { - properties: { - css: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - html: { - properties: { - pretty_urls: { - type: 'boolean', - }, - }, - type: 'object', - }, - images: { - properties: { - optimize: { - type: 'boolean', - }, - }, - type: 'object', - }, - js: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - skip: { - type: 'boolean', - }, - }, - type: 'object', - }, - published_deploy: { - properties: { - admin_url: { - type: 'string', - }, - branch: { - type: 'string', - }, - build_id: { - type: 'string', - }, - commit_ref: { - type: 'string', - }, - commit_url: { - type: 'string', - }, - context: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_ssl_url: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - draft: { - type: 'boolean', - }, - error_message: { - type: 'string', - }, - id: { - type: 'string', - }, - locked: { - type: 'boolean', - }, - name: { - type: 'string', - }, - published_at: { - format: 'dateTime', - type: 'string', - }, - required: { - items: { - type: 'string', - }, - type: 'array', - }, - required_functions: { - items: { - type: 'string', - }, - type: 'array', - }, - review_id: { - type: 'number', - }, - review_url: { - type: 'string', - }, - screenshot_url: { - type: 'string', - }, - site_capabilities: { - properties: { - large_media_enabled: { - type: 'boolean', - }, - }, - type: 'object', - }, - site_id: { - type: 'string', - }, - skipped: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - title: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - screenshot_url: { - type: 'string', - }, - session_id: { - type: 'string', - }, - ssl: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - { - properties: { - repo: { - properties: { - allowed_branches: { - items: { - type: 'string', - }, - type: 'array', - }, - cmd: { - type: 'string', - }, - deploy_key_id: { - type: 'string', - }, - dir: { - type: 'string', - }, - env: { - additionalProperties: { - type: 'string', - }, - type: 'object', - }, - id: { - type: 'integer', - }, - installation_id: { - type: 'integer', - }, - private_logs: { - type: 'boolean', - }, - provider: { - type: 'string', - }, - public_repo: { - type: 'boolean', - }, - repo_branch: { - type: 'string', - }, - repo_path: { - type: 'string', - }, - repo_url: { - type: 'string', - }, - }, - type: 'object', - }, - }, - }, - ], - }, - }, - { - in: 'query', - name: 'configure_dns', - type: 'boolean', - }, - ], - responses: { - 201: { - description: 'Created', - schema: { - properties: { - account_name: { - type: 'string', - }, - account_slug: { - type: 'string', - }, - admin_url: { - type: 'string', - }, - build_image: { - type: 'string', - }, - build_settings: { - properties: { - allowed_branches: { - items: { - type: 'string', - }, - type: 'array', - }, - cmd: { - type: 'string', - }, - deploy_key_id: { - type: 'string', - }, - dir: { - type: 'string', - }, - env: { - additionalProperties: { - type: 'string', - }, - type: 'object', - }, - id: { - type: 'integer', - }, - installation_id: { - type: 'integer', - }, - private_logs: { - type: 'boolean', - }, - provider: { - type: 'string', - }, - public_repo: { - type: 'boolean', - }, - repo_branch: { - type: 'string', - }, - repo_path: { - type: 'string', - }, - repo_url: { - type: 'string', - }, - }, - type: 'object', - }, - capabilities: { - additionalProperties: { - type: 'object', - }, - type: 'object', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - custom_domain: { - type: 'string', - }, - default_hooks_data: { - properties: { - access_token: { - type: 'string', - }, - }, - type: 'object', - }, - deploy_hook: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - domain_aliases: { - items: { - type: 'string', - }, - type: 'array', - }, - force_ssl: { - type: 'boolean', - }, - git_provider: { - type: 'string', - }, - id: { - type: 'string', - }, - id_domain: { - type: 'string', - }, - managed_dns: { - type: 'boolean', - }, - name: { - type: 'string', - }, - notification_email: { - type: 'string', - }, - password: { - type: 'string', - }, - plan: { - type: 'string', - }, - processing_settings: { - properties: { - css: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - html: { - properties: { - pretty_urls: { - type: 'boolean', - }, - }, - type: 'object', - }, - images: { - properties: { - optimize: { - type: 'boolean', - }, - }, - type: 'object', - }, - js: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - skip: { - type: 'boolean', - }, - }, - type: 'object', - }, - published_deploy: { - properties: { - admin_url: { - type: 'string', - }, - branch: { - type: 'string', - }, - build_id: { - type: 'string', - }, - commit_ref: { - type: 'string', - }, - commit_url: { - type: 'string', - }, - context: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_ssl_url: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - draft: { - type: 'boolean', - }, - error_message: { - type: 'string', - }, - id: { - type: 'string', - }, - locked: { - type: 'boolean', - }, - name: { - type: 'string', - }, - published_at: { - format: 'dateTime', - type: 'string', - }, - required: { - items: { - type: 'string', - }, - type: 'array', - }, - required_functions: { - items: { - type: 'string', - }, - type: 'array', - }, - review_id: { - type: 'number', - }, - review_url: { - type: 'string', - }, - screenshot_url: { - type: 'string', - }, - site_capabilities: { - properties: { - large_media_enabled: { - type: 'boolean', - }, - }, - type: 'object', - }, - site_id: { - type: 'string', - }, - skipped: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - title: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - screenshot_url: { - type: 'string', - }, - session_id: { - type: 'string', - }, - ssl: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'site', - ], - }, - }, - '/sites/{site_id}': { - delete: { - operationId: 'deleteSite', - responses: { - 204: { - description: 'Deleted', - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'site', - ], - }, - get: { - operationId: 'getSite', - responses: { - 200: { - description: 'OK', - schema: { - properties: { - account_name: { - type: 'string', - }, - account_slug: { - type: 'string', - }, - admin_url: { - type: 'string', - }, - build_image: { - type: 'string', - }, - build_settings: { - properties: { - allowed_branches: { - items: { - type: 'string', - }, - type: 'array', - }, - cmd: { - type: 'string', - }, - deploy_key_id: { - type: 'string', - }, - dir: { - type: 'string', - }, - env: { - additionalProperties: { - type: 'string', - }, - type: 'object', - }, - id: { - type: 'integer', - }, - installation_id: { - type: 'integer', - }, - private_logs: { - type: 'boolean', - }, - provider: { - type: 'string', - }, - public_repo: { - type: 'boolean', - }, - repo_branch: { - type: 'string', - }, - repo_path: { - type: 'string', - }, - repo_url: { - type: 'string', - }, - }, - type: 'object', - }, - capabilities: { - additionalProperties: { - type: 'object', - }, - type: 'object', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - custom_domain: { - type: 'string', - }, - default_hooks_data: { - properties: { - access_token: { - type: 'string', - }, - }, - type: 'object', - }, - deploy_hook: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - domain_aliases: { - items: { - type: 'string', - }, - type: 'array', - }, - force_ssl: { - type: 'boolean', - }, - git_provider: { - type: 'string', - }, - id: { - type: 'string', - }, - id_domain: { - type: 'string', - }, - managed_dns: { - type: 'boolean', - }, - name: { - type: 'string', - }, - notification_email: { - type: 'string', - }, - password: { - type: 'string', - }, - plan: { - type: 'string', - }, - processing_settings: { - properties: { - css: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - html: { - properties: { - pretty_urls: { - type: 'boolean', - }, - }, - type: 'object', - }, - images: { - properties: { - optimize: { - type: 'boolean', - }, - }, - type: 'object', - }, - js: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - skip: { - type: 'boolean', - }, - }, - type: 'object', - }, - published_deploy: { - properties: { - admin_url: { - type: 'string', - }, - branch: { - type: 'string', - }, - build_id: { - type: 'string', - }, - commit_ref: { - type: 'string', - }, - commit_url: { - type: 'string', - }, - context: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_ssl_url: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - draft: { - type: 'boolean', - }, - error_message: { - type: 'string', - }, - id: { - type: 'string', - }, - locked: { - type: 'boolean', - }, - name: { - type: 'string', - }, - published_at: { - format: 'dateTime', - type: 'string', - }, - required: { - items: { - type: 'string', - }, - type: 'array', - }, - required_functions: { - items: { - type: 'string', - }, - type: 'array', - }, - review_id: { - type: 'number', - }, - review_url: { - type: 'string', - }, - screenshot_url: { - type: 'string', - }, - site_capabilities: { - properties: { - large_media_enabled: { - type: 'boolean', - }, - }, - type: 'object', - }, - site_id: { - type: 'string', - }, - skipped: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - title: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - screenshot_url: { - type: 'string', - }, - session_id: { - type: 'string', - }, - ssl: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'site', - ], - }, - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - ], - patch: { - consumes: [ - 'application/json', - ], - operationId: 'updateSite', - parameters: [ - { - in: 'body', - name: 'site', - required: true, - schema: { - allOf: [ - { - properties: { - account_name: { - type: 'string', - }, - account_slug: { - type: 'string', - }, - admin_url: { - type: 'string', - }, - build_image: { - type: 'string', - }, - build_settings: { - properties: { - allowed_branches: { - items: { - type: 'string', - }, - type: 'array', - }, - cmd: { - type: 'string', - }, - deploy_key_id: { - type: 'string', - }, - dir: { - type: 'string', - }, - env: { - additionalProperties: { - type: 'string', - }, - type: 'object', - }, - id: { - type: 'integer', - }, - installation_id: { - type: 'integer', - }, - private_logs: { - type: 'boolean', - }, - provider: { - type: 'string', - }, - public_repo: { - type: 'boolean', - }, - repo_branch: { - type: 'string', - }, - repo_path: { - type: 'string', - }, - repo_url: { - type: 'string', - }, - }, - type: 'object', - }, - capabilities: { - additionalProperties: { - type: 'object', - }, - type: 'object', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - custom_domain: { - type: 'string', - }, - default_hooks_data: { - properties: { - access_token: { - type: 'string', - }, - }, - type: 'object', - }, - deploy_hook: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - domain_aliases: { - items: { - type: 'string', - }, - type: 'array', - }, - force_ssl: { - type: 'boolean', - }, - git_provider: { - type: 'string', - }, - id: { - type: 'string', - }, - id_domain: { - type: 'string', - }, - managed_dns: { - type: 'boolean', - }, - name: { - type: 'string', - }, - notification_email: { - type: 'string', - }, - password: { - type: 'string', - }, - plan: { - type: 'string', - }, - processing_settings: { - properties: { - css: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - html: { - properties: { - pretty_urls: { - type: 'boolean', - }, - }, - type: 'object', - }, - images: { - properties: { - optimize: { - type: 'boolean', - }, - }, - type: 'object', - }, - js: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - skip: { - type: 'boolean', - }, - }, - type: 'object', - }, - published_deploy: { - properties: { - admin_url: { - type: 'string', - }, - branch: { - type: 'string', - }, - build_id: { - type: 'string', - }, - commit_ref: { - type: 'string', - }, - commit_url: { - type: 'string', - }, - context: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_ssl_url: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - draft: { - type: 'boolean', - }, - error_message: { - type: 'string', - }, - id: { - type: 'string', - }, - locked: { - type: 'boolean', - }, - name: { - type: 'string', - }, - published_at: { - format: 'dateTime', - type: 'string', - }, - required: { - items: { - type: 'string', - }, - type: 'array', - }, - required_functions: { - items: { - type: 'string', - }, - type: 'array', - }, - review_id: { - type: 'number', - }, - review_url: { - type: 'string', - }, - screenshot_url: { - type: 'string', - }, - site_capabilities: { - properties: { - large_media_enabled: { - type: 'boolean', - }, - }, - type: 'object', - }, - site_id: { - type: 'string', - }, - skipped: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - title: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - screenshot_url: { - type: 'string', - }, - session_id: { - type: 'string', - }, - ssl: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - { - properties: { - repo: { - properties: { - allowed_branches: { - items: { - type: 'string', - }, - type: 'array', - }, - cmd: { - type: 'string', - }, - deploy_key_id: { - type: 'string', - }, - dir: { - type: 'string', - }, - env: { - additionalProperties: { - type: 'string', - }, - type: 'object', - }, - id: { - type: 'integer', - }, - installation_id: { - type: 'integer', - }, - private_logs: { - type: 'boolean', - }, - provider: { - type: 'string', - }, - public_repo: { - type: 'boolean', - }, - repo_branch: { - type: 'string', - }, - repo_path: { - type: 'string', - }, - repo_url: { - type: 'string', - }, - }, - type: 'object', - }, - }, - }, - ], - }, - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - properties: { - account_name: { - type: 'string', - }, - account_slug: { - type: 'string', - }, - admin_url: { - type: 'string', - }, - build_image: { - type: 'string', - }, - build_settings: { - properties: { - allowed_branches: { - items: { - type: 'string', - }, - type: 'array', - }, - cmd: { - type: 'string', - }, - deploy_key_id: { - type: 'string', - }, - dir: { - type: 'string', - }, - env: { - additionalProperties: { - type: 'string', - }, - type: 'object', - }, - id: { - type: 'integer', - }, - installation_id: { - type: 'integer', - }, - private_logs: { - type: 'boolean', - }, - provider: { - type: 'string', - }, - public_repo: { - type: 'boolean', - }, - repo_branch: { - type: 'string', - }, - repo_path: { - type: 'string', - }, - repo_url: { - type: 'string', - }, - }, - type: 'object', - }, - capabilities: { - additionalProperties: { - type: 'object', - }, - type: 'object', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - custom_domain: { - type: 'string', - }, - default_hooks_data: { - properties: { - access_token: { - type: 'string', - }, - }, - type: 'object', - }, - deploy_hook: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - domain_aliases: { - items: { - type: 'string', - }, - type: 'array', - }, - force_ssl: { - type: 'boolean', - }, - git_provider: { - type: 'string', - }, - id: { - type: 'string', - }, - id_domain: { - type: 'string', - }, - managed_dns: { - type: 'boolean', - }, - name: { - type: 'string', - }, - notification_email: { - type: 'string', - }, - password: { - type: 'string', - }, - plan: { - type: 'string', - }, - processing_settings: { - properties: { - css: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - html: { - properties: { - pretty_urls: { - type: 'boolean', - }, - }, - type: 'object', - }, - images: { - properties: { - optimize: { - type: 'boolean', - }, - }, - type: 'object', - }, - js: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - skip: { - type: 'boolean', - }, - }, - type: 'object', - }, - published_deploy: { - properties: { - admin_url: { - type: 'string', - }, - branch: { - type: 'string', - }, - build_id: { - type: 'string', - }, - commit_ref: { - type: 'string', - }, - commit_url: { - type: 'string', - }, - context: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_ssl_url: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - draft: { - type: 'boolean', - }, - error_message: { - type: 'string', - }, - id: { - type: 'string', - }, - locked: { - type: 'boolean', - }, - name: { - type: 'string', - }, - published_at: { - format: 'dateTime', - type: 'string', - }, - required: { - items: { - type: 'string', - }, - type: 'array', - }, - required_functions: { - items: { - type: 'string', - }, - type: 'array', - }, - review_id: { - type: 'number', - }, - review_url: { - type: 'string', - }, - screenshot_url: { - type: 'string', - }, - site_capabilities: { - properties: { - large_media_enabled: { - type: 'boolean', - }, - }, - type: 'object', - }, - site_id: { - type: 'string', - }, - skipped: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - title: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - screenshot_url: { - type: 'string', - }, - session_id: { - type: 'string', - }, - ssl: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'site', - ], - }, - }, - '/sites/{site_id}/assets': { - get: { - operationId: 'listSiteAssets', - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - content_type: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - creator_id: { - type: 'string', - }, - id: { - type: 'string', - }, - key: { - type: 'string', - }, - name: { - type: 'string', - }, - site_id: { - type: 'string', - }, - size: { - format: 'int64', - type: 'integer', - }, - state: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - visibility: { - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'asset', - ], - }, - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - ], - post: { - operationId: 'createSiteAsset', - parameters: [ - { - in: 'query', - name: 'name', - required: true, - type: 'string', - }, - { - format: 'int64', - in: 'query', - name: 'size', - required: true, - type: 'integer', - }, - { - in: 'query', - name: 'content_type', - required: true, - type: 'string', - }, - { - in: 'query', - name: 'visibility', - type: 'string', - }, - ], - responses: { - 201: { - description: 'Created', - schema: { - properties: { - asset: { - properties: { - content_type: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - creator_id: { - type: 'string', - }, - id: { - type: 'string', - }, - key: { - type: 'string', - }, - name: { - type: 'string', - }, - site_id: { - type: 'string', - }, - size: { - format: 'int64', - type: 'integer', - }, - state: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - visibility: { - type: 'string', - }, - }, - type: 'object', - }, - form: { - properties: { - fields: { - additionalProperties: { - type: 'string', - }, - type: 'object', - }, - url: { - type: 'string', - }, - }, - type: 'object', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'asset', - ], - }, - }, - '/sites/{site_id}/assets/{asset_id}': { - delete: { - operationId: 'deleteSiteAsset', - responses: { - 204: { - description: 'Deleted', - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'asset', - ], - }, - get: { - operationId: 'getSiteAssetInfo', - responses: { - 200: { - description: 'OK', - schema: { - properties: { - content_type: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - creator_id: { - type: 'string', - }, - id: { - type: 'string', - }, - key: { - type: 'string', - }, - name: { - type: 'string', - }, - site_id: { - type: 'string', - }, - size: { - format: 'int64', - type: 'integer', - }, - state: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - visibility: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'asset', - ], - }, - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - { - in: 'path', - name: 'asset_id', - required: true, - type: 'string', - }, - ], - put: { - operationId: 'updateSiteAsset', - parameters: [ - { - in: 'query', - name: 'state', - required: true, - type: 'string', - }, - ], - responses: { - 200: { - description: 'Updated', - schema: { - properties: { - content_type: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - creator_id: { - type: 'string', - }, - id: { - type: 'string', - }, - key: { - type: 'string', - }, - name: { - type: 'string', - }, - site_id: { - type: 'string', - }, - size: { - format: 'int64', - type: 'integer', - }, - state: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - visibility: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'asset', - ], - }, - }, - '/sites/{site_id}/assets/{asset_id}/public_signature': { - get: { - operationId: 'getSiteAssetPublicSignature', - responses: { - 200: { - description: 'OK', - schema: { - properties: { - url: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'assetPublicSignature', - ], - }, - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - { - in: 'path', - name: 'asset_id', - required: true, - type: 'string', - }, - ], - }, - '/sites/{site_id}/build_hooks': { - get: { - operationId: 'listSiteBuildHooks', - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - branch: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - site_id: { - type: 'string', - }, - title: { - type: 'string', - }, - url: { - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'buildHook', - ], - }, - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - ], - post: { - consumes: [ - 'application/json', - ], - operationId: 'createSiteBuildHook', - parameters: [ - { - in: 'body', - name: 'buildHook', - required: true, - schema: { - properties: { - branch: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - site_id: { - type: 'string', - }, - title: { - type: 'string', - }, - url: { - type: 'string', - }, - }, - type: 'object', - }, - }, - ], - responses: { - 201: { - description: 'Created', - schema: { - properties: { - branch: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - site_id: { - type: 'string', - }, - title: { - type: 'string', - }, - url: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'buildHook', - ], - }, - }, - '/sites/{site_id}/build_hooks/{id}': { - delete: { - operationId: 'deleteSiteBuildHook', - responses: { - 204: { - description: 'No content', - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'buildHook', - ], - }, - get: { - operationId: 'getSiteBuildHook', - responses: { - 200: { - description: 'OK', - schema: { - properties: { - branch: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - site_id: { - type: 'string', - }, - title: { - type: 'string', - }, - url: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'buildHook', - ], - }, - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - { - in: 'path', - name: 'id', - required: true, - type: 'string', - }, - ], - put: { - consumes: [ - 'application/json', - ], - operationId: 'updateSiteBuildHook', - parameters: [ - { - in: 'body', - name: 'buildHook', - required: true, - schema: { - properties: { - branch: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - id: { - type: 'string', - }, - site_id: { - type: 'string', - }, - title: { - type: 'string', - }, - url: { - type: 'string', - }, - }, - type: 'object', - }, - }, - ], - responses: { - 204: { - description: 'No content', - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'buildHook', - ], - }, - }, - '/sites/{site_id}/builds': { - get: { - operationId: 'listSiteBuilds', - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_id: { - type: 'string', - }, - done: { - type: 'boolean', - }, - error: { - type: 'string', - }, - id: { - type: 'string', - }, - sha: { - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'build', - ], - }, - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - ], - post: { - operationId: 'createSiteBuild', - responses: { - 200: { - description: 'OK', - schema: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_id: { - type: 'string', - }, - done: { - type: 'boolean', - }, - error: { - type: 'string', - }, - id: { - type: 'string', - }, - sha: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'build', - ], - }, - }, - '/sites/{site_id}/deployed-branches': { - get: { - operationId: 'listSiteDeployedBranches', - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - deploy_id: { - type: 'string', - }, - id: { - type: 'string', - }, - name: { - type: 'string', - }, - slug: { - type: 'string', - }, - ssl_url: { - type: 'string', - }, - url: { - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'deployedBranch', - ], - }, - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - ], - }, - '/sites/{site_id}/deploys': { - get: { - operationId: 'listSiteDeploys', - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - admin_url: { - type: 'string', - }, - branch: { - type: 'string', - }, - build_id: { - type: 'string', - }, - commit_ref: { - type: 'string', - }, - commit_url: { - type: 'string', - }, - context: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_ssl_url: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - draft: { - type: 'boolean', - }, - error_message: { - type: 'string', - }, - id: { - type: 'string', - }, - locked: { - type: 'boolean', - }, - name: { - type: 'string', - }, - published_at: { - format: 'dateTime', - type: 'string', - }, - required: { - items: { - type: 'string', - }, - type: 'array', - }, - required_functions: { - items: { - type: 'string', - }, - type: 'array', - }, - review_id: { - type: 'number', - }, - review_url: { - type: 'string', - }, - screenshot_url: { - type: 'string', - }, - site_capabilities: { - properties: { - large_media_enabled: { - type: 'boolean', - }, - }, - type: 'object', - }, - site_id: { - type: 'string', - }, - skipped: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - title: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'deploy', - ], - }, - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - ], - post: { - operationId: 'createSiteDeploy', - parameters: [ - { - in: 'query', - name: 'title', - type: 'string', - }, - { - in: 'body', - name: 'deploy', - required: true, - schema: { - properties: { - async: { - type: 'boolean', - }, - draft: { - type: 'boolean', - }, - files: { - type: 'object', - }, - functions: { - type: 'object', - }, - }, - type: 'object', - }, - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - properties: { - admin_url: { - type: 'string', - }, - branch: { - type: 'string', - }, - build_id: { - type: 'string', - }, - commit_ref: { - type: 'string', - }, - commit_url: { - type: 'string', - }, - context: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_ssl_url: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - draft: { - type: 'boolean', - }, - error_message: { - type: 'string', - }, - id: { - type: 'string', - }, - locked: { - type: 'boolean', - }, - name: { - type: 'string', - }, - published_at: { - format: 'dateTime', - type: 'string', - }, - required: { - items: { - type: 'string', - }, - type: 'array', - }, - required_functions: { - items: { - type: 'string', - }, - type: 'array', - }, - review_id: { - type: 'number', - }, - review_url: { - type: 'string', - }, - screenshot_url: { - type: 'string', - }, - site_capabilities: { - properties: { - large_media_enabled: { - type: 'boolean', - }, - }, - type: 'object', - }, - site_id: { - type: 'string', - }, - skipped: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - title: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'deploy', - ], - }, - }, - '/sites/{site_id}/deploys/{deploy_id}': { - get: { - operationId: 'getSiteDeploy', - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - { - in: 'path', - name: 'deploy_id', - required: true, - type: 'string', - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - properties: { - admin_url: { - type: 'string', - }, - branch: { - type: 'string', - }, - build_id: { - type: 'string', - }, - commit_ref: { - type: 'string', - }, - commit_url: { - type: 'string', - }, - context: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_ssl_url: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - draft: { - type: 'boolean', - }, - error_message: { - type: 'string', - }, - id: { - type: 'string', - }, - locked: { - type: 'boolean', - }, - name: { - type: 'string', - }, - published_at: { - format: 'dateTime', - type: 'string', - }, - required: { - items: { - type: 'string', - }, - type: 'array', - }, - required_functions: { - items: { - type: 'string', - }, - type: 'array', - }, - review_id: { - type: 'number', - }, - review_url: { - type: 'string', - }, - screenshot_url: { - type: 'string', - }, - site_capabilities: { - properties: { - large_media_enabled: { - type: 'boolean', - }, - }, - type: 'object', - }, - site_id: { - type: 'string', - }, - skipped: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - title: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'deploy', - ], - }, - put: { - operationId: 'updateSiteDeploy', - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - { - in: 'path', - name: 'deploy_id', - required: true, - type: 'string', - }, - { - in: 'body', - name: 'deploy', - required: true, - schema: { - properties: { - async: { - type: 'boolean', - }, - draft: { - type: 'boolean', - }, - files: { - type: 'object', - }, - functions: { - type: 'object', - }, - }, - type: 'object', - }, - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - properties: { - admin_url: { - type: 'string', - }, - branch: { - type: 'string', - }, - build_id: { - type: 'string', - }, - commit_ref: { - type: 'string', - }, - commit_url: { - type: 'string', - }, - context: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_ssl_url: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - draft: { - type: 'boolean', - }, - error_message: { - type: 'string', - }, - id: { - type: 'string', - }, - locked: { - type: 'boolean', - }, - name: { - type: 'string', - }, - published_at: { - format: 'dateTime', - type: 'string', - }, - required: { - items: { - type: 'string', - }, - type: 'array', - }, - required_functions: { - items: { - type: 'string', - }, - type: 'array', - }, - review_id: { - type: 'number', - }, - review_url: { - type: 'string', - }, - screenshot_url: { - type: 'string', - }, - site_capabilities: { - properties: { - large_media_enabled: { - type: 'boolean', - }, - }, - type: 'object', - }, - site_id: { - type: 'string', - }, - skipped: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - title: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'deploy', - ], - }, - }, - '/sites/{site_id}/deploys/{deploy_id}/cancel': { - post: { - operationId: 'cancelSiteDeploy', - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - { - in: 'path', - name: 'deploy_id', - required: true, - type: 'string', - }, - ], - responses: { - 201: { - description: 'Cancelled', - schema: { - properties: { - admin_url: { - type: 'string', - }, - branch: { - type: 'string', - }, - build_id: { - type: 'string', - }, - commit_ref: { - type: 'string', - }, - commit_url: { - type: 'string', - }, - context: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_ssl_url: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - draft: { - type: 'boolean', - }, - error_message: { - type: 'string', - }, - id: { - type: 'string', - }, - locked: { - type: 'boolean', - }, - name: { - type: 'string', - }, - published_at: { - format: 'dateTime', - type: 'string', - }, - required: { - items: { - type: 'string', - }, - type: 'array', - }, - required_functions: { - items: { - type: 'string', - }, - type: 'array', - }, - review_id: { - type: 'number', - }, - review_url: { - type: 'string', - }, - screenshot_url: { - type: 'string', - }, - site_capabilities: { - properties: { - large_media_enabled: { - type: 'boolean', - }, - }, - type: 'object', - }, - site_id: { - type: 'string', - }, - skipped: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - title: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'deploy', - ], - }, - }, - '/sites/{site_id}/deploys/{deploy_id}/restore': { - post: { - operationId: 'restoreSiteDeploy', - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - { - in: 'path', - name: 'deploy_id', - required: true, - type: 'string', - }, - ], - responses: { - 201: { - description: 'Created', - schema: { - properties: { - admin_url: { - type: 'string', - }, - branch: { - type: 'string', - }, - build_id: { - type: 'string', - }, - commit_ref: { - type: 'string', - }, - commit_url: { - type: 'string', - }, - context: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_ssl_url: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - draft: { - type: 'boolean', - }, - error_message: { - type: 'string', - }, - id: { - type: 'string', - }, - locked: { - type: 'boolean', - }, - name: { - type: 'string', - }, - published_at: { - format: 'dateTime', - type: 'string', - }, - required: { - items: { - type: 'string', - }, - type: 'array', - }, - required_functions: { - items: { - type: 'string', - }, - type: 'array', - }, - review_id: { - type: 'number', - }, - review_url: { - type: 'string', - }, - screenshot_url: { - type: 'string', - }, - site_capabilities: { - properties: { - large_media_enabled: { - type: 'boolean', - }, - }, - type: 'object', - }, - site_id: { - type: 'string', - }, - skipped: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - title: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'deploy', - ], - }, - }, - '/sites/{site_id}/dns': { - get: { - operationId: 'getDNSForSite', - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - id: { - type: 'string', - }, - name: { - type: 'string', - }, - records: { - items: { - properties: { - hostname: { - type: 'string', - }, - id: { - type: 'string', - }, - priority: { - format: 'int64', - type: 'integer', - }, - ttl: { - format: 'int64', - type: 'integer', - }, - type: { - type: 'string', - }, - value: { - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'dnsZone', - ], - }, - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - ], - put: { - operationId: 'configureDNSForSite', - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - id: { - type: 'string', - }, - name: { - type: 'string', - }, - records: { - items: { - properties: { - hostname: { - type: 'string', - }, - id: { - type: 'string', - }, - priority: { - format: 'int64', - type: 'integer', - }, - ttl: { - format: 'int64', - type: 'integer', - }, - type: { - type: 'string', - }, - value: { - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'dnsZone', - ], - }, - }, - '/sites/{site_id}/files': { - get: { - operationId: 'listSiteFiles', - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - id: { - type: 'string', - }, - mime_type: { - type: 'string', - }, - path: { - type: 'string', - }, - sha: { - type: 'string', - }, - size: { - format: 'int64', - type: 'integer', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'file', - ], - }, - }, - '/sites/{site_id}/files/{file_path}': { - get: { - operationId: 'getSiteFileByPathName', - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - { - in: 'path', - name: 'file_path', - required: true, - type: 'string', - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - properties: { - id: { - type: 'string', - }, - mime_type: { - type: 'string', - }, - path: { - type: 'string', - }, - sha: { - type: 'string', - }, - size: { - format: 'int64', - type: 'integer', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'file', - ], - }, - }, - '/sites/{site_id}/forms': { - get: { - operationId: 'listSiteForms', - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - fields: { - items: { - type: 'object', - }, - type: 'array', - }, - id: { - type: 'string', - }, - name: { - type: 'string', - }, - paths: { - items: { - type: 'string', - }, - type: 'array', - }, - site_id: { - type: 'string', - }, - submission_count: { - format: 'int32', - type: 'integer', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'form', - ], - }, - }, - '/sites/{site_id}/metadata': { - get: { - operationId: 'getSiteMetadata', - responses: { - 200: { - description: 'OK', - schema: { - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'metadata', - ], - }, - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - ], - put: { - operationId: 'updateSiteMetadata', - parameters: [ - { - in: 'body', - name: 'metadata', - required: true, - schema: { - type: 'object', - }, - }, - ], - responses: { - 204: { - description: 'No content', - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'metadata', - ], - }, - }, - '/sites/{site_id}/services/{addon}/instances': { - delete: { - operationId: 'deleteServiceInstance', - responses: { - 204: { - description: 'Deleted', - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'serviceInstance', - ], - }, - get: { - operationId: 'showServiceInstance', - responses: { - 201: { - description: 'Created', - schema: { - properties: { - auth_url: { - type: 'string', - }, - config: { - type: 'object', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - env: { - type: 'object', - }, - external_attributes: { - type: 'object', - }, - id: { - type: 'string', - }, - service_name: { - type: 'string', - }, - service_path: { - type: 'string', - }, - service_slug: { - type: 'string', - }, - snippets: { - items: { - type: 'object', - }, - type: 'array', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'serviceInstance', - ], - }, - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - { - in: 'path', - name: 'addon', - required: true, - type: 'string', - }, - ], - post: { - consumes: [ - 'application/json', - ], - operationId: 'createServiceInstance', - parameters: [ - { - in: 'body', - name: 'config', - required: true, - schema: { - type: 'object', - }, - }, - ], - responses: { - 201: { - description: 'Created', - schema: { - properties: { - auth_url: { - type: 'string', - }, - config: { - type: 'object', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - env: { - type: 'object', - }, - external_attributes: { - type: 'object', - }, - id: { - type: 'string', - }, - service_name: { - type: 'string', - }, - service_path: { - type: 'string', - }, - service_slug: { - type: 'string', - }, - snippets: { - items: { - type: 'object', - }, - type: 'array', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'serviceInstance', - ], - }, - put: { - consumes: [ - 'application/json', - ], - operationId: 'updateServiceInstance', - parameters: [ - { - in: 'body', - name: 'config', - required: true, - schema: { - type: 'object', - }, - }, - ], - responses: { - 204: { - description: 'Created', - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'serviceInstance', - ], - }, - }, - '/sites/{site_id}/snippets': { - get: { - operationId: 'listSiteSnippets', - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - general: { - type: 'string', - }, - general_position: { - type: 'string', - }, - goal: { - type: 'string', - }, - goal_position: { - type: 'string', - }, - id: { - format: 'int32', - type: 'integer', - }, - site_id: { - type: 'string', - }, - title: { - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'snippet', - ], - }, - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - ], - post: { - consumes: [ - 'application/json', - ], - operationId: 'createSiteSnippet', - parameters: [ - { - in: 'body', - name: 'snippet', - required: true, - schema: { - properties: { - general: { - type: 'string', - }, - general_position: { - type: 'string', - }, - goal: { - type: 'string', - }, - goal_position: { - type: 'string', - }, - id: { - format: 'int32', - type: 'integer', - }, - site_id: { - type: 'string', - }, - title: { - type: 'string', - }, - }, - type: 'object', - }, - }, - ], - responses: { - 201: { - description: 'OK', - schema: { - properties: { - general: { - type: 'string', - }, - general_position: { - type: 'string', - }, - goal: { - type: 'string', - }, - goal_position: { - type: 'string', - }, - id: { - format: 'int32', - type: 'integer', - }, - site_id: { - type: 'string', - }, - title: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'snippet', - ], - }, - }, - '/sites/{site_id}/snippets/{snippet_id}': { - delete: { - operationId: 'deleteSiteSnippet', - responses: { - 204: { - description: 'No content', - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'snippet', - ], - }, - get: { - operationId: 'getSiteSnippet', - responses: { - 200: { - description: 'OK', - schema: { - properties: { - general: { - type: 'string', - }, - general_position: { - type: 'string', - }, - goal: { - type: 'string', - }, - goal_position: { - type: 'string', - }, - id: { - format: 'int32', - type: 'integer', - }, - site_id: { - type: 'string', - }, - title: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'snippet', - ], - }, - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - { - in: 'path', - name: 'snippet_id', - required: true, - type: 'string', - }, - ], - put: { - consumes: [ - 'application/json', - ], - operationId: 'updateSiteSnippet', - parameters: [ - { - in: 'body', - name: 'snippet', - required: true, - schema: { - properties: { - general: { - type: 'string', - }, - general_position: { - type: 'string', - }, - goal: { - type: 'string', - }, - goal_position: { - type: 'string', - }, - id: { - format: 'int32', - type: 'integer', - }, - site_id: { - type: 'string', - }, - title: { - type: 'string', - }, - }, - type: 'object', - }, - }, - ], - responses: { - 204: { - description: 'No content', - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'snippet', - ], - }, - }, - '/sites/{site_id}/ssl': { - get: { - operationId: 'showSiteTLSCertificate', - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - domains: { - items: { - type: 'string', - }, - type: 'array', - }, - expires_at: { - format: 'dateTime', - type: 'string', - }, - state: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'sniCertificate', - ], - }, - post: { - operationId: 'provisionSiteTLSCertificate', - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - { - in: 'query', - name: 'certificate', - type: 'string', - }, - { - in: 'query', - name: 'key', - type: 'string', - }, - { - in: 'query', - name: 'ca_certificates', - type: 'string', - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - properties: { - created_at: { - format: 'dateTime', - type: 'string', - }, - domains: { - items: { - type: 'string', - }, - type: 'array', - }, - expires_at: { - format: 'dateTime', - type: 'string', - }, - state: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'sniCertificate', - ], - }, - }, - '/sites/{site_id}/submissions': { - get: { - operationId: 'listSiteSubmissions', - parameters: [ - { - in: 'path', - name: 'site_id', - required: true, - type: 'string', - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - body: { - type: 'string', - }, - company: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - data: { - type: 'object', - }, - email: { - type: 'string', - }, - first_name: { - type: 'string', - }, - id: { - type: 'string', - }, - last_name: { - type: 'string', - }, - name: { - type: 'string', - }, - number: { - format: 'int32', - type: 'integer', - }, - site_url: { - type: 'string', - }, - summary: { - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'submission', - ], - }, - }, - '/submissions/{submission_id}': { - delete: { - operationId: 'deleteSubmission', - responses: { - 204: { - description: 'Deleted', - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'submission', - ], - }, - get: { - operationId: 'listFormSubmission', - parameters: [ - { - in: 'query', - name: 'query', - type: 'string', - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - body: { - type: 'string', - }, - company: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - data: { - type: 'object', - }, - email: { - type: 'string', - }, - first_name: { - type: 'string', - }, - id: { - type: 'string', - }, - last_name: { - type: 'string', - }, - name: { - type: 'string', - }, - number: { - format: 'int32', - type: 'integer', - }, - site_url: { - type: 'string', - }, - summary: { - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'submission', - ], - }, - parameters: [ - { - in: 'path', - name: 'submission_id', - required: true, - type: 'string', - }, - ], - }, - '/user': { - get: { - operationId: 'getCurrentUser', - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - affiliate_id: { - type: 'string', - }, - avatar_url: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - email: { - type: 'string', - }, - full_name: { - type: 'string', - }, - id: { - type: 'string', - }, - last_login: { - format: 'dateTime', - type: 'string', - }, - login_providers: { - items: { - type: 'string', - }, - type: 'array', - }, - onboarding_progress: { - properties: { - slides: { - type: 'string', - }, - }, - type: 'object', - }, - site_count: { - format: 'int64', - type: 'integer', - }, - support_priority: { - format: 'int64', - type: 'integer', - }, - uid: { - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'user', - ], - }, - }, - '/{account_slug}/members': { - get: { - operationId: 'listMembersForAccount', - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - avatar: { - type: 'string', - }, - email: { - type: 'string', - }, - full_name: { - type: 'string', - }, - id: { - type: 'string', - }, - role: { - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'member', - ], - }, - parameters: [ - { - in: 'path', - name: 'account_slug', - required: true, - type: 'string', - }, - ], - post: { - operationId: 'addMemberToAccount', - parameters: [ - { - enum: [ - 'Owner', - 'Collaborator', - 'Controller', - ], - in: 'query', - name: 'role', - type: 'string', - }, - { - in: 'query', - name: 'email', - required: true, - type: 'string', - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - avatar: { - type: 'string', - }, - email: { - type: 'string', - }, - full_name: { - type: 'string', - }, - id: { - type: 'string', - }, - role: { - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'member', - ], - }, - }, - '/{account_slug}/sites': { - get: { - operationId: 'listSitesForAccount', - parameters: [ - { - in: 'query', - name: 'name', - type: 'string', - }, - { - in: 'path', - name: 'account_slug', - required: true, - type: 'string', - }, - ], - responses: { - 200: { - description: 'OK', - schema: { - items: { - properties: { - account_name: { - type: 'string', - }, - account_slug: { - type: 'string', - }, - admin_url: { - type: 'string', - }, - build_image: { - type: 'string', - }, - build_settings: { - properties: { - allowed_branches: { - items: { - type: 'string', - }, - type: 'array', - }, - cmd: { - type: 'string', - }, - deploy_key_id: { - type: 'string', - }, - dir: { - type: 'string', - }, - env: { - additionalProperties: { - type: 'string', - }, - type: 'object', - }, - id: { - type: 'integer', - }, - installation_id: { - type: 'integer', - }, - private_logs: { - type: 'boolean', - }, - provider: { - type: 'string', - }, - public_repo: { - type: 'boolean', - }, - repo_branch: { - type: 'string', - }, - repo_path: { - type: 'string', - }, - repo_url: { - type: 'string', - }, - }, - type: 'object', - }, - capabilities: { - additionalProperties: { - type: 'object', - }, - type: 'object', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - custom_domain: { - type: 'string', - }, - default_hooks_data: { - properties: { - access_token: { - type: 'string', - }, - }, - type: 'object', - }, - deploy_hook: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - domain_aliases: { - items: { - type: 'string', - }, - type: 'array', - }, - force_ssl: { - type: 'boolean', - }, - git_provider: { - type: 'string', - }, - id: { - type: 'string', - }, - id_domain: { - type: 'string', - }, - managed_dns: { - type: 'boolean', - }, - name: { - type: 'string', - }, - notification_email: { - type: 'string', - }, - password: { - type: 'string', - }, - plan: { - type: 'string', - }, - processing_settings: { - properties: { - css: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - html: { - properties: { - pretty_urls: { - type: 'boolean', - }, - }, - type: 'object', - }, - images: { - properties: { - optimize: { - type: 'boolean', - }, - }, - type: 'object', - }, - js: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - skip: { - type: 'boolean', - }, - }, - type: 'object', - }, - published_deploy: { - properties: { - admin_url: { - type: 'string', - }, - branch: { - type: 'string', - }, - build_id: { - type: 'string', - }, - commit_ref: { - type: 'string', - }, - commit_url: { - type: 'string', - }, - context: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_ssl_url: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - draft: { - type: 'boolean', - }, - error_message: { - type: 'string', - }, - id: { - type: 'string', - }, - locked: { - type: 'boolean', - }, - name: { - type: 'string', - }, - published_at: { - format: 'dateTime', - type: 'string', - }, - required: { - items: { - type: 'string', - }, - type: 'array', - }, - required_functions: { - items: { - type: 'string', - }, - type: 'array', - }, - review_id: { - type: 'number', - }, - review_url: { - type: 'string', - }, - screenshot_url: { - type: 'string', - }, - site_capabilities: { - properties: { - large_media_enabled: { - type: 'boolean', - }, - }, - type: 'object', - }, - site_id: { - type: 'string', - }, - skipped: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - title: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - screenshot_url: { - type: 'string', - }, - session_id: { - type: 'string', - }, - ssl: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - type: 'array', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'site', - ], - }, - post: { - consumes: [ - 'application/json', - ], - operationId: 'createSiteInTeam', - parameters: [ - { - in: 'body', - name: 'site', - schema: { - allOf: [ - { - properties: { - account_name: { - type: 'string', - }, - account_slug: { - type: 'string', - }, - admin_url: { - type: 'string', - }, - build_image: { - type: 'string', - }, - build_settings: { - properties: { - allowed_branches: { - items: { - type: 'string', - }, - type: 'array', - }, - cmd: { - type: 'string', - }, - deploy_key_id: { - type: 'string', - }, - dir: { - type: 'string', - }, - env: { - additionalProperties: { - type: 'string', - }, - type: 'object', - }, - id: { - type: 'integer', - }, - installation_id: { - type: 'integer', - }, - private_logs: { - type: 'boolean', - }, - provider: { - type: 'string', - }, - public_repo: { - type: 'boolean', - }, - repo_branch: { - type: 'string', - }, - repo_path: { - type: 'string', - }, - repo_url: { - type: 'string', - }, - }, - type: 'object', - }, - capabilities: { - additionalProperties: { - type: 'object', - }, - type: 'object', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - custom_domain: { - type: 'string', - }, - default_hooks_data: { - properties: { - access_token: { - type: 'string', - }, - }, - type: 'object', - }, - deploy_hook: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - domain_aliases: { - items: { - type: 'string', - }, - type: 'array', - }, - force_ssl: { - type: 'boolean', - }, - git_provider: { - type: 'string', - }, - id: { - type: 'string', - }, - id_domain: { - type: 'string', - }, - managed_dns: { - type: 'boolean', - }, - name: { - type: 'string', - }, - notification_email: { - type: 'string', - }, - password: { - type: 'string', - }, - plan: { - type: 'string', - }, - processing_settings: { - properties: { - css: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - html: { - properties: { - pretty_urls: { - type: 'boolean', - }, - }, - type: 'object', - }, - images: { - properties: { - optimize: { - type: 'boolean', - }, - }, - type: 'object', - }, - js: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - skip: { - type: 'boolean', - }, - }, - type: 'object', - }, - published_deploy: { - properties: { - admin_url: { - type: 'string', - }, - branch: { - type: 'string', - }, - build_id: { - type: 'string', - }, - commit_ref: { - type: 'string', - }, - commit_url: { - type: 'string', - }, - context: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_ssl_url: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - draft: { - type: 'boolean', - }, - error_message: { - type: 'string', - }, - id: { - type: 'string', - }, - locked: { - type: 'boolean', - }, - name: { - type: 'string', - }, - published_at: { - format: 'dateTime', - type: 'string', - }, - required: { - items: { - type: 'string', - }, - type: 'array', - }, - required_functions: { - items: { - type: 'string', - }, - type: 'array', - }, - review_id: { - type: 'number', - }, - review_url: { - type: 'string', - }, - screenshot_url: { - type: 'string', - }, - site_capabilities: { - properties: { - large_media_enabled: { - type: 'boolean', - }, - }, - type: 'object', - }, - site_id: { - type: 'string', - }, - skipped: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - title: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - screenshot_url: { - type: 'string', - }, - session_id: { - type: 'string', - }, - ssl: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - { - properties: { - repo: { - properties: { - allowed_branches: { - items: { - type: 'string', - }, - type: 'array', - }, - cmd: { - type: 'string', - }, - deploy_key_id: { - type: 'string', - }, - dir: { - type: 'string', - }, - env: { - additionalProperties: { - type: 'string', - }, - type: 'object', - }, - id: { - type: 'integer', - }, - installation_id: { - type: 'integer', - }, - private_logs: { - type: 'boolean', - }, - provider: { - type: 'string', - }, - public_repo: { - type: 'boolean', - }, - repo_branch: { - type: 'string', - }, - repo_path: { - type: 'string', - }, - repo_url: { - type: 'string', - }, - }, - type: 'object', - }, - }, - }, - ], - }, - }, - { - in: 'query', - name: 'configure_dns', - type: 'boolean', - }, - { - in: 'path', - name: 'account_slug', - required: true, - type: 'string', - }, - ], - responses: { - 201: { - description: 'Created', - schema: { - properties: { - account_name: { - type: 'string', - }, - account_slug: { - type: 'string', - }, - admin_url: { - type: 'string', - }, - build_image: { - type: 'string', - }, - build_settings: { - properties: { - allowed_branches: { - items: { - type: 'string', - }, - type: 'array', - }, - cmd: { - type: 'string', - }, - deploy_key_id: { - type: 'string', - }, - dir: { - type: 'string', - }, - env: { - additionalProperties: { - type: 'string', - }, - type: 'object', - }, - id: { - type: 'integer', - }, - installation_id: { - type: 'integer', - }, - private_logs: { - type: 'boolean', - }, - provider: { - type: 'string', - }, - public_repo: { - type: 'boolean', - }, - repo_branch: { - type: 'string', - }, - repo_path: { - type: 'string', - }, - repo_url: { - type: 'string', - }, - }, - type: 'object', - }, - capabilities: { - additionalProperties: { - type: 'object', - }, - type: 'object', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - custom_domain: { - type: 'string', - }, - default_hooks_data: { - properties: { - access_token: { - type: 'string', - }, - }, - type: 'object', - }, - deploy_hook: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - domain_aliases: { - items: { - type: 'string', - }, - type: 'array', - }, - force_ssl: { - type: 'boolean', - }, - git_provider: { - type: 'string', - }, - id: { - type: 'string', - }, - id_domain: { - type: 'string', - }, - managed_dns: { - type: 'boolean', - }, - name: { - type: 'string', - }, - notification_email: { - type: 'string', - }, - password: { - type: 'string', - }, - plan: { - type: 'string', - }, - processing_settings: { - properties: { - css: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - html: { - properties: { - pretty_urls: { - type: 'boolean', - }, - }, - type: 'object', - }, - images: { - properties: { - optimize: { - type: 'boolean', - }, - }, - type: 'object', - }, - js: { - properties: { - bundle: { - type: 'boolean', - }, - minify: { - type: 'boolean', - }, - }, - type: 'object', - }, - skip: { - type: 'boolean', - }, - }, - type: 'object', - }, - published_deploy: { - properties: { - admin_url: { - type: 'string', - }, - branch: { - type: 'string', - }, - build_id: { - type: 'string', - }, - commit_ref: { - type: 'string', - }, - commit_url: { - type: 'string', - }, - context: { - type: 'string', - }, - created_at: { - format: 'dateTime', - type: 'string', - }, - deploy_ssl_url: { - type: 'string', - }, - deploy_url: { - type: 'string', - }, - draft: { - type: 'boolean', - }, - error_message: { - type: 'string', - }, - id: { - type: 'string', - }, - locked: { - type: 'boolean', - }, - name: { - type: 'string', - }, - published_at: { - format: 'dateTime', - type: 'string', - }, - required: { - items: { - type: 'string', - }, - type: 'array', - }, - required_functions: { - items: { - type: 'string', - }, - type: 'array', - }, - review_id: { - type: 'number', - }, - review_url: { - type: 'string', - }, - screenshot_url: { - type: 'string', - }, - site_capabilities: { - properties: { - large_media_enabled: { - type: 'boolean', - }, - }, - type: 'object', - }, - site_id: { - type: 'string', - }, - skipped: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - title: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - screenshot_url: { - type: 'string', - }, - session_id: { - type: 'string', - }, - ssl: { - type: 'boolean', - }, - ssl_url: { - type: 'string', - }, - state: { - type: 'string', - }, - updated_at: { - format: 'dateTime', - type: 'string', - }, - url: { - type: 'string', - }, - user_id: { - type: 'string', - }, - }, - type: 'object', - }, - }, - default: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - tags: [ - 'site', - ], - }, - }, - }, - produces: [ - 'application/json', - ], - responses: { - error: { - description: 'error', - schema: { - properties: { - code: { - format: 'int64', - type: 'integer', - }, - message: { - type: 'string', - 'x-nullable': false, - }, - }, - required: [ - 'message', - ], - type: 'object', - }, - }, - }, - schemes: [ - 'https', - ], - security: [ - { - netlifyAuth: [], - }, - ], - securityDefinitions: { - netlifyAuth: { - authorizationUrl: 'https://app.netlify.com/authorize', - flow: 'implicit', - type: 'oauth2', - }, - }, - swagger: '2.0', - tags: [ - { - name: 'ticket', - 'x-displayName': 'Ticket', - }, - { - name: 'accessToken', - 'x-displayName': 'Access token', - }, - { - name: 'user', - 'x-displayName': 'User', - }, - { - name: 'accountMembership', - 'x-displayName': 'Accounts', - }, - { - name: 'member', - 'x-displayName': 'Member', - }, - { - name: 'accountType', - 'x-displayName': 'Access type', - }, - { - name: 'paymentMethod', - 'x-displayName': 'Payment method', - }, - { - name: 'auditLog', - 'x-displayName': 'Audit log', - }, - { - name: 'site', - 'x-displayName': 'Site', - }, - { - name: 'file', - 'x-displayName': 'File', - }, - { - name: 'metadata', - 'x-displayName': 'Metadata', - }, - { - name: 'snippet', - 'x-displayName': 'Snippet', - }, - { - name: 'dnsZone', - 'x-displayName': 'DNS zone', - }, - { - name: 'sniCertificate', - 'x-displayName': 'SNI certificate', - }, - { - name: 'deploy', - 'x-displayName': 'Deploy', - }, - { - name: 'deployedBranch', - 'x-displayName': 'Deployed branch', - }, - { - name: 'deployKey', - 'x-displayName': 'Deploy key', - }, - { - name: 'build', - 'x-displayName': 'Build', - }, - { - name: 'buildLogMsg', - 'x-displayName': 'Build log message', - }, - { - name: 'hook', - 'x-displayName': 'Hook', - }, - { - name: 'hookType', - 'x-displayName': 'Hook type', - }, - { - name: 'buildHook', - 'x-displayName': 'Build hook', - }, - { - name: 'service', - 'x-displayName': 'Service', - }, - { - name: 'serviceInstance', - 'x-displayName': 'Service instance', - }, - { - name: 'function', - 'x-displayName': 'Function', - }, - { - name: 'form', - 'x-displayName': 'Form', - }, - { - name: 'submission', - 'x-displayName': 'Form submission', - }, - { - name: 'splitTest', - 'x-displayName': 'Split test', - }, - { - name: 'asset', - 'x-displayName': 'Asset', - }, - { - name: 'assetPublicSignature', - 'x-displayName': 'Asset public signature', - }, - ], - 'x-tagGroups': [ - { - name: 'OAuth', - tags: [ - 'ticket', - 'accessToken', - ], - }, - { - name: 'User accounts', - tags: [ - 'user', - 'accountMembership', - 'member', - 'accountType', - 'paymentMethod', - 'auditLog', - ], - }, - { - name: 'Site', - tags: [ - 'site', - 'file', - 'metadata', - 'snippet', - ], - }, - { - name: 'Domain names', - tags: [ - 'dnsZone', - 'sniCertificate', - ], - }, - { - name: 'Deploys', - tags: [ - 'deploy', - 'deployedBranch', - 'deployKey', - ], - }, - { - name: 'Builds', - tags: [ - 'build', - 'buildLogMsg', - ], - }, - { - name: 'Webhooks and notifications', - tags: [ - 'hook', - 'hookType', - 'buildHook', - ], - }, - { - name: 'Services', - tags: [ - 'service', - 'serviceInstance', - ], - }, - { - name: 'Functions', - tags: [ - 'function', - ], - }, - { - name: 'Forms', - tags: [ - 'form', - 'submission', - ], - }, - { - name: 'Split tests', - tags: [ - 'splitTest', - ], - }, - { - name: 'Large media', - tags: [ - 'asset', - 'assetPublicSignature', - ], - }, - ], - } diff --git a/src/convert.test.js.snap b/src/convert.test.js.snap deleted file mode 100644 index fd55cbc2476193b906fbf40d437238eb98c62ba9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72415 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