Bearer token authentication used by the Versori Platform. External consumers must provide an API key, however
internal consumers must provide a JWT id_token issued by our IdP.
{"docsConfig":{"theme":"almond","$schema":"https://mintlify.com/docs.json","name":"Versori User Documentation","colors":{"primary":"#6EB0D8","light":"#6EB0D8","dark":"#6EB0D8"},"logo":{"light":"https://mintcdn.com/versori/PWNCaMS5nGiiWoff/logo/versori-logo-wordmark.svg?fit=max\u0026auto=format\u0026n=PWNCaMS5nGiiWoff\u0026q=85\u0026s=be10819ca139d000a6edaef35334c0af","dark":"https://mintcdn.com/versori/PWNCaMS5nGiiWoff/logo/versori-logo-wordmark-white.svg?fit=max\u0026auto=format\u0026n=PWNCaMS5nGiiWoff\u0026q=85\u0026s=1568a99dadb6fa8dfc83009eba877497"},"favicon":"https://mintcdn.com/versori/PWNCaMS5nGiiWoff/logo/versori-logo.svg?fit=max\u0026auto=format\u0026n=PWNCaMS5nGiiWoff\u0026q=85\u0026s=1765cb3e4363526dd85cf7c576a8f68f","api":{"openapi":["openapi/connect-api-v1.yaml","openapi/embedded-api-v1.yaml","openapi/organisations-api-v1.yaml","openapi/switchboard-api-v1alpha1.yaml","openapi/platform-api.yaml"],"playground":{"display":"interactive","proxy":false},"mdx":{"auth":{"method":"bearer","name":"Authorization"},"server":["https://platform.versori.com/api"]}},"background":{"decoration":"gradient","color":{"light":"#ffffff","dark":"#151919"}},"search":{"prompt":"Search the docs..."},"interaction":{"drilldown":false},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"versori","hasAudioNarration":false,"actualSubdomain":"versori","customDomains":["docs.versori.com"],"gitSource":{"type":"github","owner":"versori","repo":"user-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad09d9413e5d952c6a7407c","collectionId":"314b2d25-0631-41c2-aeae-fdf8104d942c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad09d9413e5d952c6a7407c"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ad09d9413e5d952c6a7407c","clientVersion":"0.0.3964","searchFilterCounts":[{"language":"default","tag":"API Reference","count":525},{"language":"default","tag":"Platform API","count":115},{"language":"default","tag":"Switchboard API","count":82},{"language":"default","tag":"Endpoints","count":62},{"language":"default","tag":"Connect API","count":41},{"language":"default","tag":"Organisations API","count":38},{"language":"default","tag":"Documentation","count":32},{"language":"default","tag":"projects","count":32},{"language":"default","tag":"User Guide","count":31},{"language":"default","tag":"CLI","count":27}]},"assistantConfig":{},"hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"#content-area.max-w-xl{max-width:64rem}.whitespace-pre-line{white-space:unset}"}],"page":{"pagePath":"legacy/api-reference/connect-api/protocol-http/import-http-connector","slug":"/legacy/api-reference/connect-api/protocol-http/import-http-connector","pageMetadata":{"openapi":"post /o/{organisation_id}/protocols/http/import","title":"Import HTTP Connector","description":"ImportHTTPConnector imports a Connector from another format such as OpenAPI or Postman Collections. \n\nThe Connector will be created in a draft state and will need to be published before it can be used in a live\nboard.\n","href":"/legacy/api-reference/connect-api/protocol-http/import-http-connector"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"ImportHTTPConnector imports a Connector from another format such as OpenAPI or Postman Collections.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"The Connector will be created in a draft state and will need to be published before it can be used in a live\\nboard.\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"openapi":"post /o/{organisation_id}/protocols/http/import","title":"Import HTTP Connector","description":"ImportHTTPConnector imports a Connector from another format such as OpenAPI or Postman Collections. \n\nThe Connector will be created in a draft state and will need to be published before it can be used in a live\nboard.\n","href":"/legacy/api-reference/connect-api/protocol-http/import-http-connector"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"ImportHTTPConnector","summary":"Import HTTP Connector","description":"ImportHTTPConnector imports a Connector from another format such as OpenAPI or Postman Collections. \n\nThe Connector will be created in a draft state and will need to be published before it can be used in a live\nboard.\n","tags":["protocol-http","connectors"],"requestBody":"60274f22-db1d-463c-9bfd-bf90f315331b","responses":{"201":"920c719d-0c93-4f96-864d-083d4daad66c","400":"7f4a19a1-813a-46dc-ae44-a7ef609876e2","default":"d8466216-9d32-4b29-9096-d59efa1ca457"},"method":"post","type":"path","servers":["15af2137-29e8-4203-913d-e5b373454d88","d1d2310d-627f-46be-9b4e-0962be725a4c","7bbb09d1-2fab-44f8-9548-48168541d583"],"security":["a5c87805-afa5-4ba1-b4e0-a0d413fecc9a","90e1a60e-e08b-40b7-a4c8-9b79646be550"],"path":"/o/{organisation_id}/protocols/http/import","baseUrlOptions":["https://platform.versori.com/api/connect/v1","https://platform-staging.versori.com/api/connect/v1","http://localhost:8082"],"title":"Import HTTP Connector","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","disableProxy":true},"dependencies":{"parameters":{"c02ac826-abd7-4530-b8b5-1d7d9bc623d1":{"name":"organisation_id","in":"path","required":true,"schema":{"type":"string","format":"ulid","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"","typeLabel":"string\u003culid>"}}},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"The file to be imported.","uniqueKey":"file","typeLabel":"file"},"metadata":{"description":"ImportHTTPConnectorMetadata defines the metadata part of the multipart/form-data request\nwhen importing a Connector from another format.\n","type":"object","properties":{"format":{"type":"string","description":"The format of the file to be imported.\n\n- `openapi` - OpenAPI 3.x specification, we may include support for 2.x in the future.\n","enum":["openapi"],"isRequired":true,"uniqueKey":"metadata.format","typeLabel":"enum\u003cstring>"}},"required":["format"],"uniqueKey":"metadata","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"file":"\u003cstring>"}}},"exampleType":"generated"},"application/json":{"schema":{"description":"HTTPConnectorFromURLCreate is the body for creating an HTTP connector using a URL to download the OpenAPI schema.\n","type":"object","properties":{"schemaURL":{"type":"string","description":"The URL to download the OpenAPI schema from.","x-go-name":"SchemaURL","isRequired":true,"uniqueKey":"schemaURL","typeLabel":"string"},"format":{"type":"string","description":"The format of the file to be imported.\n\n- `openapi` - OpenAPI 3.x specification, we may include support for 2.x in the future.\n","enum":["openapi"],"isRequired":true,"uniqueKey":"format","typeLabel":"enum\u003cstring>"},"filetype":{"type":"string","description":"The content-type of the OpenAPI schema. 'json' or 'yaml'.","x-go-name":"Filetype","x-go-type-skip-optional-pointer":true,"uniqueKey":"filetype","typeLabel":"string"}},"required":["schemaURL","format"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"schemaURL":"\u003cstring>","format":"openapi","filetype":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"920c719d-0c93-4f96-864d-083d4daad66c":{"description":"Created","content":{"application/json":{"schema":{"description":"ImportHTTPConnectorResult defines the result of importing a Connector from an external\nformat, such as OpenAPI.\n","type":"object","properties":{"connector":{"type":"object","description":"HTTPConnector represents a connector to an external system over HTTP.","required":["protocol","public","baseUrl","id","organisationId","name","authSchemeConfigs","connections","versions","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the Connector.","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"connector.id","typeLabel":"string\u003culid>"},"organisationId":{"type":"string","format":"ulid","description":"OrganisationID is the unique identifier of the Organisation that owns the Connector.","x-go-name":"OrganisationID","isRequired":true,"uniqueKey":"connector.organisationId","typeLabel":"string\u003culid>"},"name":{"type":"string","description":"Name is the user-provided name of the Connector","isRequired":true,"uniqueKey":"connector.name","typeLabel":"string"},"public":{"type":"boolean","isRequired":true,"uniqueKey":"connector.public","typeLabel":"boolean"},"protocol":{"type":"string","description":"ProtocolType denotes the set of all valid connector types.","enum":["http","bigquery"],"const":"http","isRequired":true,"uniqueKey":"connector.protocol","typeLabel":"enum\u003cstring>"},"authSchemeConfigs":{"type":"array","items":{"oneOf":[{"type":"object","description":"AuthSchemeConfig defines how a Connector implements the AuthScheme in order to fulfil its \nauthentication requirements. This is purely the configuration and not the actual credential \nwhich is used to authenticate. The credential uses this configuration to determine how to \nauthenticate.\n","required":["schemeType","id","description"],"properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the AuthSchemeConfig, this is generated by the client and\nonly requires to be unique amongst the elements of the array in which is it contained.\n","x-go-name":"ID","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.0.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same \nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.0.description","typeLabel":"string"},"schemeType":{"type":"string","const":"none","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.0.schemeType","typeLabel":"string"},"validationMessages":{"description":"ValidationMessages is a list of messages which are generated when the AuthSchemeConfig \nis validated. This is typically used to provide feedback to the user when they are \ncreating or updating the AuthSchemeConfig.\n\nThis field will be ignored if sent to the API.\n","type":"array","items":{"description":"Message is a message to be displayed to the user to indicate some information about the\npreceding request.\n","type":"object","properties":{"text":{"description":"Text contains the text of the message.","type":"string","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.0.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.0.validationMessages.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"detail":{"description":"Details contains additional information about the message. This is intended to be used\nto provide more information about the message, such as a list of validation errors.\n","type":"array","items":{"type":"string","uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.0.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.0.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.0.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.0.validationMessages","typeLabel":"object[]"}},"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","description":"AuthSchemeConfig defines how a Connector implements the AuthScheme in order to fulfil its \nauthentication requirements. This is purely the configuration and not the actual credential \nwhich is used to authenticate. The credential uses this configuration to determine how to \nauthenticate.\n","required":["schemeType","name","in","id","description"],"properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the AuthSchemeConfig, this is generated by the client and\nonly requires to be unique amongst the elements of the array in which is it contained.\n","x-go-name":"ID","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.1.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same \nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.1.description","typeLabel":"string"},"schemeType":{"type":"string","const":"api-key","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.1.schemeType","typeLabel":"string"},"name":{"type":"string","description":"Name is the query parameter/header/cookie name which will be used to send the API key.","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.1.name","typeLabel":"string"},"in":{"description":"AuthSchemeConfigAPIKeyIn defines the location of the API key in the request.\n","type":"string","enum":["query","header","cookie"],"isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.1.in","typeLabel":"enum\u003cstring>"},"validationMessages":{"description":"ValidationMessages is a list of messages which are generated when the AuthSchemeConfig \nis validated. This is typically used to provide feedback to the user when they are \ncreating or updating the AuthSchemeConfig.\n\nThis field will be ignored if sent to the API.\n","type":"array","items":{"description":"Message is a message to be displayed to the user to indicate some information about the\npreceding request.\n","type":"object","properties":{"text":{"description":"Text contains the text of the message.","type":"string","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.1.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.1.validationMessages.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"detail":{"description":"Details contains additional information about the message. This is intended to be used\nto provide more information about the message, such as a list of validation errors.\n","type":"array","items":{"type":"string","uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.1.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.1.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.1.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.1.validationMessages","typeLabel":"object[]"}},"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.1","typeLabel":"object"},{"type":"object","description":"AuthSchemeConfig defines how a Connector implements the AuthScheme in order to fulfil its \nauthentication requirements. This is purely the configuration and not the actual credential \nwhich is used to authenticate. The credential uses this configuration to determine how to \nauthenticate.\n","required":["schemeType","id","description"],"properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the AuthSchemeConfig, this is generated by the client and\nonly requires to be unique amongst the elements of the array in which is it contained.\n","x-go-name":"ID","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.2.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same \nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.2.description","typeLabel":"string"},"schemeType":{"type":"string","const":"basic-auth","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.2.schemeType","typeLabel":"string"},"validationMessages":{"description":"ValidationMessages is a list of messages which are generated when the AuthSchemeConfig \nis validated. This is typically used to provide feedback to the user when they are \ncreating or updating the AuthSchemeConfig.\n\nThis field will be ignored if sent to the API.\n","type":"array","items":{"description":"Message is a message to be displayed to the user to indicate some information about the\npreceding request.\n","type":"object","properties":{"text":{"description":"Text contains the text of the message.","type":"string","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.2.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.2.validationMessages.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"detail":{"description":"Details contains additional information about the message. This is intended to be used\nto provide more information about the message, such as a list of validation errors.\n","type":"array","items":{"type":"string","uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.2.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.2.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.2.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.2.validationMessages","typeLabel":"object[]"}},"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.2","typeLabel":"object"},{"type":"object","description":"AuthSchemeConfig defines how a Connector implements the AuthScheme in order to fulfil its \nauthentication requirements. This is purely the configuration and not the actual credential \nwhich is used to authenticate. The credential uses this configuration to determine how to \nauthenticate.\n","required":["schemeType","authorizeUrl","tokenUrl","scopes","defaultScopes","grant","id","description"],"properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the AuthSchemeConfig, this is generated by the client and\nonly requires to be unique amongst the elements of the array in which is it contained.\n","x-go-name":"ID","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same \nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.description","typeLabel":"string"},"schemeType":{"type":"string","const":"oauth2","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.schemeType","typeLabel":"string"},"authorizeUrl":{"type":"string","format":"uri","description":"AuthorizeURL is the URL which the user will be redirected to in order to authorize \nthe application.\n","x-go-name":"AuthorizeURL","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.authorizeUrl","typeLabel":"string\u003curi>"},"tokenUrl":{"type":"string","format":"uri","description":"TokenURL is the URL which the application will use to issue an access token.\n","x-go-name":"TokenURL","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.tokenUrl","typeLabel":"string\u003curi>"},"scopes":{"description":"Scopes is the list of all OAuth2 scopes which the application supports. The user \nwill be allowed to choose which scopes to request when configuring the Connection.\n","type":"array","items":{"description":"OAuth2Scope represents a single scope which can be requested by an OAuth2 application.\n","type":"object","properties":{"name":{"type":"string","description":"Name is the name of the scope as determined by the application to which this Connector \nis connecting to.\n","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.scopes.items.[INDEX].name","typeLabel":"string"},"description":{"type":"string","description":"Description describes the scope in human-friendly terminology. This text may be \ndisplayed to users via a help tooltip or similar.\n","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.scopes.items.[INDEX].description","typeLabel":"string"}},"required":["name"],"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.scopes.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.scopes","typeLabel":"object[]"},"defaultScopes":{"description":"DefaultScopes is the list of scopes which will be requested by default when the user\nconnects the Connector. This is useful for Connectors which require a specific set \nof scopes to function correctly.\n","type":"array","items":{"type":"string","uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.defaultScopes.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.defaultScopes","typeLabel":"string[]"},"grant":{"oneOf":[{"type":"object","description":"AuthSchemeConfigOAuth2GrantAuthorizationCode contains grant-specific configuration for the \n`authorization_code` grant type.\n\nHow the API manages changes to this configuration is as follows:\n\n- CredentialID and OrganisationID are not set, a new credential is created containing the\n sensitive information and the non-sensitive information is updated in the database. \n- Otherwise, both the credential and the database are updated using JSON Merge Patch, with\n undefined properties not being updated.\n- Any other permutation will result in a 400 Bad Request.\n","required":["grantType"],"properties":{"grantType":{"type":"string","const":"authorization_code","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.grant.oneOf.0.grantType","typeLabel":"string"},"credentialId":{"description":"CredentialID is the unique identifier of the Credential which contains the client ID and\nclient secret to be used as part of the `password` flow.\n","type":"string","format":"ulid","x-go-name":"CredentialID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.grant.oneOf.0.credentialId","typeLabel":"string\u003culid>"},"organisationId":{"description":"OrganisationID is the unique identifier of the Organisation that owns the Credential. \nThis can be different to the Connector's OrganisationID since some may be imported from \nVersori's public library.\n","type":"string","format":"ulid","x-go-name":"OrganisationID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.grant.oneOf.0.organisationId","typeLabel":"string\u003culid>"},"clientId":{"description":"ClientID is the OAuth 2.0 client's identifier. This is not a sensitive value and may be \npresented to the user in plaintext.\n","type":"string","x-go-name":"ClientID","uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.grant.oneOf.0.clientId","typeLabel":"string"},"clientSecret":{"description":"ClientSecret is the OAuth 2.0 client's secret. This is a sensitive value and will not be\ndisplayed to the user.\n","type":"string","uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.grant.oneOf.0.clientSecret","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.grant.oneOf.0","typeLabel":"object"},{"type":"object","required":["grantType"],"properties":{"grantType":{"type":"string","const":"client_credentials","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.grant.oneOf.1.grantType","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.grant.oneOf.1","typeLabel":"object"},{"type":"object","description":"AuthSchemeConfigOAuth2GrantPassword contains grant-specific configuration for the `password` \ngrant type.\n\nHow the API manages changes to this configuration is as follows:\n\n- CredentialID and OrganisationID are not set, a new credential is created containing the\n sensitive information and the non-sensitive information is created/updated in the \n database. \n- Otherwise, both the credential and the database are updated using JSON Merge Patch.\n- Any other permutation will result in a 400 Bad Request.\n","required":["grantType"],"properties":{"grantType":{"type":"string","const":"password","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.grant.oneOf.2.grantType","typeLabel":"string"},"credentialId":{"description":"CredentialID is the unique identifier of the Credential which contains the client ID and\nclient secret to be used as part of the `password` flow.\n","type":"string","format":"ulid","x-go-name":"CredentialID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.grant.oneOf.2.credentialId","typeLabel":"string\u003culid>"},"organisationId":{"description":"OrganisationID is the unique identifier of the Organisation that owns the Credential. This can be different\nto the Connector's OrganisationID since some may be imported from Versori's public library.\n","type":"string","format":"ulid","x-go-name":"OrganisationID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.grant.oneOf.2.organisationId","typeLabel":"string\u003culid>"},"clientId":{"description":"ClientID is the OAuth 2.0 client's identifier. This is not a sensitive value and may be presented to the \nuser in plaintext.\n","type":"string","x-go-name":"ClientID","uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.grant.oneOf.2.clientId","typeLabel":"string"},"clientSecret":{"description":"ClientSecret is the OAuth 2.0 client's secret. This is a sensitive value and will not be displayed to the \nuser. It may be populated when updating the Credential.\n","type":"string","uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.grant.oneOf.2.clientSecret","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.grant.oneOf.2","typeLabel":"object"}],"isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.grant","typeLabel":"object"},"validationMessages":{"description":"ValidationMessages is a list of messages which are generated when the AuthSchemeConfig \nis validated. This is typically used to provide feedback to the user when they are \ncreating or updating the AuthSchemeConfig.\n\nThis field will be ignored if sent to the API.\n","type":"array","items":{"description":"Message is a message to be displayed to the user to indicate some information about the\npreceding request.\n","type":"object","properties":{"text":{"description":"Text contains the text of the message.","type":"string","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.validationMessages.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"detail":{"description":"Details contains additional information about the message. This is intended to be used\nto provide more information about the message, such as a list of validation errors.\n","type":"array","items":{"type":"string","uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.validationMessages","typeLabel":"object[]"},"additionalAuthorizeParams":{"description":"AdditionalAuthorizeParams is a URL-encoded query string which should be attached to \nthe AuthorizeURL when the user is redirected to the OAuth 2.0 authorization \nendpoint.\n\nThis value is only used by the UI to drive the default values when connecting, the \nAPI to `InitialiseOAuth2Connection` can be provided a different value if required.\n","type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.additionalAuthorizeParams","typeLabel":"string"},"additionalTokenParams":{"description":"AdditionalTokenParams is a URL-encoded string following the \n`application/x-www-form-urlencoded` mime-type, which can be used to pass additional\nparameters to the OAuth 2.0 token endpoint within the request body.\n","type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.additionalTokenParams","typeLabel":"string"},"mtlsEnabled":{"type":"boolean","description":"MTLSEnabled is a flag which determines whether the Connector should use Mutual TLS \n(mTLS) to authenticate with the OAuth 2.0 token endpoint. This is useful for \nConnectors which require a higher level of security.\n","x-go-name":"MTLSEnabled","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.mtlsEnabled","typeLabel":"boolean"},"mtlsCredentialId":{"type":"string","description":"MTLSCredentialID is the unique identifier of the Credential which contains the \nclient certificate and private key to be used as part of the mTLS connection. \n\nThis may be unset when creating a connection, in which case if `mtlsEnabled` is \ntrue, then the API will find an associated AuthSchemeConfigCertificate and link \nthem automatically.\n","x-go-name":"MTLSCredentialID","uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3.mtlsCredentialId","typeLabel":"string"}},"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.3","typeLabel":"object"},{"type":"object","description":"AuthSchemeConfig defines how a Connector implements the AuthScheme in order to fulfil its \nauthentication requirements. This is purely the configuration and not the actual credential \nwhich is used to authenticate. The credential uses this configuration to determine how to \nauthenticate.\n","required":["schemeType","name","in","algorithm","digestInputs","id","description"],"properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the AuthSchemeConfig, this is generated by the client and\nonly requires to be unique amongst the elements of the array in which is it contained.\n","x-go-name":"ID","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.4.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same \nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.4.description","typeLabel":"string"},"schemeType":{"type":"string","const":"hmac","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.4.schemeType","typeLabel":"string"},"name":{"type":"string","description":"Name is the query parameter/header/cookie name which will be used to send the signature.","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.4.name","typeLabel":"string"},"in":{"description":"AuthSchemeConfigHMACIn defines where the signature should be set on requests.","type":"string","enum":["query","header","cookie"],"isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.4.in","typeLabel":"enum\u003cstring>"},"algorithm":{"description":"AuthSchemeConfigHMACAlgorithm defines the hashing algorithm to use when generating the HMAC signature.","type":"string","enum":["sha1","sha256","sha512"],"isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.4.algorithm","typeLabel":"enum\u003cstring>"},"digestInputs":{"description":"AuthSchemeConfigHMACInputs defines what parts of a HTTP request are consumed to generate the HMAC signature. Some systems\nonly generate the signature from the request body, others may include the URL. The order of this array\ndefines the order in which the input is fed into the hashing function.\n","type":"array","items":{"type":"string","enum":["body","url"],"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.4.digestInputs.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.4.digestInputs","typeLabel":"enum\u003cstring>[]"},"validationMessages":{"description":"ValidationMessages is a list of messages which are generated when the AuthSchemeConfig \nis validated. This is typically used to provide feedback to the user when they are \ncreating or updating the AuthSchemeConfig.\n\nThis field will be ignored if sent to the API.\n","type":"array","items":{"description":"Message is a message to be displayed to the user to indicate some information about the\npreceding request.\n","type":"object","properties":{"text":{"description":"Text contains the text of the message.","type":"string","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.4.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.4.validationMessages.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"detail":{"description":"Details contains additional information about the message. This is intended to be used\nto provide more information about the message, such as a list of validation errors.\n","type":"array","items":{"type":"string","uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.4.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.4.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.4.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.4.validationMessages","typeLabel":"object[]"}},"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.4","typeLabel":"object"},{"type":"object","description":"AuthSchemeConfig defines how a Connector implements the AuthScheme in order to fulfil its \nauthentication requirements. This is purely the configuration and not the actual credential \nwhich is used to authenticate. The credential uses this configuration to determine how to \nauthenticate.\n","required":["schemeType","id","description"],"properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the AuthSchemeConfig, this is generated by the client and\nonly requires to be unique amongst the elements of the array in which is it contained.\n","x-go-name":"ID","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.5.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same \nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.5.description","typeLabel":"string"},"schemeType":{"type":"string","const":"certificate","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.5.schemeType","typeLabel":"string"},"validationMessages":{"description":"ValidationMessages is a list of messages which are generated when the AuthSchemeConfig \nis validated. This is typically used to provide feedback to the user when they are \ncreating or updating the AuthSchemeConfig.\n\nThis field will be ignored if sent to the API.\n","type":"array","items":{"description":"Message is a message to be displayed to the user to indicate some information about the\npreceding request.\n","type":"object","properties":{"text":{"description":"Text contains the text of the message.","type":"string","isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.5.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.5.validationMessages.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"detail":{"description":"Details contains additional information about the message. This is intended to be used\nto provide more information about the message, such as a list of validation errors.\n","type":"array","items":{"type":"string","uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.5.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.5.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.5.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.5.validationMessages","typeLabel":"object[]"}},"uniqueKey":"connector.authSchemeConfigs.items.[INDEX].oneOf.5","typeLabel":"object"}],"uniqueKey":"connector.authSchemeConfigs.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"connector.authSchemeConfigs","typeLabel":"object[]"},"connections":{"type":"array","description":"Connections is a list of all the connections this Connector has.","items":{"description":"Connection defines the Action and Trigger credentials for the owning Connector, and additional variables\nwhich can be used to customize the Connector in a particular connection.\n","type":"object","properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the Connection. Typically this is only used internally and most (if not all)\npublic-facing APIs will use the `name` in combination with the Connector's `id` instead.\n","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].id","typeLabel":"string\u003culid>"},"name":{"type":"string","description":"Name is the name of the Connection. This must be unique within the owning Connector.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].name","typeLabel":"string"},"credentials":{"description":"ConnectionCredentials defines the Action and Trigger credentials for the owning Connector. If multiple\ncredentials are defined for each type, they are applied to the request in the order they are defined. This is to\nenable Connectors which require both a user session token and an API key to be provided in the request.\n","type":"object","properties":{"action":{"type":"array","items":{"description":"ConnectionCredential contains the a Credential and the AuthSchemeConfig to define how the Credential should be used against the Connection's Connector.","type":"object","properties":{"id":{"type":"string","format":"ulid","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].id","typeLabel":"string\u003culid>"},"authSchemeConfig":{"oneOf":[{"type":"object","description":"AuthSchemeConfig defines how a Connector implements the AuthScheme in order to fulfil its \nauthentication requirements. This is purely the configuration and not the actual credential \nwhich is used to authenticate. The credential uses this configuration to determine how to \nauthenticate.\n","required":["schemeType","id","description"],"properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the AuthSchemeConfig, this is generated by the client and\nonly requires to be unique amongst the elements of the array in which is it contained.\n","x-go-name":"ID","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.0.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same \nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.0.description","typeLabel":"string"},"schemeType":{"type":"string","const":"none","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.0.schemeType","typeLabel":"string"},"validationMessages":{"description":"ValidationMessages is a list of messages which are generated when the AuthSchemeConfig \nis validated. This is typically used to provide feedback to the user when they are \ncreating or updating the AuthSchemeConfig.\n\nThis field will be ignored if sent to the API.\n","type":"array","items":{"description":"Message is a message to be displayed to the user to indicate some information about the\npreceding request.\n","type":"object","properties":{"text":{"description":"Text contains the text of the message.","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.0.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.0.validationMessages.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"detail":{"description":"Details contains additional information about the message. This is intended to be used\nto provide more information about the message, such as a list of validation errors.\n","type":"array","items":{"type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.0.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.0.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.0.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.0.validationMessages","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.0","typeLabel":"object"},{"type":"object","description":"AuthSchemeConfig defines how a Connector implements the AuthScheme in order to fulfil its \nauthentication requirements. This is purely the configuration and not the actual credential \nwhich is used to authenticate. The credential uses this configuration to determine how to \nauthenticate.\n","required":["schemeType","name","in","id","description"],"properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the AuthSchemeConfig, this is generated by the client and\nonly requires to be unique amongst the elements of the array in which is it contained.\n","x-go-name":"ID","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.1.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same \nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.1.description","typeLabel":"string"},"schemeType":{"type":"string","const":"api-key","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.1.schemeType","typeLabel":"string"},"name":{"type":"string","description":"Name is the query parameter/header/cookie name which will be used to send the API key.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.1.name","typeLabel":"string"},"in":{"description":"AuthSchemeConfigAPIKeyIn defines the location of the API key in the request.\n","type":"string","enum":["query","header","cookie"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.1.in","typeLabel":"enum\u003cstring>"},"validationMessages":{"description":"ValidationMessages is a list of messages which are generated when the AuthSchemeConfig \nis validated. This is typically used to provide feedback to the user when they are \ncreating or updating the AuthSchemeConfig.\n\nThis field will be ignored if sent to the API.\n","type":"array","items":{"description":"Message is a message to be displayed to the user to indicate some information about the\npreceding request.\n","type":"object","properties":{"text":{"description":"Text contains the text of the message.","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.1.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.1.validationMessages.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"detail":{"description":"Details contains additional information about the message. This is intended to be used\nto provide more information about the message, such as a list of validation errors.\n","type":"array","items":{"type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.1.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.1.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.1.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.1.validationMessages","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.1","typeLabel":"object"},{"type":"object","description":"AuthSchemeConfig defines how a Connector implements the AuthScheme in order to fulfil its \nauthentication requirements. This is purely the configuration and not the actual credential \nwhich is used to authenticate. The credential uses this configuration to determine how to \nauthenticate.\n","required":["schemeType","id","description"],"properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the AuthSchemeConfig, this is generated by the client and\nonly requires to be unique amongst the elements of the array in which is it contained.\n","x-go-name":"ID","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.2.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same \nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.2.description","typeLabel":"string"},"schemeType":{"type":"string","const":"basic-auth","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.2.schemeType","typeLabel":"string"},"validationMessages":{"description":"ValidationMessages is a list of messages which are generated when the AuthSchemeConfig \nis validated. This is typically used to provide feedback to the user when they are \ncreating or updating the AuthSchemeConfig.\n\nThis field will be ignored if sent to the API.\n","type":"array","items":{"description":"Message is a message to be displayed to the user to indicate some information about the\npreceding request.\n","type":"object","properties":{"text":{"description":"Text contains the text of the message.","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.2.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.2.validationMessages.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"detail":{"description":"Details contains additional information about the message. This is intended to be used\nto provide more information about the message, such as a list of validation errors.\n","type":"array","items":{"type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.2.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.2.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.2.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.2.validationMessages","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.2","typeLabel":"object"},{"type":"object","description":"AuthSchemeConfig defines how a Connector implements the AuthScheme in order to fulfil its \nauthentication requirements. This is purely the configuration and not the actual credential \nwhich is used to authenticate. The credential uses this configuration to determine how to \nauthenticate.\n","required":["schemeType","authorizeUrl","tokenUrl","scopes","defaultScopes","grant","id","description"],"properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the AuthSchemeConfig, this is generated by the client and\nonly requires to be unique amongst the elements of the array in which is it contained.\n","x-go-name":"ID","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same \nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.description","typeLabel":"string"},"schemeType":{"type":"string","const":"oauth2","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.schemeType","typeLabel":"string"},"authorizeUrl":{"type":"string","format":"uri","description":"AuthorizeURL is the URL which the user will be redirected to in order to authorize \nthe application.\n","x-go-name":"AuthorizeURL","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.authorizeUrl","typeLabel":"string\u003curi>"},"tokenUrl":{"type":"string","format":"uri","description":"TokenURL is the URL which the application will use to issue an access token.\n","x-go-name":"TokenURL","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.tokenUrl","typeLabel":"string\u003curi>"},"scopes":{"description":"Scopes is the list of all OAuth2 scopes which the application supports. The user \nwill be allowed to choose which scopes to request when configuring the Connection.\n","type":"array","items":{"description":"OAuth2Scope represents a single scope which can be requested by an OAuth2 application.\n","type":"object","properties":{"name":{"type":"string","description":"Name is the name of the scope as determined by the application to which this Connector \nis connecting to.\n","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.scopes.items.[INDEX].name","typeLabel":"string"},"description":{"type":"string","description":"Description describes the scope in human-friendly terminology. This text may be \ndisplayed to users via a help tooltip or similar.\n","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.scopes.items.[INDEX].description","typeLabel":"string"}},"required":["name"],"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.scopes.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.scopes","typeLabel":"object[]"},"defaultScopes":{"description":"DefaultScopes is the list of scopes which will be requested by default when the user\nconnects the Connector. This is useful for Connectors which require a specific set \nof scopes to function correctly.\n","type":"array","items":{"type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.defaultScopes.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.defaultScopes","typeLabel":"string[]"},"grant":{"oneOf":[{"type":"object","description":"AuthSchemeConfigOAuth2GrantAuthorizationCode contains grant-specific configuration for the \n`authorization_code` grant type.\n\nHow the API manages changes to this configuration is as follows:\n\n- CredentialID and OrganisationID are not set, a new credential is created containing the\n sensitive information and the non-sensitive information is updated in the database. \n- Otherwise, both the credential and the database are updated using JSON Merge Patch, with\n undefined properties not being updated.\n- Any other permutation will result in a 400 Bad Request.\n","required":["grantType"],"properties":{"grantType":{"type":"string","const":"authorization_code","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.0.grantType","typeLabel":"string"},"credentialId":{"description":"CredentialID is the unique identifier of the Credential which contains the client ID and\nclient secret to be used as part of the `password` flow.\n","type":"string","format":"ulid","x-go-name":"CredentialID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.0.credentialId","typeLabel":"string\u003culid>"},"organisationId":{"description":"OrganisationID is the unique identifier of the Organisation that owns the Credential. \nThis can be different to the Connector's OrganisationID since some may be imported from \nVersori's public library.\n","type":"string","format":"ulid","x-go-name":"OrganisationID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.0.organisationId","typeLabel":"string\u003culid>"},"clientId":{"description":"ClientID is the OAuth 2.0 client's identifier. This is not a sensitive value and may be \npresented to the user in plaintext.\n","type":"string","x-go-name":"ClientID","uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.0.clientId","typeLabel":"string"},"clientSecret":{"description":"ClientSecret is the OAuth 2.0 client's secret. This is a sensitive value and will not be\ndisplayed to the user.\n","type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.0.clientSecret","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.0","typeLabel":"object"},{"type":"object","required":["grantType"],"properties":{"grantType":{"type":"string","const":"client_credentials","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.1.grantType","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.1","typeLabel":"object"},{"type":"object","description":"AuthSchemeConfigOAuth2GrantPassword contains grant-specific configuration for the `password` \ngrant type.\n\nHow the API manages changes to this configuration is as follows:\n\n- CredentialID and OrganisationID are not set, a new credential is created containing the\n sensitive information and the non-sensitive information is created/updated in the \n database. \n- Otherwise, both the credential and the database are updated using JSON Merge Patch.\n- Any other permutation will result in a 400 Bad Request.\n","required":["grantType"],"properties":{"grantType":{"type":"string","const":"password","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.2.grantType","typeLabel":"string"},"credentialId":{"description":"CredentialID is the unique identifier of the Credential which contains the client ID and\nclient secret to be used as part of the `password` flow.\n","type":"string","format":"ulid","x-go-name":"CredentialID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.2.credentialId","typeLabel":"string\u003culid>"},"organisationId":{"description":"OrganisationID is the unique identifier of the Organisation that owns the Credential. This can be different\nto the Connector's OrganisationID since some may be imported from Versori's public library.\n","type":"string","format":"ulid","x-go-name":"OrganisationID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.2.organisationId","typeLabel":"string\u003culid>"},"clientId":{"description":"ClientID is the OAuth 2.0 client's identifier. This is not a sensitive value and may be presented to the \nuser in plaintext.\n","type":"string","x-go-name":"ClientID","uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.2.clientId","typeLabel":"string"},"clientSecret":{"description":"ClientSecret is the OAuth 2.0 client's secret. This is a sensitive value and will not be displayed to the \nuser. It may be populated when updating the Credential.\n","type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.2.clientSecret","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.2","typeLabel":"object"}],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.grant","typeLabel":"object"},"validationMessages":{"description":"ValidationMessages is a list of messages which are generated when the AuthSchemeConfig \nis validated. This is typically used to provide feedback to the user when they are \ncreating or updating the AuthSchemeConfig.\n\nThis field will be ignored if sent to the API.\n","type":"array","items":{"description":"Message is a message to be displayed to the user to indicate some information about the\npreceding request.\n","type":"object","properties":{"text":{"description":"Text contains the text of the message.","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.validationMessages.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"detail":{"description":"Details contains additional information about the message. This is intended to be used\nto provide more information about the message, such as a list of validation errors.\n","type":"array","items":{"type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.validationMessages","typeLabel":"object[]"},"additionalAuthorizeParams":{"description":"AdditionalAuthorizeParams is a URL-encoded query string which should be attached to \nthe AuthorizeURL when the user is redirected to the OAuth 2.0 authorization \nendpoint.\n\nThis value is only used by the UI to drive the default values when connecting, the \nAPI to `InitialiseOAuth2Connection` can be provided a different value if required.\n","type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.additionalAuthorizeParams","typeLabel":"string"},"additionalTokenParams":{"description":"AdditionalTokenParams is a URL-encoded string following the \n`application/x-www-form-urlencoded` mime-type, which can be used to pass additional\nparameters to the OAuth 2.0 token endpoint within the request body.\n","type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.additionalTokenParams","typeLabel":"string"},"mtlsEnabled":{"type":"boolean","description":"MTLSEnabled is a flag which determines whether the Connector should use Mutual TLS \n(mTLS) to authenticate with the OAuth 2.0 token endpoint. This is useful for \nConnectors which require a higher level of security.\n","x-go-name":"MTLSEnabled","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.mtlsEnabled","typeLabel":"boolean"},"mtlsCredentialId":{"type":"string","description":"MTLSCredentialID is the unique identifier of the Credential which contains the \nclient certificate and private key to be used as part of the mTLS connection. \n\nThis may be unset when creating a connection, in which case if `mtlsEnabled` is \ntrue, then the API will find an associated AuthSchemeConfigCertificate and link \nthem automatically.\n","x-go-name":"MTLSCredentialID","uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3.mtlsCredentialId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.3","typeLabel":"object"},{"type":"object","description":"AuthSchemeConfig defines how a Connector implements the AuthScheme in order to fulfil its \nauthentication requirements. This is purely the configuration and not the actual credential \nwhich is used to authenticate. The credential uses this configuration to determine how to \nauthenticate.\n","required":["schemeType","name","in","algorithm","digestInputs","id","description"],"properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the AuthSchemeConfig, this is generated by the client and\nonly requires to be unique amongst the elements of the array in which is it contained.\n","x-go-name":"ID","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.4.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same \nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.4.description","typeLabel":"string"},"schemeType":{"type":"string","const":"hmac","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.4.schemeType","typeLabel":"string"},"name":{"type":"string","description":"Name is the query parameter/header/cookie name which will be used to send the signature.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.4.name","typeLabel":"string"},"in":{"description":"AuthSchemeConfigHMACIn defines where the signature should be set on requests.","type":"string","enum":["query","header","cookie"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.4.in","typeLabel":"enum\u003cstring>"},"algorithm":{"description":"AuthSchemeConfigHMACAlgorithm defines the hashing algorithm to use when generating the HMAC signature.","type":"string","enum":["sha1","sha256","sha512"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.4.algorithm","typeLabel":"enum\u003cstring>"},"digestInputs":{"description":"AuthSchemeConfigHMACInputs defines what parts of a HTTP request are consumed to generate the HMAC signature. Some systems\nonly generate the signature from the request body, others may include the URL. The order of this array\ndefines the order in which the input is fed into the hashing function.\n","type":"array","items":{"type":"string","enum":["body","url"],"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.4.digestInputs.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.4.digestInputs","typeLabel":"enum\u003cstring>[]"},"validationMessages":{"description":"ValidationMessages is a list of messages which are generated when the AuthSchemeConfig \nis validated. This is typically used to provide feedback to the user when they are \ncreating or updating the AuthSchemeConfig.\n\nThis field will be ignored if sent to the API.\n","type":"array","items":{"description":"Message is a message to be displayed to the user to indicate some information about the\npreceding request.\n","type":"object","properties":{"text":{"description":"Text contains the text of the message.","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.4.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.4.validationMessages.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"detail":{"description":"Details contains additional information about the message. This is intended to be used\nto provide more information about the message, such as a list of validation errors.\n","type":"array","items":{"type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.4.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.4.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.4.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.4.validationMessages","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.4","typeLabel":"object"},{"type":"object","description":"AuthSchemeConfig defines how a Connector implements the AuthScheme in order to fulfil its \nauthentication requirements. This is purely the configuration and not the actual credential \nwhich is used to authenticate. The credential uses this configuration to determine how to \nauthenticate.\n","required":["schemeType","id","description"],"properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the AuthSchemeConfig, this is generated by the client and\nonly requires to be unique amongst the elements of the array in which is it contained.\n","x-go-name":"ID","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.5.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same \nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.5.description","typeLabel":"string"},"schemeType":{"type":"string","const":"certificate","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.5.schemeType","typeLabel":"string"},"validationMessages":{"description":"ValidationMessages is a list of messages which are generated when the AuthSchemeConfig \nis validated. This is typically used to provide feedback to the user when they are \ncreating or updating the AuthSchemeConfig.\n\nThis field will be ignored if sent to the API.\n","type":"array","items":{"description":"Message is a message to be displayed to the user to indicate some information about the\npreceding request.\n","type":"object","properties":{"text":{"description":"Text contains the text of the message.","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.5.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.5.validationMessages.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"detail":{"description":"Details contains additional information about the message. This is intended to be used\nto provide more information about the message, such as a list of validation errors.\n","type":"array","items":{"type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.5.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.5.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.5.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.5.validationMessages","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig.oneOf.5","typeLabel":"object"}],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].authSchemeConfig","typeLabel":"object"},"credential":{"description":"CredentialBase is the base type for all credentials. It contains the common properties which are shared across\nall credential types.\n","type":"object","properties":{"id":{"description":"ID is the unique identifier of the Credential.","type":"string","format":"ulid","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.id","typeLabel":"string\u003culid>"},"organisationId":{"description":"OrganisationID is the unique identifier of the Organisation which owns the Credential.","type":"string","format":"ulid","x-go-name":"OrganisationID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.organisationId","typeLabel":"string\u003culid>"},"type":{"description":"CredentialType denotes the type of the credential which determines what the Credential's `data` property will\ncontain.\n\n- none: No credential is required to authenticate with the Connector.\n- string: The credential is a string value, such as an API key or password.\n- binary: The credential is a binary value, such as a private key, certificate or other file.\n- basic-auth: The credential is a username and password to be used for basic authentication.\n- oauth2-client: The credential is an OAuth2 client ID and secret to be used for OAuth2 authentication.\n- oauth2-code: The credential is a temporary authorization code which will be exchanged for an oauth2-token.\n- oauth2-password: The credential is an OAuth2 username and password with an optional client ID and secret to be used for OAuth2 authentication.\n- oauth2-token: The credential is an OAuth2 access_token to be used for OAuth2 authentication.\n- custom-function: The credential is a custom function which will be called to authenticate with the Connector.\n- jwt-bearer: The credential is the JWT setup values to be used for generating a bearer token.\n- certificate: The credential is a PEM encoded certificate, key and CA to be used for TLS client authentication.\n","type":"string","enum":["none","string","binary","basic-auth","oauth2-client","oauth2-code","oauth2-password","oauth2-token","custom-function","certificate","jwt-bearer"],"x-go-type-skip-optional-pointer":true,"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.type","typeLabel":"enum\u003cstring>"},"name":{"type":"string","description":"Name is the name of the Credential.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.name","typeLabel":"string"},"data":{"oneOf":[{"type":"object","description":"CredentialDataNone contains no data as no credential is required to authenticate with the Connector. It is used\npurely as a placeholder to implement a consistent interface across all CredentialType/AuthSchemeTypes.\n","additionalProperties":false,"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.0","typeLabel":"object"},{"type":"object","description":"CredentialDataString contains a string value and nothing else and is commonly used for API keys. This value \nwill be redacted when returned in a response.\n","required":["value"],"properties":{"value":{"type":"string","description":"Value is a UTF-8 string containing the credential data. When read from the API this field will be redacted.\n","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.1.value","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.1","typeLabel":"object"},{"type":"object","description":"CredentialDataBinary is commonly used to store non-string data such as binary files or encryption keys. This \nvalue will be redacted when returned in a response.\n","required":["valueBase64"],"properties":{"valueBase64":{"type":"string","description":"Value is a base64 encoded string containing the credential data. This could decode to a valid utf-8 string,\nor it could decode to a binary file such as a private key etc. When read from the API this field will be \nredacted.\n","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.2.valueBase64","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.2","typeLabel":"object"},{"type":"object","description":"CredentialDataBasicAuth contains the username and password required to authenticate with the Connector. The\n`password` property will be redacted when returned in a response.\n","required":["username","password"],"properties":{"username":{"type":"string","description":"Username is the username used to authenticate with the Connector.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.3.username","typeLabel":"string"},"password":{"type":"string","description":"Password is the password used to authenticate with the Connector. Will be redacted when returned in a\nresponse.\n","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.3.password","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.3","typeLabel":"object"},{"type":"object","description":"CredentialDataOAuth2Client contains the OAuth2 client credentials required to either issue an access token from\na refresh_token, or via the `client_credentials` and `authorization_code` grant types. The `clientSecret` property will be redacted when\nreturned in a response.\n","required":["clientId","clientSecret","authorizeUrl","tokenUrl"],"properties":{"clientId":{"type":"string","description":"ClientID is the OAuth2 client ID used to authenticate with the Connector.\n","x-go-name":"ClientID","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.4.clientId","typeLabel":"string"},"clientSecret":{"type":"string","description":"ClientSecret is the OAuth2 client secret used to authenticate with the Connector. Will be redacted when\nreturned in a response.\n","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.4.clientSecret","typeLabel":"string"},"authorizeUrl":{"type":"string","format":"uri","description":"AuthorizeURL is the URL which the user will be redirected to in order to authorize the application. If\nthe client is being used for a `client_credentials` grant type, this field should be set to an empty \nstring.\n","x-go-name":"AuthorizeURL","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.4.authorizeUrl","typeLabel":"string\u003curi>"},"tokenUrl":{"type":"string","format":"uri","description":"TokenURL is the URL which the application will use to issue an access token.","x-go-name":"TokenURL","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.4.tokenUrl","typeLabel":"string\u003curi>"},"scopes":{"type":"array","items":{"type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.4.scopes.items.[INDEX]","typeLabel":"string"},"description":"Scopes is a list of scopes which should be requested when issuing an access token. This is only required if\nthis credential is being used on a `client_credentials` grant type, for `authorization_code` grant types the\nrequested scopes come from the `CredentialDataOAuth2Token` credential.\n","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.4.scopes","typeLabel":"string[]"},"additionalParams":{"description":"AdditionalParams is a URL-encoded query string which can be used to pass additional \nparameters to the OAuth 2.0 token endpoint. These parameters are attached to the body\nin the formatted as the `application/x-www-form-urlencoded` content-type.\n","type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.4.additionalParams","typeLabel":"string"},"mTLSEnabled":{"type":"boolean","description":"MTLSEnabled is a boolean flag which determines whether the client should use mutual TLS authentication when \ncommunicating with the OAuth2 provider. If enabled, the `mTLSCredentialId` field must be set, or it must be \ncreated via the `CreateConnection` endpoint with an associated mTLS credential defined beforehand, in which\ncase the mTLSCredentialID field will be populated upon saving by the API.\n","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.4.mTLSEnabled","typeLabel":"boolean"},"mTLSCredentialId":{"type":"string","description":"MTLSCredentialID is an optional reference to another credential being created. \nIf set the certificate credential will be used when making a request to the tokenUrl.\n","x-go-name":"MTLSCredentialID","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.4.mTLSCredentialId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.4","typeLabel":"object"},{"type":"object","description":"CredentialDataOAuth2Token is primarily used to store the refresh_token for an user who has authorized an OAuth2\nApplication to access their data. However, this information is not exposed publicly and the only data visible\nvia the API are the `scopes` which the user has granted consent for. This can be used to determine whether\nthe user should be prompted to re-authorize the application with additional scopes in the event they choose to\nuse a new endpoint which requires additional scopes to what they've already consented to.\n","required":["scopes"],"properties":{"scopes":{"type":"array","items":{"type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.5.scopes.items.[INDEX]","typeLabel":"string"},"description":"Scopes is a list of scopes which the user has granted consent for.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.5.scopes","typeLabel":"string[]"},"accessToken":{"type":"string","description":"AccessToken is the OAuth2 access token which can be used to authenticate with the Connector. This \ninformation is redacted when read from the API.\n","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.5.accessToken","typeLabel":"string"},"refreshToken":{"type":"string","description":"RefreshToken is the OAuth2 refresh token which can be used to issue new access tokens. This information is\nredacted when read from the API.\n","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.5.refreshToken","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.5","typeLabel":"object"},{"type":"object","description":"CredentialDataOAuth2Code is used to exchange an authorization code for an access token and\nis denoted by the `oauth2-code` type. \nThis is only used when creating or updating an OAuth 2.0 connection using the \n`authorization_code` grant type. Retrieving this credential will return a payload of\ntype `oauth2-token` in the shape of a `CredentialDataOAuth2Token` object.\n","required":["code","state"],"properties":{"code":{"description":"Code is the authorization code which will be exchanged for an access token.\n","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.6.code","typeLabel":"string"},"state":{"description":"State is the state value which is propagated through the OAuth2 flow.\n","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.6.state","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.6","typeLabel":"object"},{"type":"object","description":"CredentialDataOAuth2Password contains the username and password of a Resource Owner within an OAuth 2.0\napplication. The `password` property will be redacted when returned in a response.\n","required":["username","password"],"properties":{"username":{"type":"string","description":"Username is the username used to authenticate with the Connector.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.7.username","typeLabel":"string"},"password":{"type":"string","description":"Password is the password used to authenticate with the Connector. Will be redacted when returned in a\nresponse.\n","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.7.password","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.7","typeLabel":"object"},{"type":"object","description":"CredentialDataCertificate contains the Certificate, Certificate key and CA(Certificate authority).\n","required":["certificate","key","ca"],"properties":{"certificate":{"type":"string","description":"Certificate is the certificate that will be send to the connection.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.8.certificate","typeLabel":"string"},"key":{"type":"string","description":"Key is the accompanying key for the certificate.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.8.key","typeLabel":"string"},"ca":{"type":"string","description":"CA is the Certificate Authority to verify the server certificates against.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.8.ca","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data.oneOf.8","typeLabel":"object"}],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.data","typeLabel":"object"},"usages":{"description":"CredentialUsages is a list of references to the Connectors which are using this Credential. To aid performance,\nthis field will only be defined for specific endpoints. An undefined property means that the usages have not\nbeen loaded, whereas an empty array indicates that the credential is not used by any connectors.\n","type":"array","items":{"description":"CredentialUsage contains the information about a Connector which is using a Credential. This object currently\nonly supports tracking usage by other connections, but in the future new fields may be added to track usage\nby other entities such as, but not limited to, Boards, Hubs and Users.\n","type":"object","properties":{"connection":{"description":"CredentialUsageConnection contains the information about an Connection which is using a Credential. This also\nincludes a summary of the Connector it belongs to.\n","type":"object","properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the Connection. Typically this is only used internally and most (if not all)\npublic-facing APIs will use the `name` in combination with the Connector's `id` instead.\n","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.usages.items.[INDEX].connection.id","typeLabel":"string\u003culid>"},"name":{"type":"string","description":"Name is the name of the Connection.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.usages.items.[INDEX].connection.name","typeLabel":"string"},"connector":{"description":"ConnectorSummaryBase exposes a summary of a Connector irrespective of protocol.","type":"object","properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the Connector.","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.usages.items.[INDEX].connection.connector.id","typeLabel":"string\u003culid>"},"organisationId":{"type":"string","format":"ulid","description":"OrganisationID is the unique identifier of the Organisation that owns the Connector.","x-go-name":"OrganisationID","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.usages.items.[INDEX].connection.connector.organisationId","typeLabel":"string\u003culid>"},"name":{"type":"string","description":"Name is the user-provided name of the Connector","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.usages.items.[INDEX].connection.connector.name","typeLabel":"string"},"protocol":{"description":"ProtocolType denotes the set of all valid connector types.","type":"string","enum":["http","bigquery"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.usages.items.[INDEX].connection.connector.protocol","typeLabel":"enum\u003cstring>"},"createdAt":{"type":"string","format":"date-time","description":"CreatedAt is the time at which the ConnectorVersion was created.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.usages.items.[INDEX].connection.connector.createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","description":"UpdatedAt is the time at which the ConnectorVersion was last updated, including any changes to child\nresources.\n","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.usages.items.[INDEX].connection.connector.updatedAt","typeLabel":"string\u003cdate-time>"}},"required":["id","organisationId","name","protocol","createdAt","updatedAt"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.usages.items.[INDEX].connection.connector","typeLabel":"object"},"createdAt":{"type":"string","format":"date-time","description":"CreatedAt is the time the Connection was created.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.usages.items.[INDEX].connection.createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","description":"UpdatedAt is the time the Connection was last updated.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.usages.items.[INDEX].connection.updatedAt","typeLabel":"string\u003cdate-time>"}},"required":["id","name","connector","createdAt","updatedAt"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.usages.items.[INDEX].connection","typeLabel":"object"}},"required":["connection"],"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.usages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.usages","typeLabel":"object[]"},"errors":{"description":"Errors is a list of errors which occurred when attempting to validate the credential. This field may be\nundefined, which implies that validation has not occurred and the consumer cannot assume whether this\nCredential is valid or not. An empty array indicates that the Credential is valid.\n","type":"array","items":{"type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.errors.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.errors","typeLabel":"string[]"},"expiresAt":{"type":"string","format":"date-time","description":"ExpiresAt denotes the time this credential should be automatically deleted. External systems can subscribe \nto deletion events and if the reason is \"expired\", can trigger the correct notifications to interested\nparties (such as un-publishing jobs which rely on the credential and emailing the owner to rectify it).\n","uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential.expiresAt","typeLabel":"string\u003cdate-time>"}},"required":["id","organisationId","type","name","data"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX].credential","typeLabel":"object"}},"required":["id","authSchemeConfig","credential"],"uniqueKey":"connector.connections.items.[INDEX].credentials.action.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.action","typeLabel":"object[]"},"trigger":{"type":"array","items":{"description":"ConnectionCredential contains the a Credential and the AuthSchemeConfig to define how the Credential should be used against the Connection's Connector.","type":"object","properties":{"id":{"type":"string","format":"ulid","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].id","typeLabel":"string\u003culid>"},"authSchemeConfig":{"oneOf":[{"type":"object","description":"AuthSchemeConfig defines how a Connector implements the AuthScheme in order to fulfil its \nauthentication requirements. This is purely the configuration and not the actual credential \nwhich is used to authenticate. The credential uses this configuration to determine how to \nauthenticate.\n","required":["schemeType","id","description"],"properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the AuthSchemeConfig, this is generated by the client and\nonly requires to be unique amongst the elements of the array in which is it contained.\n","x-go-name":"ID","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.0.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same \nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.0.description","typeLabel":"string"},"schemeType":{"type":"string","const":"none","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.0.schemeType","typeLabel":"string"},"validationMessages":{"description":"ValidationMessages is a list of messages which are generated when the AuthSchemeConfig \nis validated. This is typically used to provide feedback to the user when they are \ncreating or updating the AuthSchemeConfig.\n\nThis field will be ignored if sent to the API.\n","type":"array","items":{"description":"Message is a message to be displayed to the user to indicate some information about the\npreceding request.\n","type":"object","properties":{"text":{"description":"Text contains the text of the message.","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.0.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.0.validationMessages.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"detail":{"description":"Details contains additional information about the message. This is intended to be used\nto provide more information about the message, such as a list of validation errors.\n","type":"array","items":{"type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.0.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.0.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.0.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.0.validationMessages","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.0","typeLabel":"object"},{"type":"object","description":"AuthSchemeConfig defines how a Connector implements the AuthScheme in order to fulfil its \nauthentication requirements. This is purely the configuration and not the actual credential \nwhich is used to authenticate. The credential uses this configuration to determine how to \nauthenticate.\n","required":["schemeType","name","in","id","description"],"properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the AuthSchemeConfig, this is generated by the client and\nonly requires to be unique amongst the elements of the array in which is it contained.\n","x-go-name":"ID","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.1.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same \nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.1.description","typeLabel":"string"},"schemeType":{"type":"string","const":"api-key","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.1.schemeType","typeLabel":"string"},"name":{"type":"string","description":"Name is the query parameter/header/cookie name which will be used to send the API key.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.1.name","typeLabel":"string"},"in":{"description":"AuthSchemeConfigAPIKeyIn defines the location of the API key in the request.\n","type":"string","enum":["query","header","cookie"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.1.in","typeLabel":"enum\u003cstring>"},"validationMessages":{"description":"ValidationMessages is a list of messages which are generated when the AuthSchemeConfig \nis validated. This is typically used to provide feedback to the user when they are \ncreating or updating the AuthSchemeConfig.\n\nThis field will be ignored if sent to the API.\n","type":"array","items":{"description":"Message is a message to be displayed to the user to indicate some information about the\npreceding request.\n","type":"object","properties":{"text":{"description":"Text contains the text of the message.","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.1.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.1.validationMessages.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"detail":{"description":"Details contains additional information about the message. This is intended to be used\nto provide more information about the message, such as a list of validation errors.\n","type":"array","items":{"type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.1.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.1.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.1.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.1.validationMessages","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.1","typeLabel":"object"},{"type":"object","description":"AuthSchemeConfig defines how a Connector implements the AuthScheme in order to fulfil its \nauthentication requirements. This is purely the configuration and not the actual credential \nwhich is used to authenticate. The credential uses this configuration to determine how to \nauthenticate.\n","required":["schemeType","id","description"],"properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the AuthSchemeConfig, this is generated by the client and\nonly requires to be unique amongst the elements of the array in which is it contained.\n","x-go-name":"ID","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.2.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same \nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.2.description","typeLabel":"string"},"schemeType":{"type":"string","const":"basic-auth","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.2.schemeType","typeLabel":"string"},"validationMessages":{"description":"ValidationMessages is a list of messages which are generated when the AuthSchemeConfig \nis validated. This is typically used to provide feedback to the user when they are \ncreating or updating the AuthSchemeConfig.\n\nThis field will be ignored if sent to the API.\n","type":"array","items":{"description":"Message is a message to be displayed to the user to indicate some information about the\npreceding request.\n","type":"object","properties":{"text":{"description":"Text contains the text of the message.","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.2.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.2.validationMessages.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"detail":{"description":"Details contains additional information about the message. This is intended to be used\nto provide more information about the message, such as a list of validation errors.\n","type":"array","items":{"type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.2.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.2.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.2.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.2.validationMessages","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.2","typeLabel":"object"},{"type":"object","description":"AuthSchemeConfig defines how a Connector implements the AuthScheme in order to fulfil its \nauthentication requirements. This is purely the configuration and not the actual credential \nwhich is used to authenticate. The credential uses this configuration to determine how to \nauthenticate.\n","required":["schemeType","authorizeUrl","tokenUrl","scopes","defaultScopes","grant","id","description"],"properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the AuthSchemeConfig, this is generated by the client and\nonly requires to be unique amongst the elements of the array in which is it contained.\n","x-go-name":"ID","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same \nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.description","typeLabel":"string"},"schemeType":{"type":"string","const":"oauth2","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.schemeType","typeLabel":"string"},"authorizeUrl":{"type":"string","format":"uri","description":"AuthorizeURL is the URL which the user will be redirected to in order to authorize \nthe application.\n","x-go-name":"AuthorizeURL","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.authorizeUrl","typeLabel":"string\u003curi>"},"tokenUrl":{"type":"string","format":"uri","description":"TokenURL is the URL which the application will use to issue an access token.\n","x-go-name":"TokenURL","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.tokenUrl","typeLabel":"string\u003curi>"},"scopes":{"description":"Scopes is the list of all OAuth2 scopes which the application supports. The user \nwill be allowed to choose which scopes to request when configuring the Connection.\n","type":"array","items":{"description":"OAuth2Scope represents a single scope which can be requested by an OAuth2 application.\n","type":"object","properties":{"name":{"type":"string","description":"Name is the name of the scope as determined by the application to which this Connector \nis connecting to.\n","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.scopes.items.[INDEX].name","typeLabel":"string"},"description":{"type":"string","description":"Description describes the scope in human-friendly terminology. This text may be \ndisplayed to users via a help tooltip or similar.\n","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.scopes.items.[INDEX].description","typeLabel":"string"}},"required":["name"],"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.scopes.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.scopes","typeLabel":"object[]"},"defaultScopes":{"description":"DefaultScopes is the list of scopes which will be requested by default when the user\nconnects the Connector. This is useful for Connectors which require a specific set \nof scopes to function correctly.\n","type":"array","items":{"type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.defaultScopes.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.defaultScopes","typeLabel":"string[]"},"grant":{"oneOf":[{"type":"object","description":"AuthSchemeConfigOAuth2GrantAuthorizationCode contains grant-specific configuration for the \n`authorization_code` grant type.\n\nHow the API manages changes to this configuration is as follows:\n\n- CredentialID and OrganisationID are not set, a new credential is created containing the\n sensitive information and the non-sensitive information is updated in the database. \n- Otherwise, both the credential and the database are updated using JSON Merge Patch, with\n undefined properties not being updated.\n- Any other permutation will result in a 400 Bad Request.\n","required":["grantType"],"properties":{"grantType":{"type":"string","const":"authorization_code","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.0.grantType","typeLabel":"string"},"credentialId":{"description":"CredentialID is the unique identifier of the Credential which contains the client ID and\nclient secret to be used as part of the `password` flow.\n","type":"string","format":"ulid","x-go-name":"CredentialID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.0.credentialId","typeLabel":"string\u003culid>"},"organisationId":{"description":"OrganisationID is the unique identifier of the Organisation that owns the Credential. \nThis can be different to the Connector's OrganisationID since some may be imported from \nVersori's public library.\n","type":"string","format":"ulid","x-go-name":"OrganisationID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.0.organisationId","typeLabel":"string\u003culid>"},"clientId":{"description":"ClientID is the OAuth 2.0 client's identifier. This is not a sensitive value and may be \npresented to the user in plaintext.\n","type":"string","x-go-name":"ClientID","uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.0.clientId","typeLabel":"string"},"clientSecret":{"description":"ClientSecret is the OAuth 2.0 client's secret. This is a sensitive value and will not be\ndisplayed to the user.\n","type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.0.clientSecret","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.0","typeLabel":"object"},{"type":"object","required":["grantType"],"properties":{"grantType":{"type":"string","const":"client_credentials","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.1.grantType","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.1","typeLabel":"object"},{"type":"object","description":"AuthSchemeConfigOAuth2GrantPassword contains grant-specific configuration for the `password` \ngrant type.\n\nHow the API manages changes to this configuration is as follows:\n\n- CredentialID and OrganisationID are not set, a new credential is created containing the\n sensitive information and the non-sensitive information is created/updated in the \n database. \n- Otherwise, both the credential and the database are updated using JSON Merge Patch.\n- Any other permutation will result in a 400 Bad Request.\n","required":["grantType"],"properties":{"grantType":{"type":"string","const":"password","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.2.grantType","typeLabel":"string"},"credentialId":{"description":"CredentialID is the unique identifier of the Credential which contains the client ID and\nclient secret to be used as part of the `password` flow.\n","type":"string","format":"ulid","x-go-name":"CredentialID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.2.credentialId","typeLabel":"string\u003culid>"},"organisationId":{"description":"OrganisationID is the unique identifier of the Organisation that owns the Credential. This can be different\nto the Connector's OrganisationID since some may be imported from Versori's public library.\n","type":"string","format":"ulid","x-go-name":"OrganisationID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.2.organisationId","typeLabel":"string\u003culid>"},"clientId":{"description":"ClientID is the OAuth 2.0 client's identifier. This is not a sensitive value and may be presented to the \nuser in plaintext.\n","type":"string","x-go-name":"ClientID","uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.2.clientId","typeLabel":"string"},"clientSecret":{"description":"ClientSecret is the OAuth 2.0 client's secret. This is a sensitive value and will not be displayed to the \nuser. It may be populated when updating the Credential.\n","type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.2.clientSecret","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.grant.oneOf.2","typeLabel":"object"}],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.grant","typeLabel":"object"},"validationMessages":{"description":"ValidationMessages is a list of messages which are generated when the AuthSchemeConfig \nis validated. This is typically used to provide feedback to the user when they are \ncreating or updating the AuthSchemeConfig.\n\nThis field will be ignored if sent to the API.\n","type":"array","items":{"description":"Message is a message to be displayed to the user to indicate some information about the\npreceding request.\n","type":"object","properties":{"text":{"description":"Text contains the text of the message.","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.validationMessages.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"detail":{"description":"Details contains additional information about the message. This is intended to be used\nto provide more information about the message, such as a list of validation errors.\n","type":"array","items":{"type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.validationMessages","typeLabel":"object[]"},"additionalAuthorizeParams":{"description":"AdditionalAuthorizeParams is a URL-encoded query string which should be attached to \nthe AuthorizeURL when the user is redirected to the OAuth 2.0 authorization \nendpoint.\n\nThis value is only used by the UI to drive the default values when connecting, the \nAPI to `InitialiseOAuth2Connection` can be provided a different value if required.\n","type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.additionalAuthorizeParams","typeLabel":"string"},"additionalTokenParams":{"description":"AdditionalTokenParams is a URL-encoded string following the \n`application/x-www-form-urlencoded` mime-type, which can be used to pass additional\nparameters to the OAuth 2.0 token endpoint within the request body.\n","type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.additionalTokenParams","typeLabel":"string"},"mtlsEnabled":{"type":"boolean","description":"MTLSEnabled is a flag which determines whether the Connector should use Mutual TLS \n(mTLS) to authenticate with the OAuth 2.0 token endpoint. This is useful for \nConnectors which require a higher level of security.\n","x-go-name":"MTLSEnabled","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.mtlsEnabled","typeLabel":"boolean"},"mtlsCredentialId":{"type":"string","description":"MTLSCredentialID is the unique identifier of the Credential which contains the \nclient certificate and private key to be used as part of the mTLS connection. \n\nThis may be unset when creating a connection, in which case if `mtlsEnabled` is \ntrue, then the API will find an associated AuthSchemeConfigCertificate and link \nthem automatically.\n","x-go-name":"MTLSCredentialID","uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3.mtlsCredentialId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.3","typeLabel":"object"},{"type":"object","description":"AuthSchemeConfig defines how a Connector implements the AuthScheme in order to fulfil its \nauthentication requirements. This is purely the configuration and not the actual credential \nwhich is used to authenticate. The credential uses this configuration to determine how to \nauthenticate.\n","required":["schemeType","name","in","algorithm","digestInputs","id","description"],"properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the AuthSchemeConfig, this is generated by the client and\nonly requires to be unique amongst the elements of the array in which is it contained.\n","x-go-name":"ID","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.4.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same \nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.4.description","typeLabel":"string"},"schemeType":{"type":"string","const":"hmac","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.4.schemeType","typeLabel":"string"},"name":{"type":"string","description":"Name is the query parameter/header/cookie name which will be used to send the signature.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.4.name","typeLabel":"string"},"in":{"description":"AuthSchemeConfigHMACIn defines where the signature should be set on requests.","type":"string","enum":["query","header","cookie"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.4.in","typeLabel":"enum\u003cstring>"},"algorithm":{"description":"AuthSchemeConfigHMACAlgorithm defines the hashing algorithm to use when generating the HMAC signature.","type":"string","enum":["sha1","sha256","sha512"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.4.algorithm","typeLabel":"enum\u003cstring>"},"digestInputs":{"description":"AuthSchemeConfigHMACInputs defines what parts of a HTTP request are consumed to generate the HMAC signature. Some systems\nonly generate the signature from the request body, others may include the URL. The order of this array\ndefines the order in which the input is fed into the hashing function.\n","type":"array","items":{"type":"string","enum":["body","url"],"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.4.digestInputs.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.4.digestInputs","typeLabel":"enum\u003cstring>[]"},"validationMessages":{"description":"ValidationMessages is a list of messages which are generated when the AuthSchemeConfig \nis validated. This is typically used to provide feedback to the user when they are \ncreating or updating the AuthSchemeConfig.\n\nThis field will be ignored if sent to the API.\n","type":"array","items":{"description":"Message is a message to be displayed to the user to indicate some information about the\npreceding request.\n","type":"object","properties":{"text":{"description":"Text contains the text of the message.","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.4.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.4.validationMessages.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"detail":{"description":"Details contains additional information about the message. This is intended to be used\nto provide more information about the message, such as a list of validation errors.\n","type":"array","items":{"type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.4.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.4.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.4.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.4.validationMessages","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.4","typeLabel":"object"},{"type":"object","description":"AuthSchemeConfig defines how a Connector implements the AuthScheme in order to fulfil its \nauthentication requirements. This is purely the configuration and not the actual credential \nwhich is used to authenticate. The credential uses this configuration to determine how to \nauthenticate.\n","required":["schemeType","id","description"],"properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the AuthSchemeConfig, this is generated by the client and\nonly requires to be unique amongst the elements of the array in which is it contained.\n","x-go-name":"ID","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.5.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same \nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.5.description","typeLabel":"string"},"schemeType":{"type":"string","const":"certificate","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.5.schemeType","typeLabel":"string"},"validationMessages":{"description":"ValidationMessages is a list of messages which are generated when the AuthSchemeConfig \nis validated. This is typically used to provide feedback to the user when they are \ncreating or updating the AuthSchemeConfig.\n\nThis field will be ignored if sent to the API.\n","type":"array","items":{"description":"Message is a message to be displayed to the user to indicate some information about the\npreceding request.\n","type":"object","properties":{"text":{"description":"Text contains the text of the message.","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.5.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.5.validationMessages.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"detail":{"description":"Details contains additional information about the message. This is intended to be used\nto provide more information about the message, such as a list of validation errors.\n","type":"array","items":{"type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.5.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.5.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.5.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.5.validationMessages","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig.oneOf.5","typeLabel":"object"}],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].authSchemeConfig","typeLabel":"object"},"credential":{"description":"CredentialBase is the base type for all credentials. It contains the common properties which are shared across\nall credential types.\n","type":"object","properties":{"id":{"description":"ID is the unique identifier of the Credential.","type":"string","format":"ulid","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.id","typeLabel":"string\u003culid>"},"organisationId":{"description":"OrganisationID is the unique identifier of the Organisation which owns the Credential.","type":"string","format":"ulid","x-go-name":"OrganisationID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.organisationId","typeLabel":"string\u003culid>"},"type":{"description":"CredentialType denotes the type of the credential which determines what the Credential's `data` property will\ncontain.\n\n- none: No credential is required to authenticate with the Connector.\n- string: The credential is a string value, such as an API key or password.\n- binary: The credential is a binary value, such as a private key, certificate or other file.\n- basic-auth: The credential is a username and password to be used for basic authentication.\n- oauth2-client: The credential is an OAuth2 client ID and secret to be used for OAuth2 authentication.\n- oauth2-code: The credential is a temporary authorization code which will be exchanged for an oauth2-token.\n- oauth2-password: The credential is an OAuth2 username and password with an optional client ID and secret to be used for OAuth2 authentication.\n- oauth2-token: The credential is an OAuth2 access_token to be used for OAuth2 authentication.\n- custom-function: The credential is a custom function which will be called to authenticate with the Connector.\n- jwt-bearer: The credential is the JWT setup values to be used for generating a bearer token.\n- certificate: The credential is a PEM encoded certificate, key and CA to be used for TLS client authentication.\n","type":"string","enum":["none","string","binary","basic-auth","oauth2-client","oauth2-code","oauth2-password","oauth2-token","custom-function","certificate","jwt-bearer"],"x-go-type-skip-optional-pointer":true,"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.type","typeLabel":"enum\u003cstring>"},"name":{"type":"string","description":"Name is the name of the Credential.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.name","typeLabel":"string"},"data":{"oneOf":[{"type":"object","description":"CredentialDataNone contains no data as no credential is required to authenticate with the Connector. It is used\npurely as a placeholder to implement a consistent interface across all CredentialType/AuthSchemeTypes.\n","additionalProperties":false,"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.0","typeLabel":"object"},{"type":"object","description":"CredentialDataString contains a string value and nothing else and is commonly used for API keys. This value \nwill be redacted when returned in a response.\n","required":["value"],"properties":{"value":{"type":"string","description":"Value is a UTF-8 string containing the credential data. When read from the API this field will be redacted.\n","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.1.value","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.1","typeLabel":"object"},{"type":"object","description":"CredentialDataBinary is commonly used to store non-string data such as binary files or encryption keys. This \nvalue will be redacted when returned in a response.\n","required":["valueBase64"],"properties":{"valueBase64":{"type":"string","description":"Value is a base64 encoded string containing the credential data. This could decode to a valid utf-8 string,\nor it could decode to a binary file such as a private key etc. When read from the API this field will be \nredacted.\n","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.2.valueBase64","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.2","typeLabel":"object"},{"type":"object","description":"CredentialDataBasicAuth contains the username and password required to authenticate with the Connector. The\n`password` property will be redacted when returned in a response.\n","required":["username","password"],"properties":{"username":{"type":"string","description":"Username is the username used to authenticate with the Connector.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.3.username","typeLabel":"string"},"password":{"type":"string","description":"Password is the password used to authenticate with the Connector. Will be redacted when returned in a\nresponse.\n","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.3.password","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.3","typeLabel":"object"},{"type":"object","description":"CredentialDataOAuth2Client contains the OAuth2 client credentials required to either issue an access token from\na refresh_token, or via the `client_credentials` and `authorization_code` grant types. The `clientSecret` property will be redacted when\nreturned in a response.\n","required":["clientId","clientSecret","authorizeUrl","tokenUrl"],"properties":{"clientId":{"type":"string","description":"ClientID is the OAuth2 client ID used to authenticate with the Connector.\n","x-go-name":"ClientID","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.4.clientId","typeLabel":"string"},"clientSecret":{"type":"string","description":"ClientSecret is the OAuth2 client secret used to authenticate with the Connector. Will be redacted when\nreturned in a response.\n","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.4.clientSecret","typeLabel":"string"},"authorizeUrl":{"type":"string","format":"uri","description":"AuthorizeURL is the URL which the user will be redirected to in order to authorize the application. If\nthe client is being used for a `client_credentials` grant type, this field should be set to an empty \nstring.\n","x-go-name":"AuthorizeURL","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.4.authorizeUrl","typeLabel":"string\u003curi>"},"tokenUrl":{"type":"string","format":"uri","description":"TokenURL is the URL which the application will use to issue an access token.","x-go-name":"TokenURL","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.4.tokenUrl","typeLabel":"string\u003curi>"},"scopes":{"type":"array","items":{"type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.4.scopes.items.[INDEX]","typeLabel":"string"},"description":"Scopes is a list of scopes which should be requested when issuing an access token. This is only required if\nthis credential is being used on a `client_credentials` grant type, for `authorization_code` grant types the\nrequested scopes come from the `CredentialDataOAuth2Token` credential.\n","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.4.scopes","typeLabel":"string[]"},"additionalParams":{"description":"AdditionalParams is a URL-encoded query string which can be used to pass additional \nparameters to the OAuth 2.0 token endpoint. These parameters are attached to the body\nin the formatted as the `application/x-www-form-urlencoded` content-type.\n","type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.4.additionalParams","typeLabel":"string"},"mTLSEnabled":{"type":"boolean","description":"MTLSEnabled is a boolean flag which determines whether the client should use mutual TLS authentication when \ncommunicating with the OAuth2 provider. If enabled, the `mTLSCredentialId` field must be set, or it must be \ncreated via the `CreateConnection` endpoint with an associated mTLS credential defined beforehand, in which\ncase the mTLSCredentialID field will be populated upon saving by the API.\n","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.4.mTLSEnabled","typeLabel":"boolean"},"mTLSCredentialId":{"type":"string","description":"MTLSCredentialID is an optional reference to another credential being created. \nIf set the certificate credential will be used when making a request to the tokenUrl.\n","x-go-name":"MTLSCredentialID","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.4.mTLSCredentialId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.4","typeLabel":"object"},{"type":"object","description":"CredentialDataOAuth2Token is primarily used to store the refresh_token for an user who has authorized an OAuth2\nApplication to access their data. However, this information is not exposed publicly and the only data visible\nvia the API are the `scopes` which the user has granted consent for. This can be used to determine whether\nthe user should be prompted to re-authorize the application with additional scopes in the event they choose to\nuse a new endpoint which requires additional scopes to what they've already consented to.\n","required":["scopes"],"properties":{"scopes":{"type":"array","items":{"type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.5.scopes.items.[INDEX]","typeLabel":"string"},"description":"Scopes is a list of scopes which the user has granted consent for.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.5.scopes","typeLabel":"string[]"},"accessToken":{"type":"string","description":"AccessToken is the OAuth2 access token which can be used to authenticate with the Connector. This \ninformation is redacted when read from the API.\n","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.5.accessToken","typeLabel":"string"},"refreshToken":{"type":"string","description":"RefreshToken is the OAuth2 refresh token which can be used to issue new access tokens. This information is\nredacted when read from the API.\n","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.5.refreshToken","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.5","typeLabel":"object"},{"type":"object","description":"CredentialDataOAuth2Code is used to exchange an authorization code for an access token and\nis denoted by the `oauth2-code` type. \nThis is only used when creating or updating an OAuth 2.0 connection using the \n`authorization_code` grant type. Retrieving this credential will return a payload of\ntype `oauth2-token` in the shape of a `CredentialDataOAuth2Token` object.\n","required":["code","state"],"properties":{"code":{"description":"Code is the authorization code which will be exchanged for an access token.\n","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.6.code","typeLabel":"string"},"state":{"description":"State is the state value which is propagated through the OAuth2 flow.\n","type":"string","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.6.state","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.6","typeLabel":"object"},{"type":"object","description":"CredentialDataOAuth2Password contains the username and password of a Resource Owner within an OAuth 2.0\napplication. The `password` property will be redacted when returned in a response.\n","required":["username","password"],"properties":{"username":{"type":"string","description":"Username is the username used to authenticate with the Connector.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.7.username","typeLabel":"string"},"password":{"type":"string","description":"Password is the password used to authenticate with the Connector. Will be redacted when returned in a\nresponse.\n","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.7.password","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.7","typeLabel":"object"},{"type":"object","description":"CredentialDataCertificate contains the Certificate, Certificate key and CA(Certificate authority).\n","required":["certificate","key","ca"],"properties":{"certificate":{"type":"string","description":"Certificate is the certificate that will be send to the connection.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.8.certificate","typeLabel":"string"},"key":{"type":"string","description":"Key is the accompanying key for the certificate.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.8.key","typeLabel":"string"},"ca":{"type":"string","description":"CA is the Certificate Authority to verify the server certificates against.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.8.ca","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data.oneOf.8","typeLabel":"object"}],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.data","typeLabel":"object"},"usages":{"description":"CredentialUsages is a list of references to the Connectors which are using this Credential. To aid performance,\nthis field will only be defined for specific endpoints. An undefined property means that the usages have not\nbeen loaded, whereas an empty array indicates that the credential is not used by any connectors.\n","type":"array","items":{"description":"CredentialUsage contains the information about a Connector which is using a Credential. This object currently\nonly supports tracking usage by other connections, but in the future new fields may be added to track usage\nby other entities such as, but not limited to, Boards, Hubs and Users.\n","type":"object","properties":{"connection":{"description":"CredentialUsageConnection contains the information about an Connection which is using a Credential. This also\nincludes a summary of the Connector it belongs to.\n","type":"object","properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the Connection. Typically this is only used internally and most (if not all)\npublic-facing APIs will use the `name` in combination with the Connector's `id` instead.\n","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.usages.items.[INDEX].connection.id","typeLabel":"string\u003culid>"},"name":{"type":"string","description":"Name is the name of the Connection.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.usages.items.[INDEX].connection.name","typeLabel":"string"},"connector":{"description":"ConnectorSummaryBase exposes a summary of a Connector irrespective of protocol.","type":"object","properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the Connector.","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.usages.items.[INDEX].connection.connector.id","typeLabel":"string\u003culid>"},"organisationId":{"type":"string","format":"ulid","description":"OrganisationID is the unique identifier of the Organisation that owns the Connector.","x-go-name":"OrganisationID","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.usages.items.[INDEX].connection.connector.organisationId","typeLabel":"string\u003culid>"},"name":{"type":"string","description":"Name is the user-provided name of the Connector","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.usages.items.[INDEX].connection.connector.name","typeLabel":"string"},"protocol":{"description":"ProtocolType denotes the set of all valid connector types.","type":"string","enum":["http","bigquery"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.usages.items.[INDEX].connection.connector.protocol","typeLabel":"enum\u003cstring>"},"createdAt":{"type":"string","format":"date-time","description":"CreatedAt is the time at which the ConnectorVersion was created.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.usages.items.[INDEX].connection.connector.createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","description":"UpdatedAt is the time at which the ConnectorVersion was last updated, including any changes to child\nresources.\n","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.usages.items.[INDEX].connection.connector.updatedAt","typeLabel":"string\u003cdate-time>"}},"required":["id","organisationId","name","protocol","createdAt","updatedAt"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.usages.items.[INDEX].connection.connector","typeLabel":"object"},"createdAt":{"type":"string","format":"date-time","description":"CreatedAt is the time the Connection was created.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.usages.items.[INDEX].connection.createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","description":"UpdatedAt is the time the Connection was last updated.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.usages.items.[INDEX].connection.updatedAt","typeLabel":"string\u003cdate-time>"}},"required":["id","name","connector","createdAt","updatedAt"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.usages.items.[INDEX].connection","typeLabel":"object"}},"required":["connection"],"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.usages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.usages","typeLabel":"object[]"},"errors":{"description":"Errors is a list of errors which occurred when attempting to validate the credential. This field may be\nundefined, which implies that validation has not occurred and the consumer cannot assume whether this\nCredential is valid or not. An empty array indicates that the Credential is valid.\n","type":"array","items":{"type":"string","uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.errors.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.errors","typeLabel":"string[]"},"expiresAt":{"type":"string","format":"date-time","description":"ExpiresAt denotes the time this credential should be automatically deleted. External systems can subscribe \nto deletion events and if the reason is \"expired\", can trigger the correct notifications to interested\nparties (such as un-publishing jobs which rely on the credential and emailing the owner to rectify it).\n","uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential.expiresAt","typeLabel":"string\u003cdate-time>"}},"required":["id","organisationId","type","name","data"],"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX].credential","typeLabel":"object"}},"required":["id","authSchemeConfig","credential"],"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connections.items.[INDEX].credentials.trigger","typeLabel":"object[]"}},"minProperties":1,"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].credentials","typeLabel":"object"},"variables":{"type":"array","items":{"description":"ConnectionVariable denotes an arbitrary key/value pair which can be used to configure a connector.","type":"object","properties":{"name":{"type":"string","description":"Name is the name of the connection variable.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].variables.items.[INDEX].name","typeLabel":"string"},"value":{"type":"string","description":"Value is the value of the connection variable.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].variables.items.[INDEX].value","typeLabel":"string"}},"required":["name","value"],"uniqueKey":"connector.connections.items.[INDEX].variables.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].variables","typeLabel":"object[]"},"createdAt":{"type":"string","format":"date-time","description":"CreatedAt is the time the Connection was created.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","description":"UpdatedAt is the time the Connection was last updated.","isRequired":true,"uniqueKey":"connector.connections.items.[INDEX].updatedAt","typeLabel":"string\u003cdate-time>"}},"required":["id","name","credentials","variables","createdAt","updatedAt"],"uniqueKey":"connector.connections.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"connector.connections","typeLabel":"object[]"},"versions":{"type":"array","description":"Versions is a list of all the versions this Connector has.","items":{"description":"ConnectorVersion represents a version of a Connector.","type":"object","properties":{"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the ConnectorVersion, this is typically only used internally and the version\n`name` is used externally in combination with the Connector `id`.\n","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"connector.versions.items.[INDEX].id","typeLabel":"string\u003culid>"},"name":{"type":"string","description":"Name denotes the actual version value for the Connector. This can be any value but a consistent naming\nstrategy is recommended, such as SemVer, CalVer or an incrementing number. The names \"default\" and \"latest\" \nare reserved words and cannot be used.\n","isRequired":true,"uniqueKey":"connector.versions.items.[INDEX].name","typeLabel":"string"},"isLatest":{"type":"boolean","description":"IsLatest denotes whether this is the latest version of the Connector.","isRequired":true,"uniqueKey":"connector.versions.items.[INDEX].isLatest","typeLabel":"boolean"},"isDefault":{"type":"boolean","description":"IsDefault denotes whether this is the default version of the Connector.","isRequired":true,"uniqueKey":"connector.versions.items.[INDEX].isDefault","typeLabel":"boolean"},"createdAt":{"type":"string","format":"date-time","description":"CreatedAt is the time at which the ConnectorVersion was created.","isRequired":true,"uniqueKey":"connector.versions.items.[INDEX].createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","description":"UpdatedAt is the time at which the ConnectorVersion was last updated, including any changes to child\nresources.\n","isRequired":true,"uniqueKey":"connector.versions.items.[INDEX].updatedAt","typeLabel":"string\u003cdate-time>"},"publishedAt":{"oneOf":[{"format":"date-time","description":"PublishedAt is the time at which the ConnectorVersion was published.\n","type":"string","isRequired":true,"uniqueKey":"connector.versions.items.[INDEX].publishedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"format":"date-time","description":"PublishedAt is the time at which the ConnectorVersion was published.\n","type":"null","isRequired":true,"uniqueKey":"connector.versions.items.[INDEX].publishedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"connector.versions.items.[INDEX].publishedAt","typeLabel":"string\u003cdate-time> | null"},"description":{"type":"string","description":"Description allows specifying additional information about the ConnectorVersion, such as what changed\nsince the last version etc.\n","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.versions.items.[INDEX].description","typeLabel":"string"},"messages":{"type":"array","items":{"description":"Message is a message to be displayed to the user to indicate some information about the\npreceding request.\n","type":"object","properties":{"text":{"description":"Text contains the text of the message.","type":"string","isRequired":true,"uniqueKey":"connector.versions.items.[INDEX].messages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connector.versions.items.[INDEX].messages.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"detail":{"description":"Details contains additional information about the message. This is intended to be used\nto provide more information about the message, such as a list of validation errors.\n","type":"array","items":{"type":"string","uniqueKey":"connector.versions.items.[INDEX].messages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.versions.items.[INDEX].messages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connector.versions.items.[INDEX].messages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.versions.items.[INDEX].messages","typeLabel":"object[]"}},"required":["id","name","isLatest","isDefault","createdAt","updatedAt","publishedAt"],"uniqueKey":"connector.versions.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"isRequired":true,"uniqueKey":"connector.versions","typeLabel":"object[]"},"createdAt":{"type":"string","format":"date-time","description":"CreatedAt is the time at which the ConnectorVersion was created.","isRequired":true,"uniqueKey":"connector.createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","description":"UpdatedAt is the time at which the ConnectorVersion was last updated, including any changes to child\nresources.\n","isRequired":true,"uniqueKey":"connector.updatedAt","typeLabel":"string\u003cdate-time>"},"baseUrl":{"type":"string","description":"BaseURL is the base URL of all HTTP Actions within the Connector.","x-go-name":"BaseURL","isRequired":true,"uniqueKey":"connector.baseUrl","typeLabel":"string"},"documentationURL":{"type":"string","description":"Hold an optional link to the documentation for the API.","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.documentationURL","typeLabel":"string"},"imageURL":{"type":"string","description":"The URL for the icon for the connector","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.imageURL","typeLabel":"string"},"tags":{"type":"object","x-go-type":"map[string][]string","x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.tags","typeLabel":"object"},"connectionVariables":{"type":"array","description":"Connection Variables is a list of default variables initialised in every connector connection.","items":{"description":"ConnectionVariable denotes an arbitrary key/value pair which can be used to configure a connector.","type":"object","properties":{"name":{"type":"string","description":"Name is the name of the connection variable.","isRequired":true,"uniqueKey":"connector.connectionVariables.items.[INDEX].name","typeLabel":"string"},"value":{"type":"string","description":"Value is the value of the connection variable.","isRequired":true,"uniqueKey":"connector.connectionVariables.items.[INDEX].value","typeLabel":"string"}},"required":["name","value"],"uniqueKey":"connector.connectionVariables.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connector.connectionVariables","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"connector","typeLabel":"object"},"definitions":{"type":"array","items":{"type":"object","description":"Definition describes a single definition of a type which is used by the Connector. The schema language used is\ndependent on the media-type of the Definition, for example JSON Schema is used for media-types application/json.\n","required":["url","name","accept","id"],"properties":{"id":{"description":"ID is the unique identifier of the Definition.","type":"string","format":"ulid","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"definitions.items.[INDEX].id","typeLabel":"string\u003culid>"},"name":{"description":"Name is a unique identifier for the Definition within the scope of the Connector. It is expected to both\nhuman and machine-readable, i.e. \"Product\" or \"product_variant\".\n","type":"string","regex":"^[a-zA-Z0-9_\\-]+$","isRequired":true,"uniqueKey":"definitions.items.[INDEX].name","typeLabel":"string"},"accept":{"description":"Accept indicates which content types, expressed as MIME types, that this definition can accept. This value \nis analogous to the Accept HTTP header, as defined in RFC 7231, section 5.3.2, except each type is defined\nin a separate array element, rather than as a comma-separated list.\n\nThis does not represent the content type of the schema body itself, but the data which conforms to this \ndefinition. For example, an API may respond in JSON or YAML, but the schema may be a YAML-formatted JSON \nSchema. In this case, the Definition's `accept` field could be `[\"application/json\", \"text/yaml\"]` and \n`schema.contentType` will be `application/schema+yaml`.\n","type":"array","items":{"type":"string","uniqueKey":"definitions.items.[INDEX].accept.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"definitions.items.[INDEX].accept","typeLabel":"string[]"},"url":{"description":"URL is the location of the actual Schema definition for this Definition entity.\n\nThe structure of this URL will be consistent across all media types for each connection, for example:\n\n- `https://platform.versori.com/api/schemas/v1/o/{organisation_id}/{connector_id}/{connector_version}/{definition_slug}.{media_type_ext}`\n","type":"string","format":"uri","x-go-name":"URL","isRequired":true,"uniqueKey":"definitions.items.[INDEX].url","typeLabel":"string\u003curi>"},"description":{"description":"Description is a human-friendly description of the Definition. This is typically used to describe the\npurpose of the Definition and how it should be used.\n","type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"definitions.items.[INDEX].description","typeLabel":"string"},"referencedBy":{"description":"ReferencedBy is a list of DefinitionReference objects which defines what other entities are\nreferencing the this Definition.\n","type":"array","items":{"description":"DefinitionReference defines where another resource references this Definition.\n","type":"object","properties":{"type":{"type":"string","enum":["definition","action","trigger"],"isRequired":true,"uniqueKey":"definitions.items.[INDEX].referencedBy.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the Definition/Action/Trigger.","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"definitions.items.[INDEX].referencedBy.items.[INDEX].id","typeLabel":"string\u003culid>"},"name":{"type":"string","description":"Name is unique identifier for the Definition/Action/Trigger within the scope of the Connector. It is\nexpected to both human and machine-readable, i.e. \"ProductFeature\" or \"stock_item\".\n","regex":"^[a-zA-Z0-9\\-_]+$","isRequired":true,"uniqueKey":"definitions.items.[INDEX].referencedBy.items.[INDEX].name","typeLabel":"string"}},"required":["type","id","name"],"uniqueKey":"definitions.items.[INDEX].referencedBy.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"definitions.items.[INDEX].referencedBy","typeLabel":"object[]"}},"uniqueKey":"definitions.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"definitions","typeLabel":"object[]"},"actions":{"type":"array","items":{"type":"object","description":"ActionHTTP defines an HTTP Action.","required":["type","method","path","parameters","responses","name","id"],"properties":{"id":{"description":"ID is the unique identifier of the Action.","type":"string","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"actions.items.[INDEX].id","typeLabel":"string"},"type":{"type":"string","enum":["http"],"const":"http","isRequired":true,"uniqueKey":"actions.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"name":{"description":"Name is a unique identifier for the Action within the scope of the Connector. It is expected to both\nhuman and machine-readable, i.e. \"GetProduct\" or \"get_products\", see the validation regex for more details.\n","type":"string","regex":"^[a-zA-Z0-9_\\-$]+$","x-go-type-skip-optional-pointer":true,"isRequired":true,"uniqueKey":"actions.items.[INDEX].name","typeLabel":"string"},"method":{"description":"HTTPMethod defines the HTTP method which will be used when invoking the Action. This is typically one of the\nstandard HTTP methods such as GET, POST, PUT, PATCH or DELETE, but may be any valid HTTP method.\n","type":"string","enum":["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS","CONNECT","TRACE"],"isRequired":true,"uniqueKey":"actions.items.[INDEX].method","typeLabel":"enum\u003cstring>"},"path":{"description":"ActionPath is appended to the Connector's base URL to build the full URL to send requests to. It may\nalso contain placeholders to inject dynamic values from the following sources:\n\n- `{{ param.\u003cname> }}` - Injects the value of the parameter with the given name.\n- `{{ conn.\u003cname> }}` - Injects the value of the connection variable with the given name.\n","type":"string","isRequired":true,"uniqueKey":"actions.items.[INDEX].path","typeLabel":"string"},"parameters":{"type":"array","items":{"description":"ActionHTTPParameter defines a parameter which is sent to the HTTP endpoint when invoking the Action. This may\nbe a query parameter, header or cookie depending on the `in` field.\n","type":"object","properties":{"name":{"type":"string","description":"Name is the name of the parameter which will be sent to the HTTP endpoint.","isRequired":true,"uniqueKey":"actions.items.[INDEX].parameters.items.[INDEX].name","typeLabel":"string"},"in":{"type":"string","enum":["cookie","header","path","query"],"isRequired":true,"uniqueKey":"actions.items.[INDEX].parameters.items.[INDEX].in","typeLabel":"enum\u003cstring>"},"required":{"description":"Required denotes whether this parameter is required.","type":"boolean","isRequired":true,"uniqueKey":"actions.items.[INDEX].parameters.items.[INDEX].required","typeLabel":"boolean"},"type":{"description":"Type is the type of the parameter. Currently only scalar types are supported, if you \nrequire complex types then get in touch with support to discuss options.\n","type":"string","enum":["string","number","integer","boolean"],"isRequired":true,"uniqueKey":"actions.items.[INDEX].parameters.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"default":{"description":"Default is the default value to use for the parameter if no value is provided by the \nuser. If this is not defined then the parameter will not be sent to the HTTP endpoint\nif no value is explicitly provided by the user.\n\nIf this value is a string, it may be templated using a Go-formatted template \nstring, i.e. `{{ .conn.foo }}` where `foo` is an connection variable defined in the \nConnector's Connection.\n","x-go-type-skip-optional-pointer":true,"uniqueKey":"actions.items.[INDEX].parameters.items.[INDEX].default","typeLabel":"any"},"completion":{"description":"ActionCompletion defines how an Action may be completed by Switchboard to aid the user in selecting a valid\nvalue. Schema TBD.\n","type":"object","additionalProperties":false,"uniqueKey":"actions.items.[INDEX].parameters.items.[INDEX].completion","typeLabel":"object"}},"required":["name","in","required","type"],"uniqueKey":"actions.items.[INDEX].parameters.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"actions.items.[INDEX].parameters","typeLabel":"object[]"},"responses":{"description":"Responses defines the expected responses from the HTTP endpoint. This is used to determine whether the\nAction was successful or not.\n","type":"array","items":{"type":"object","description":"ActionHTTPResponse defines what responses may be returned by the HTTP server when invoking the Action.\n","required":["id","definitions"],"properties":{"id":{"type":"string","format":"ulid","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"actions.items.[INDEX].responses.items.[INDEX].id","typeLabel":"string\u003culid>"},"definitions":{"description":"An Action may support one Definition per media-type, i.e. application/json or application/xml etc.\nAttempts to link multiple Definitions with the same media-type will result in an error.\n","type":"array","items":{"description":"ActionDefinition links a Definition to an Action.","type":"object","properties":{"id":{"description":"ID is a unique identifier for the request body within the scope of the Action.\n","type":"string","format":"ulid","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"actions.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].id","typeLabel":"string\u003culid>"},"definition":{"type":"object","description":"Definition describes a single definition of a type which is used by the Connector. The schema language used is\ndependent on the media-type of the Definition, for example JSON Schema is used for media-types application/json.\n","required":["url","name","accept","id"],"properties":{"id":{"description":"ID is the unique identifier of the Definition.","type":"string","format":"ulid","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"actions.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition.id","typeLabel":"string\u003culid>"},"name":{"description":"Name is a unique identifier for the Definition within the scope of the Connector. It is expected to both\nhuman and machine-readable, i.e. \"Product\" or \"product_variant\".\n","type":"string","regex":"^[a-zA-Z0-9_\\-]+$","isRequired":true,"uniqueKey":"actions.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition.name","typeLabel":"string"},"accept":{"description":"Accept indicates which content types, expressed as MIME types, that this definition can accept. This value \nis analogous to the Accept HTTP header, as defined in RFC 7231, section 5.3.2, except each type is defined\nin a separate array element, rather than as a comma-separated list.\n\nThis does not represent the content type of the schema body itself, but the data which conforms to this \ndefinition. For example, an API may respond in JSON or YAML, but the schema may be a YAML-formatted JSON \nSchema. In this case, the Definition's `accept` field could be `[\"application/json\", \"text/yaml\"]` and \n`schema.contentType` will be `application/schema+yaml`.\n","type":"array","items":{"type":"string","uniqueKey":"actions.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition.accept.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"actions.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition.accept","typeLabel":"string[]"},"url":{"description":"URL is the location of the actual Schema definition for this Definition entity.\n\nThe structure of this URL will be consistent across all media types for each connection, for example:\n\n- `https://platform.versori.com/api/schemas/v1/o/{organisation_id}/{connector_id}/{connector_version}/{definition_slug}.{media_type_ext}`\n","type":"string","format":"uri","x-go-name":"URL","isRequired":true,"uniqueKey":"actions.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition.url","typeLabel":"string\u003curi>"},"description":{"description":"Description is a human-friendly description of the Definition. This is typically used to describe the\npurpose of the Definition and how it should be used.\n","type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"actions.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition.description","typeLabel":"string"},"referencedBy":{"description":"ReferencedBy is a list of DefinitionReference objects which defines what other entities are\nreferencing the this Definition.\n","type":"array","items":{"description":"DefinitionReference defines where another resource references this Definition.\n","type":"object","properties":{"type":{"type":"string","enum":["definition","action","trigger"],"isRequired":true,"uniqueKey":"actions.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition.referencedBy.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the Definition/Action/Trigger.","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"actions.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition.referencedBy.items.[INDEX].id","typeLabel":"string\u003culid>"},"name":{"type":"string","description":"Name is unique identifier for the Definition/Action/Trigger within the scope of the Connector. It is\nexpected to both human and machine-readable, i.e. \"ProductFeature\" or \"stock_item\".\n","regex":"^[a-zA-Z0-9\\-_]+$","isRequired":true,"uniqueKey":"actions.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition.referencedBy.items.[INDEX].name","typeLabel":"string"}},"required":["type","id","name"],"uniqueKey":"actions.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition.referencedBy.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"actions.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition.referencedBy","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"actions.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition","typeLabel":"object"}},"required":["id","definition"],"uniqueKey":"actions.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"actions.items.[INDEX].responses.items.[INDEX].definitions","typeLabel":"object[]"},"status":{"description":"Status is the HTTP status code which is expected from the HTTP endpoint. If this is not defined then this\nresponse is treated as the default response, i.e. if no other response matches then this response will be\nused. An action may only have one default response and each response must have a unique status code.\n","type":"integer","uniqueKey":"actions.items.[INDEX].responses.items.[INDEX].status","typeLabel":"integer"}},"uniqueKey":"actions.items.[INDEX].responses.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"actions.items.[INDEX].responses","typeLabel":"object[]"},"errors":{"description":"Errors is a list of ErrorField objects which defines the errors which may be returned by the Action. An\nempty array denotes that the Action has been validated and no errors were found. If this field is\nundefined then this means validation has not occurred.\n","type":"array","items":{"description":"ActionError is the payload returned when an Action fails validation","type":"object","properties":{"field":{"description":"Field is the field which failed validation. This is typically a JSON Pointer, i.e.\n\"/parameters/0/properties/id\", however this is open for discussion (we should be consistent with the\nErrorField type).\n","type":"string","isRequired":true,"uniqueKey":"actions.items.[INDEX].errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","description":"Message is a human-readable description of the error. This is typically a human-readable string, i.e.\n\"The parameter 'id' is invalid\".\n","isRequired":true,"uniqueKey":"actions.items.[INDEX].errors.items.[INDEX].message","typeLabel":"string"},"severity":{"description":"Severity is the severity of the error. This is used to determine how the error should be displayed to the\nuser, i.e. a warning may be displayed in a modal dialog, whereas an error may be displayed inline.\n","type":"string","enum":["error","warning"],"isRequired":true,"uniqueKey":"actions.items.[INDEX].errors.items.[INDEX].severity","typeLabel":"enum\u003cstring>"}},"required":["field","message","severity"],"uniqueKey":"actions.items.[INDEX].errors.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"actions.items.[INDEX].errors","typeLabel":"object[]"},"summary":{"type":"string","description":"Summary is a human-readable version of the `id` field, i.e. \"Get Product\" or \"Get Products\". This is used\nwhen displaying the Action to users, however if omitted the `actionId` can be used to display to users\ninstead.\n","x-go-type-skip-optional-pointer":true,"uniqueKey":"actions.items.[INDEX].summary","typeLabel":"string"},"description":{"description":"Description is a human-readable description of the Action. It can provide extra information to users about how\nthe Action operates and anything the user may need to be aware of when using it.\n","type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"actions.items.[INDEX].description","typeLabel":"string"},"requestBody":{"description":"ActionHTTPRequestBody defines whether a request body is required for a particular HTTP Action, and if so which\nDefinitions are considered valid. If this value is undefined then no request body will be sent.\n","type":"object","properties":{"required":{"type":"boolean","description":"Required denotes whether a request body is required for this Action.","isRequired":true,"uniqueKey":"actions.items.[INDEX].requestBody.required","typeLabel":"boolean"},"definitions":{"description":"An Action may support one Definition per media-type, i.e. application/json or application/xml etc.\nAttempts to link multiple Definitions with the same media-type will result in an error.\n","type":"array","items":{"description":"ActionDefinition links a Definition to an Action.","type":"object","properties":{"id":{"description":"ID is a unique identifier for the request body within the scope of the Action.\n","type":"string","format":"ulid","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"actions.items.[INDEX].requestBody.definitions.items.[INDEX].id","typeLabel":"string\u003culid>"},"definition":{"type":"object","description":"Definition describes a single definition of a type which is used by the Connector. The schema language used is\ndependent on the media-type of the Definition, for example JSON Schema is used for media-types application/json.\n","required":["url","name","accept","id"],"properties":{"id":{"description":"ID is the unique identifier of the Definition.","type":"string","format":"ulid","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"actions.items.[INDEX].requestBody.definitions.items.[INDEX].definition.id","typeLabel":"string\u003culid>"},"name":{"description":"Name is a unique identifier for the Definition within the scope of the Connector. It is expected to both\nhuman and machine-readable, i.e. \"Product\" or \"product_variant\".\n","type":"string","regex":"^[a-zA-Z0-9_\\-]+$","isRequired":true,"uniqueKey":"actions.items.[INDEX].requestBody.definitions.items.[INDEX].definition.name","typeLabel":"string"},"accept":{"description":"Accept indicates which content types, expressed as MIME types, that this definition can accept. This value \nis analogous to the Accept HTTP header, as defined in RFC 7231, section 5.3.2, except each type is defined\nin a separate array element, rather than as a comma-separated list.\n\nThis does not represent the content type of the schema body itself, but the data which conforms to this \ndefinition. For example, an API may respond in JSON or YAML, but the schema may be a YAML-formatted JSON \nSchema. In this case, the Definition's `accept` field could be `[\"application/json\", \"text/yaml\"]` and \n`schema.contentType` will be `application/schema+yaml`.\n","type":"array","items":{"type":"string","uniqueKey":"actions.items.[INDEX].requestBody.definitions.items.[INDEX].definition.accept.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"actions.items.[INDEX].requestBody.definitions.items.[INDEX].definition.accept","typeLabel":"string[]"},"url":{"description":"URL is the location of the actual Schema definition for this Definition entity.\n\nThe structure of this URL will be consistent across all media types for each connection, for example:\n\n- `https://platform.versori.com/api/schemas/v1/o/{organisation_id}/{connector_id}/{connector_version}/{definition_slug}.{media_type_ext}`\n","type":"string","format":"uri","x-go-name":"URL","isRequired":true,"uniqueKey":"actions.items.[INDEX].requestBody.definitions.items.[INDEX].definition.url","typeLabel":"string\u003curi>"},"description":{"description":"Description is a human-friendly description of the Definition. This is typically used to describe the\npurpose of the Definition and how it should be used.\n","type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"actions.items.[INDEX].requestBody.definitions.items.[INDEX].definition.description","typeLabel":"string"},"referencedBy":{"description":"ReferencedBy is a list of DefinitionReference objects which defines what other entities are\nreferencing the this Definition.\n","type":"array","items":{"description":"DefinitionReference defines where another resource references this Definition.\n","type":"object","properties":{"type":{"type":"string","enum":["definition","action","trigger"],"isRequired":true,"uniqueKey":"actions.items.[INDEX].requestBody.definitions.items.[INDEX].definition.referencedBy.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the Definition/Action/Trigger.","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"actions.items.[INDEX].requestBody.definitions.items.[INDEX].definition.referencedBy.items.[INDEX].id","typeLabel":"string\u003culid>"},"name":{"type":"string","description":"Name is unique identifier for the Definition/Action/Trigger within the scope of the Connector. It is\nexpected to both human and machine-readable, i.e. \"ProductFeature\" or \"stock_item\".\n","regex":"^[a-zA-Z0-9\\-_]+$","isRequired":true,"uniqueKey":"actions.items.[INDEX].requestBody.definitions.items.[INDEX].definition.referencedBy.items.[INDEX].name","typeLabel":"string"}},"required":["type","id","name"],"uniqueKey":"actions.items.[INDEX].requestBody.definitions.items.[INDEX].definition.referencedBy.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"actions.items.[INDEX].requestBody.definitions.items.[INDEX].definition.referencedBy","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"actions.items.[INDEX].requestBody.definitions.items.[INDEX].definition","typeLabel":"object"}},"required":["id","definition"],"uniqueKey":"actions.items.[INDEX].requestBody.definitions.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"actions.items.[INDEX].requestBody.definitions","typeLabel":"object[]"}},"required":["required","definitions"],"uniqueKey":"actions.items.[INDEX].requestBody","typeLabel":"object"}},"uniqueKey":"actions.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"actions","typeLabel":"object[]"},"triggers":{"type":"array","items":{"type":"object","description":"TriggerHTTP defines an HTTP Trigger.","required":["type","method","parameters","responses","name","id"],"properties":{"id":{"description":"ID is the unique identifier of the Trigger.","type":"string","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"triggers.items.[INDEX].id","typeLabel":"string"},"type":{"type":"string","enum":["http"],"const":"http","isRequired":true,"uniqueKey":"triggers.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"name":{"description":"Name is a unique identifier for the Trigger within the scope of the Connector. It is expected to both\nhuman and machine-readable, i.e. \"GetProduct\" or \"get_products\", see the validation regex for more details.\n","type":"string","regex":"^[a-zA-Z0-9_\\-$]+$","x-go-type-skip-optional-pointer":true,"isRequired":true,"uniqueKey":"triggers.items.[INDEX].name","typeLabel":"string"},"method":{"description":"HTTPMethod defines the HTTP method which will be used when invoking the Action. This is typically one of the\nstandard HTTP methods such as GET, POST, PUT, PATCH or DELETE, but may be any valid HTTP method.\n","type":"string","enum":["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS","CONNECT","TRACE"],"isRequired":true,"uniqueKey":"triggers.items.[INDEX].method","typeLabel":"enum\u003cstring>"},"parameters":{"type":"array","items":{"description":"TriggerHTTPParameter defines a parameter which is sent to the HTTP endpoint when invoking \nthe Trigger. This may be a query parameter, header or cookie depending on the `in` field.\n","type":"object","properties":{"name":{"type":"string","description":"Name is the name of the parameter which will be sent to the HTTP endpoint.","isRequired":true,"uniqueKey":"triggers.items.[INDEX].parameters.items.[INDEX].name","typeLabel":"string"},"in":{"type":"string","enum":["cookie","header","query"],"isRequired":true,"uniqueKey":"triggers.items.[INDEX].parameters.items.[INDEX].in","typeLabel":"enum\u003cstring>"},"required":{"description":"Required denotes whether this parameter is required.","type":"boolean","isRequired":true,"uniqueKey":"triggers.items.[INDEX].parameters.items.[INDEX].required","typeLabel":"boolean"},"type":{"description":"Type is the type of the parameter. Currently only scalar types are supported, if you \nrequire complex types then get in touch with support to discuss options.\n","type":"string","enum":["string","number","integer","boolean"],"isRequired":true,"uniqueKey":"triggers.items.[INDEX].parameters.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"default":{"description":"Default is the default value to use for the parameter if no value is provided by the \nuser. If this is not defined then the parameter will not be sent to the HTTP endpoint\nif no value is explicitly provided by the user.\n\nIf this value is a string, it may be templated using a Go-formatted template \nstring, i.e. `{{ .conn.foo }}` where `foo` is an connection variable defined in the \nConnector's Connection.\n","x-go-type-skip-optional-pointer":true,"uniqueKey":"triggers.items.[INDEX].parameters.items.[INDEX].default","typeLabel":"any"}},"required":["name","in","required","type"],"uniqueKey":"triggers.items.[INDEX].parameters.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"triggers.items.[INDEX].parameters","typeLabel":"object[]"},"responses":{"description":"Responses defines the expected responses from the HTTP endpoint. This is used to determine whether the\nTrigger was successful or not.\n","type":"array","items":{"type":"object","description":"TriggerHTTPResponse defines what responses may be returned by the HTTP server when invoking the Trigger.\n","required":["id","definitions"],"properties":{"id":{"type":"string","format":"ulid","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"triggers.items.[INDEX].responses.items.[INDEX].id","typeLabel":"string\u003culid>"},"definitions":{"description":"a Trigger may support one Definition per media-type, i.e. application/json or application/xml etc.\nAttempts to link multiple Definitions with the same media-type will result in an error.\n","type":"array","items":{"description":"TriggerDefinition links a Definition to a Trigger.","type":"object","properties":{"id":{"description":"ID is a unique identifier for the request body within the scope of the Trigger.\n","type":"string","format":"ulid","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"triggers.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].id","typeLabel":"string\u003culid>"},"definition":{"type":"object","description":"Definition describes a single definition of a type which is used by the Connector. The schema language used is\ndependent on the media-type of the Definition, for example JSON Schema is used for media-types application/json.\n","required":["url","name","accept","id"],"properties":{"id":{"description":"ID is the unique identifier of the Definition.","type":"string","format":"ulid","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"triggers.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition.id","typeLabel":"string\u003culid>"},"name":{"description":"Name is a unique identifier for the Definition within the scope of the Connector. It is expected to both\nhuman and machine-readable, i.e. \"Product\" or \"product_variant\".\n","type":"string","regex":"^[a-zA-Z0-9_\\-]+$","isRequired":true,"uniqueKey":"triggers.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition.name","typeLabel":"string"},"accept":{"description":"Accept indicates which content types, expressed as MIME types, that this definition can accept. This value \nis analogous to the Accept HTTP header, as defined in RFC 7231, section 5.3.2, except each type is defined\nin a separate array element, rather than as a comma-separated list.\n\nThis does not represent the content type of the schema body itself, but the data which conforms to this \ndefinition. For example, an API may respond in JSON or YAML, but the schema may be a YAML-formatted JSON \nSchema. In this case, the Definition's `accept` field could be `[\"application/json\", \"text/yaml\"]` and \n`schema.contentType` will be `application/schema+yaml`.\n","type":"array","items":{"type":"string","uniqueKey":"triggers.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition.accept.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"triggers.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition.accept","typeLabel":"string[]"},"url":{"description":"URL is the location of the actual Schema definition for this Definition entity.\n\nThe structure of this URL will be consistent across all media types for each connection, for example:\n\n- `https://platform.versori.com/api/schemas/v1/o/{organisation_id}/{connector_id}/{connector_version}/{definition_slug}.{media_type_ext}`\n","type":"string","format":"uri","x-go-name":"URL","isRequired":true,"uniqueKey":"triggers.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition.url","typeLabel":"string\u003curi>"},"description":{"description":"Description is a human-friendly description of the Definition. This is typically used to describe the\npurpose of the Definition and how it should be used.\n","type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"triggers.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition.description","typeLabel":"string"},"referencedBy":{"description":"ReferencedBy is a list of DefinitionReference objects which defines what other entities are\nreferencing the this Definition.\n","type":"array","items":{"description":"DefinitionReference defines where another resource references this Definition.\n","type":"object","properties":{"type":{"type":"string","enum":["definition","action","trigger"],"isRequired":true,"uniqueKey":"triggers.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition.referencedBy.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the Definition/Action/Trigger.","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"triggers.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition.referencedBy.items.[INDEX].id","typeLabel":"string\u003culid>"},"name":{"type":"string","description":"Name is unique identifier for the Definition/Action/Trigger within the scope of the Connector. It is\nexpected to both human and machine-readable, i.e. \"ProductFeature\" or \"stock_item\".\n","regex":"^[a-zA-Z0-9\\-_]+$","isRequired":true,"uniqueKey":"triggers.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition.referencedBy.items.[INDEX].name","typeLabel":"string"}},"required":["type","id","name"],"uniqueKey":"triggers.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition.referencedBy.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"triggers.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition.referencedBy","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"triggers.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX].definition","typeLabel":"object"}},"required":["id","definition"],"uniqueKey":"triggers.items.[INDEX].responses.items.[INDEX].definitions.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"triggers.items.[INDEX].responses.items.[INDEX].definitions","typeLabel":"object[]"},"status":{"description":"Status is the HTTP status code which is expected from the HTTP endpoint. If this is not defined then this\nresponse is treated as the default response, i.e. if no other response matches then this response will be\nused. a Trigger may only have one default response and each response must have a unique status code.\n","type":"integer","uniqueKey":"triggers.items.[INDEX].responses.items.[INDEX].status","typeLabel":"integer"}},"uniqueKey":"triggers.items.[INDEX].responses.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"triggers.items.[INDEX].responses","typeLabel":"object[]"},"errors":{"description":"Errors is a list of ErrorField objects which defines the errors which may be returned by the Trigger. An\nempty array denotes that the Trigger has been validated and no errors were found. If this field is\nundefined then this means validation has not occurred.\n","type":"array","items":{"description":"TriggerError is the payload returned when a Trigger fails validation","type":"object","properties":{"field":{"description":"Field is the field which failed validation. This is typically a JSON Pointer, i.e.\n\"/parameters/0/properties/id\", however this is open for discussion (we should be consistent with the\nErrorField type).\n","type":"string","isRequired":true,"uniqueKey":"triggers.items.[INDEX].errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","description":"Message is a human-readable description of the error. This is typically a human-readable string, i.e.\n\"The parameter 'id' is invalid\".\n","isRequired":true,"uniqueKey":"triggers.items.[INDEX].errors.items.[INDEX].message","typeLabel":"string"},"severity":{"description":"Severity is the severity of the error. This is used to determine how the error should be displayed to the\nuser, i.e. a warning may be displayed in a modal dialog, whereas an error may be displayed inline.\n","type":"string","enum":["error","warning"],"isRequired":true,"uniqueKey":"triggers.items.[INDEX].errors.items.[INDEX].severity","typeLabel":"enum\u003cstring>"}},"required":["field","message","severity"],"uniqueKey":"triggers.items.[INDEX].errors.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"triggers.items.[INDEX].errors","typeLabel":"object[]"},"summary":{"type":"string","description":"Summary is a human-readable version of the `id` field, i.e. \"Get Product\" or \"Get Products\". This is used\nwhen displaying the Trigger to users, however if omitted the `TriggerId` can be used to display to users\ninstead.\n","x-go-type-skip-optional-pointer":true,"uniqueKey":"triggers.items.[INDEX].summary","typeLabel":"string"},"description":{"description":"Description is a human-readable description of the Trigger. It can provide extra information to users about how\nthe Trigger operates and anything the user may need to be aware of when using it.\n","type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"triggers.items.[INDEX].description","typeLabel":"string"},"requestBody":{"description":"TriggerHTTPRequestBody defines whether a request body is required for a particular HTTP Trigger, and if so which\nDefinitions are considered valid. If this value is undefined then no request body will be sent.\n","type":"object","properties":{"required":{"type":"boolean","description":"Required denotes whether a request body is required for this Trigger.","isRequired":true,"uniqueKey":"triggers.items.[INDEX].requestBody.required","typeLabel":"boolean"},"definitions":{"description":"a Trigger may support one Definition per media-type, i.e. application/json or application/xml etc.\nAttempts to link multiple Definitions with the same media-type will result in an error.\n","type":"array","items":{"description":"TriggerDefinition links a Definition to a Trigger.","type":"object","properties":{"id":{"description":"ID is a unique identifier for the request body within the scope of the Trigger.\n","type":"string","format":"ulid","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"triggers.items.[INDEX].requestBody.definitions.items.[INDEX].id","typeLabel":"string\u003culid>"},"definition":{"type":"object","description":"Definition describes a single definition of a type which is used by the Connector. The schema language used is\ndependent on the media-type of the Definition, for example JSON Schema is used for media-types application/json.\n","required":["url","name","accept","id"],"properties":{"id":{"description":"ID is the unique identifier of the Definition.","type":"string","format":"ulid","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"triggers.items.[INDEX].requestBody.definitions.items.[INDEX].definition.id","typeLabel":"string\u003culid>"},"name":{"description":"Name is a unique identifier for the Definition within the scope of the Connector. It is expected to both\nhuman and machine-readable, i.e. \"Product\" or \"product_variant\".\n","type":"string","regex":"^[a-zA-Z0-9_\\-]+$","isRequired":true,"uniqueKey":"triggers.items.[INDEX].requestBody.definitions.items.[INDEX].definition.name","typeLabel":"string"},"accept":{"description":"Accept indicates which content types, expressed as MIME types, that this definition can accept. This value \nis analogous to the Accept HTTP header, as defined in RFC 7231, section 5.3.2, except each type is defined\nin a separate array element, rather than as a comma-separated list.\n\nThis does not represent the content type of the schema body itself, but the data which conforms to this \ndefinition. For example, an API may respond in JSON or YAML, but the schema may be a YAML-formatted JSON \nSchema. In this case, the Definition's `accept` field could be `[\"application/json\", \"text/yaml\"]` and \n`schema.contentType` will be `application/schema+yaml`.\n","type":"array","items":{"type":"string","uniqueKey":"triggers.items.[INDEX].requestBody.definitions.items.[INDEX].definition.accept.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"triggers.items.[INDEX].requestBody.definitions.items.[INDEX].definition.accept","typeLabel":"string[]"},"url":{"description":"URL is the location of the actual Schema definition for this Definition entity.\n\nThe structure of this URL will be consistent across all media types for each connection, for example:\n\n- `https://platform.versori.com/api/schemas/v1/o/{organisation_id}/{connector_id}/{connector_version}/{definition_slug}.{media_type_ext}`\n","type":"string","format":"uri","x-go-name":"URL","isRequired":true,"uniqueKey":"triggers.items.[INDEX].requestBody.definitions.items.[INDEX].definition.url","typeLabel":"string\u003curi>"},"description":{"description":"Description is a human-friendly description of the Definition. This is typically used to describe the\npurpose of the Definition and how it should be used.\n","type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"triggers.items.[INDEX].requestBody.definitions.items.[INDEX].definition.description","typeLabel":"string"},"referencedBy":{"description":"ReferencedBy is a list of DefinitionReference objects which defines what other entities are\nreferencing the this Definition.\n","type":"array","items":{"description":"DefinitionReference defines where another resource references this Definition.\n","type":"object","properties":{"type":{"type":"string","enum":["definition","action","trigger"],"isRequired":true,"uniqueKey":"triggers.items.[INDEX].requestBody.definitions.items.[INDEX].definition.referencedBy.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"id":{"type":"string","format":"ulid","description":"ID is the unique identifier of the Definition/Action/Trigger.","x-go-name":"ID","x-go-type":"ulid.ULID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"triggers.items.[INDEX].requestBody.definitions.items.[INDEX].definition.referencedBy.items.[INDEX].id","typeLabel":"string\u003culid>"},"name":{"type":"string","description":"Name is unique identifier for the Definition/Action/Trigger within the scope of the Connector. It is\nexpected to both human and machine-readable, i.e. \"ProductFeature\" or \"stock_item\".\n","regex":"^[a-zA-Z0-9\\-_]+$","isRequired":true,"uniqueKey":"triggers.items.[INDEX].requestBody.definitions.items.[INDEX].definition.referencedBy.items.[INDEX].name","typeLabel":"string"}},"required":["type","id","name"],"uniqueKey":"triggers.items.[INDEX].requestBody.definitions.items.[INDEX].definition.referencedBy.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"triggers.items.[INDEX].requestBody.definitions.items.[INDEX].definition.referencedBy","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"triggers.items.[INDEX].requestBody.definitions.items.[INDEX].definition","typeLabel":"object"}},"required":["id","definition"],"uniqueKey":"triggers.items.[INDEX].requestBody.definitions.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"triggers.items.[INDEX].requestBody.definitions","typeLabel":"object[]"}},"required":["required","definitions"],"uniqueKey":"triggers.items.[INDEX].requestBody","typeLabel":"object"}},"uniqueKey":"triggers.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"triggers","typeLabel":"object[]"},"messages":{"type":"array","items":{"description":"Message is a message to be displayed to the user to indicate some information about the\npreceding request.\n","type":"object","properties":{"text":{"description":"Text contains the text of the message.","type":"string","isRequired":true,"uniqueKey":"messages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"messages.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"detail":{"description":"Details contains additional information about the message. This is intended to be used\nto provide more information about the message, such as a list of validation errors.\n","type":"array","items":{"type":"string","uniqueKey":"messages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"messages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"messages.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"messages","typeLabel":"object[]"}},"required":["connector","definitions","actions","triggers","messages"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"connector":{"id":"\u003cstring>","organisationId":"\u003cstring>","name":"\u003cstring>","public":true,"protocol":"http","authSchemeConfigs":[{"id":"\u003cstring>","description":"\u003cstring>","schemeType":"none","validationMessages":[{"text":"\u003cstring>","severity":"info","detail":["\u003cstring>"]}]}],"connections":[{"id":"\u003cstring>","name":"\u003cstring>","credentials":{"action":[{"id":"\u003cstring>","authSchemeConfig":{"id":"\u003cstring>","description":"\u003cstring>","schemeType":"none","validationMessages":[{"text":"\u003cstring>","severity":"info","detail":["\u003cstring>"]}]},"credential":{"id":"\u003cstring>","organisationId":"\u003cstring>","type":"none","name":"\u003cstring>","data":{},"usages":[{"connection":{"id":"\u003cstring>","name":"\u003cstring>","connector":{"id":"\u003cstring>","organisationId":"\u003cstring>","name":"\u003cstring>","protocol":"http","createdAt":"2023-11-07T05:31:56Z","updatedAt":"2023-11-07T05:31:56Z"},"createdAt":"2023-11-07T05:31:56Z","updatedAt":"2023-11-07T05:31:56Z"}}],"errors":["\u003cstring>"],"expiresAt":"2023-11-07T05:31:56Z"}}],"trigger":[{"id":"\u003cstring>","authSchemeConfig":{"id":"\u003cstring>","description":"\u003cstring>","schemeType":"none","validationMessages":[{"text":"\u003cstring>","severity":"info","detail":["\u003cstring>"]}]},"credential":{"id":"\u003cstring>","organisationId":"\u003cstring>","type":"none","name":"\u003cstring>","data":{},"usages":[{"connection":{"id":"\u003cstring>","name":"\u003cstring>","connector":{"id":"\u003cstring>","organisationId":"\u003cstring>","name":"\u003cstring>","protocol":"http","createdAt":"2023-11-07T05:31:56Z","updatedAt":"2023-11-07T05:31:56Z"},"createdAt":"2023-11-07T05:31:56Z","updatedAt":"2023-11-07T05:31:56Z"}}],"errors":["\u003cstring>"],"expiresAt":"2023-11-07T05:31:56Z"}}]},"variables":[{"name":"\u003cstring>","value":"\u003cstring>"}],"createdAt":"2023-11-07T05:31:56Z","updatedAt":"2023-11-07T05:31:56Z"}],"versions":[{"id":"\u003cstring>","name":"\u003cstring>","isLatest":true,"isDefault":true,"createdAt":"2023-11-07T05:31:56Z","updatedAt":"2023-11-07T05:31:56Z","publishedAt":"2023-11-07T05:31:56Z","description":"\u003cstring>","messages":[{"text":"\u003cstring>","severity":"info","detail":["\u003cstring>"]}]}],"createdAt":"2023-11-07T05:31:56Z","updatedAt":"2023-11-07T05:31:56Z","baseUrl":"\u003cstring>","documentationURL":"\u003cstring>","imageURL":"\u003cstring>","tags":{},"connectionVariables":[{"name":"\u003cstring>","value":"\u003cstring>"}]},"definitions":[{"id":"\u003cstring>","name":"\u003cstring>","accept":["\u003cstring>"],"url":"\u003cstring>","description":"\u003cstring>","referencedBy":[{"type":"definition","id":"\u003cstring>","name":"\u003cstring>"}]}],"actions":[{"id":"\u003cstring>","type":"http","name":"\u003cstring>","method":"GET","path":"\u003cstring>","parameters":[{"name":"\u003cstring>","in":"cookie","required":true,"type":"string","default":"\u003cunknown>","completion":{}}],"responses":[{"id":"\u003cstring>","definitions":[{"id":"\u003cstring>","definition":{"id":"\u003cstring>","name":"\u003cstring>","accept":["\u003cstring>"],"url":"\u003cstring>","description":"\u003cstring>","referencedBy":[{"type":"definition","id":"\u003cstring>","name":"\u003cstring>"}]}}],"status":123}],"errors":[{"field":"\u003cstring>","message":"\u003cstring>","severity":"error"}],"summary":"\u003cstring>","description":"\u003cstring>","requestBody":{"required":true,"definitions":[{"id":"\u003cstring>","definition":{"id":"\u003cstring>","name":"\u003cstring>","accept":["\u003cstring>"],"url":"\u003cstring>","description":"\u003cstring>","referencedBy":[{"type":"definition","id":"\u003cstring>","name":"\u003cstring>"}]}}]}}],"triggers":[{"id":"\u003cstring>","type":"http","name":"\u003cstring>","method":"GET","parameters":[{"name":"\u003cstring>","in":"cookie","required":true,"type":"string","default":"\u003cunknown>"}],"responses":[{"id":"\u003cstring>","definitions":[{"id":"\u003cstring>","definition":{"id":"\u003cstring>","name":"\u003cstring>","accept":["\u003cstring>"],"url":"\u003cstring>","description":"\u003cstring>","referencedBy":[{"type":"definition","id":"\u003cstring>","name":"\u003cstring>"}]}}],"status":123}],"errors":[{"field":"\u003cstring>","message":"\u003cstring>","severity":"error"}],"summary":"\u003cstring>","description":"\u003cstring>","requestBody":{"required":true,"definitions":[{"id":"\u003cstring>","definition":{"id":"\u003cstring>","name":"\u003cstring>","accept":["\u003cstring>"],"url":"\u003cstring>","description":"\u003cstring>","referencedBy":[{"type":"definition","id":"\u003cstring>","name":"\u003cstring>"}]}}]}}],"messages":[{"text":"\u003cstring>","severity":"info","detail":["\u003cstring>"]}]}}},"exampleType":"generated"}},"exampleType":"generated"},"7f4a19a1-813a-46dc-ae44-a7ef609876e2":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","description":"ImportHTTPConnectorResult defines the result of importing a Connector from an external\nformat, such as OpenAPI.\n","required":["code","message"],"properties":{"code":{"type":"string","description":"Code is a machine-readable error code.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Message is a human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"fields":{"type":"array","items":{"description":"ErrorField denotes a field which has an error.","type":"object","properties":{"field":{"type":"string","description":"Field is the name of the field which has an error, this may be a path to a nested field, including array\nelements. The format of this field is of the form: \"field1.field2[0].field3\"\n","isRequired":true,"uniqueKey":"fields.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","description":"Message is the error message for this specific field.","isRequired":true,"uniqueKey":"fields.items.[INDEX].message","typeLabel":"string"}},"required":["field","message"],"uniqueKey":"fields.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"fields","typeLabel":"object[]"},"details":{"type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"details","typeLabel":"string"},"messages":{"type":"array","items":{"description":"Message is a message to be displayed to the user to indicate some information about the\npreceding request.\n","type":"object","properties":{"text":{"description":"Text contains the text of the message.","type":"string","isRequired":true,"uniqueKey":"messages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"messages.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"detail":{"description":"Details contains additional information about the message. This is intended to be used\nto provide more information about the message, such as a list of validation errors.\n","type":"array","items":{"type":"string","uniqueKey":"messages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"messages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"messages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"messages","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"\u003cstring>","message":"\u003cstring>","fields":[{"field":"\u003cstring>","message":"\u003cstring>"}],"details":"\u003cstring>","messages":[{"text":"\u003cstring>","severity":"info","detail":["\u003cstring>"]}]}}},"exampleType":"generated"}},"exampleType":"generated"},"d8466216-9d32-4b29-9096-d59efa1ca457":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Code is a machine-readable error code.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Message is a human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"fields":{"type":"array","items":{"description":"ErrorField denotes a field which has an error.","type":"object","properties":{"field":{"type":"string","description":"Field is the name of the field which has an error, this may be a path to a nested field, including array\nelements. The format of this field is of the form: \"field1.field2[0].field3\"\n","isRequired":true,"uniqueKey":"fields.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","description":"Message is the error message for this specific field.","isRequired":true,"uniqueKey":"fields.items.[INDEX].message","typeLabel":"string"}},"required":["field","message"],"uniqueKey":"fields.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"fields","typeLabel":"object[]"},"details":{"type":"string","x-go-type-skip-optional-pointer":true,"uniqueKey":"details","typeLabel":"string"}},"required":["code","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"\u003cstring>","message":"\u003cstring>","fields":[{"field":"\u003cstring>","message":"\u003cstring>"}],"details":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"a5c87805-afa5-4ba1-b4e0-a0d413fecc9a":{"bearerToken":{"description":"Bearer token authentication used by the Versori Platform. External consumers must provide an API key, however\ninternal consumers must provide a JWT id_token issued by our IdP.\n","type":"http","scheme":"bearer","scopes":[]}},"90e1a60e-e08b-40b7-a4c8-9b79646be550":{"cookie":{"description":"Cookie authentication used by the Versori Platform.","type":"apiKey","in":"cookie","name":"cookie","scopes":[]}}},"servers":{"15af2137-29e8-4203-913d-e5b373454d88":{"description":"Production","url":"https://platform.versori.com/api/connect/v1"},"d1d2310d-627f-46be-9b4e-0962be725a4c":{"description":"Staging","url":"https://platform-staging.versori.com/api/connect/v1"},"7bbb09d1-2fab-44f8-9548-48168541d583":{"description":"Development","url":"http://localhost:8082"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"description":"Bearer token authentication used by the Versori Platform. External consumers must provide an API key, however\ninternal consumers must provide a JWT id_token issued by our IdP.\n","type":"http","scheme":"bearer","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer token authentication used by the Versori Platform. External consumers must provide an API key, however\ninternal consumers must provide a JWT id_token issued by our IdP.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerToken","name":"Authorization"}],"title":"bearerToken"},{"schemes":[{"scheme":{"description":"Cookie authentication used by the Versori Platform.","type":"apiKey","in":"cookie","name":"cookie","scopes":[]},"schema":{"title":"cookie","type":"string","description":"Cookie authentication used by the Versori Platform.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"cookie","name":"cookie"}],"title":"cookie"}]},"originalFileLocation":"openapi/connect-api-v1.yaml"},"subdomain":"versori","siteName":"Versori User Documentation","title":"Import HTTP Connector - Versori User Documentation","navMaps":{"firstHrefInVersion":{"Latest":{"href":"/latest/home","matchLevel":4},"Legacy":{"href":"/legacy/api-reference/connect-api/protocol-http/import-http-connector","matchLevel":0},"v2":{"href":"/v2/introduction","matchLevel":4}},"firstHrefInLanguage":{}},"lastModified":"2026-01-23T11:43:55.818Z","originalFileLocation":"legacy/api-reference/connect-api/protocol-http/import-http-connector.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"ImportHTTPConnector imports a Connector from another format such as OpenAPI or Postman Collections. The Connector will be created in a draft state and will need to be published before it can be used in a live board.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Versori User Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/versori/JHvcKEOb4limbJz2/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/versori/JHvcKEOb4limbJz2/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/versori/JHvcKEOb4limbJz2/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/versori/JHvcKEOb4limbJz2/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/versori/JHvcKEOb4limbJz2/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/versori/JHvcKEOb4limbJz2/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/versori/JHvcKEOb4limbJz2/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/versori/JHvcKEOb4limbJz2/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/versori/JHvcKEOb4limbJz2/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Import HTTP Connector - Versori User Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"ImportHTTPConnector imports a Connector from another format such as OpenAPI or Postman Collections. The Connector will be created in a draft state and will need to be published before it can be used in a live board.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Versori User Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.versori.com/legacy/api-reference/connect-api/protocol-http/import-http-connector\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://versori.mintlify.app/_mintlify/api/og/v2?division=Protocol+%28HTTP%29\u0026amp;title=Import+HTTP+Connector\u0026amp;description=ImportHTTPConnector+imports+a+Connector+from+another+format+such+as+OpenAPI+or+Postman+Collections.+%0A%0AThe+Connector+will+be+created+in+a+draft+state+and+will+ne\u0026amp;theme=1ac70f2532992ffb34bd6aef\u0026amp;signature=dc6bde1db44904db431f51eda7e466c7e2e256eedf6ec0905a8f3c6ffb50b0a2\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Import HTTP Connector - Versori User Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"ImportHTTPConnector imports a Connector from another format such as OpenAPI or Postman Collections. The Connector will be created in a draft state and will need to be published before it can be used in a live board.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://versori.mintlify.app/_mintlify/api/og/v2?division=Protocol+%28HTTP%29\u0026amp;title=Import+HTTP+Connector\u0026amp;description=ImportHTTPConnector+imports+a+Connector+from+another+format+such+as+OpenAPI+or+Postman+Collections.+%0A%0AThe+Connector+will+be+created+in+a+draft+state+and+will+ne\u0026amp;theme=1ac70f2532992ffb34bd6aef\u0026amp;signature=dc6bde1db44904db431f51eda7e466c7e2e256eedf6ec0905a8f3c6ffb50b0a2\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/versori/JHvcKEOb4limbJz2/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Versori User Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6EB0D8\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.versori.com/legacy/api-reference/connect-api/protocol-http/import-http-connector\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/legacy/api-reference/connect-api/protocol-http/import-http-connector.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.versori.com/#organization\",\"name\":\"Versori User Documentation\",\"url\":\"https://docs.versori.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/versori/PWNCaMS5nGiiWoff/logo/versori-logo-wordmark.svg?fit=max\u0026auto=format\u0026n=PWNCaMS5nGiiWoff\u0026q=85\u0026s=be10819ca139d000a6edaef35334c0af\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.versori.com#website\",\"name\":\"Versori User Documentation\",\"url\":\"https://docs.versori.com\",\"publisher\":{\"@id\":\"https://docs.versori.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.versori.com/legacy/api-reference/connect-api/protocol-http/import-http-connector#webpage\",\"url\":\"https://docs.versori.com/legacy/api-reference/connect-api/protocol-http/import-http-connector\",\"name\":\"Import HTTP Connector\",\"description\":\"ImportHTTPConnector imports a Connector from another format such as OpenAPI or Postman Collections. The Connector will be created in a draft state and will need to be published before it can be used in a live board.\",\"dateModified\":\"2026-01-23T11:43:55.818Z\",\"isPartOf\":{\"@id\":\"https://docs.versori.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.versori.com/legacy/api-reference/connect-api/protocol-http/import-http-connector#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.versori.com/legacy/api-reference/connect-api/protocol-http/import-http-connector#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.versori.com/legacy/api-reference/connect-api/protocol-http/create-a-new-new-connector-version\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Protocol (HTTP)\",\"item\":\"https://docs.versori.com/legacy/api-reference/connect-api/protocol-http/create-a-new-new-connector-version\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Import HTTP Connector\",\"item\":\"https://docs.versori.com/legacy/api-reference/connect-api/protocol-http/import-http-connector\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.versori.com/legacy/api-reference/connect-api/protocol-http/import-http-connector#apireference\",\"headline\":\"Import HTTP Connector\",\"name\":\"Import HTTP Connector\",\"description\":\"ImportHTTPConnector imports a Connector from another format such as OpenAPI or Postman Collections. The Connector will be created in a draft state and will need to be published before it can be used in a live board.\",\"url\":\"https://docs.versori.com/legacy/api-reference/connect-api/protocol-http/import-http-connector\",\"mainEntityOfPage\":{\"@id\":\"https://docs.versori.com/legacy/api-reference/connect-api/protocol-http/import-http-connector#webpage\"},\"dateModified\":\"2026-01-23T11:43:55.818Z\",\"publisher\":{\"@id\":\"https://docs.versori.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.versori.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Versori User Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Versori User Documentation","nav":{"global":null,"versions":[{"version":"Latest","pages":[{"title":"Latest","href":"/latest/home"}]},{"version":"Legacy","tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/legacy/welcome"}]},{"tab":"Integrate","pages":[{"title":"Integrate","href":"/legacy/integrate/intro"}]},{"tab":"Embedded","pages":[{"title":"Embedded","href":"/legacy/embedded/intro"}]},{"tab":"Switchboard (old)","pages":[{"title":"Switchboard (old)","href":"/legacy/switchboard/introduction"}]},{"tab":"API Reference","anchors":[{"anchor":"Authentication","pages":[{"title":"Authentication","href":"/legacy/api-reference/authentication"}]},{"anchor":"Connect API","pages":[{"title":"Introduction","href":"/legacy/api-reference/connect"},{"group":"Endpoints","pages":[{"group":"Protocol (HTTP)","pages":[{"openapi":"post /o/{organisation_id}/connector/{connector_id}/http/import","title":"Create a new new connector version.","description":"ImportHTTPConnectorVersion is used to create a new version for the connector.\n\nThis uses a new OpenAPI spec to create the new version.\n","href":"/legacy/api-reference/connect-api/protocol-http/create-a-new-new-connector-version"},{"openapi":"post /o/{organisation_id}/protocols/http/import","title":"Import HTTP Connector","href":"/legacy/api-reference/connect-api/protocol-http/import-http-connector"}]},{"group":"Connectors","pages":[{"openapi":"post /o/{organisation_id}/protocols/http/connectors","title":"Create HTTP Connector","description":"CreateHTTPConnector creates a new HTTP Connector. By default the Connector will be created in a draft state and\nwill need to be published before it can be used by other Versori products.\n","href":"/legacy/api-reference/connect-api/connectors/create-http-connector"},{"openapi":"get /o/{organisation_id}/connectors","title":"List Connectors","href":"/legacy/api-reference/connect-api/connectors/list-connectors"},{"openapi":"get /connectors","title":"List Public Connectors","href":"/legacy/api-reference/connect-api/connectors/list-public-connectors"},{"openapi":"get /o/{organisation_id}/connectors/{connector_id}","title":"Get Connector","href":"/legacy/api-reference/connect-api/connectors/get-connector"},{"openapi":"put /o/{organisation_id}/connectors/{connector_id}","title":"Update Connector","href":"/legacy/api-reference/connect-api/connectors/update-connector"},{"openapi":"put /o/{organisation_id}/connectors/{connector_id}/tags","title":"Update Connector Tags","href":"/legacy/api-reference/connect-api/connectors/update-connector-tags"},{"openapi":"put /o/{organisation_id}/connectors/{connector_id}/categories","title":"Update Connector Categories","href":"/legacy/api-reference/connect-api/connectors/update-connector-categories"},{"openapi":"put /o/{organisation_id}/connectors/{connector_id}/auth-scheme-configs/{auth_scheme_config_id}","title":"Upsert Auth Scheme Config to Connector","href":"/legacy/api-reference/connect-api/connectors/upsert-auth-scheme-config-to-connector"},{"openapi":"delete /o/{organisation_id}/connectors/{connector_id}","title":"Delete Connector","href":"/legacy/api-reference/connect-api/connectors/delete-connector"}]},{"group":"Connector Versions","pages":[{"openapi":"post /o/{organisation_id}/connectors/{connector_id}/versions","title":"Create Connector Version","href":"/legacy/api-reference/connect-api/connector-version/create-connector-version"},{"openapi":"post /o/{organisation_id}/connectors/{connector_id}/versions/{version}/library/import","title":"Import Public Connector Version","href":"/legacy/api-reference/connect-api/connector-version/import-public-connector-version"},{"openapi":"get /o/{organisation_id}/connectors/{connector_id}/versions","title":"List Connector Versions","href":"/legacy/api-reference/connect-api/connector-version/list-connector-versions"},{"openapi":"get /o/{organisation_id}/connectors/{connector_id}/versions/{version}","title":"Get Connector Version","href":"/legacy/api-reference/connect-api/connector-version/get-connector-version"},{"openapi":"put /o/{organisation_id}/connectors/{connector_id}/versions/{version}","title":"Update Connector Version","href":"/legacy/api-reference/connect-api/connector-version/update-connector-version"},{"openapi":"delete /o/{organisation_id}/connectors/{connector_id}/versions/{version}","title":"Delete Connector Version","href":"/legacy/api-reference/connect-api/connector-version/delete-connector-version"}]},{"group":"Connections","pages":[{"openapi":"post /o/{organisation_id}/connectors/{connector_id}/connections","title":"Create a new connection.","href":"/legacy/api-reference/connect-api/connections/create-a-new-connection"},{"openapi":"get /o/{organisation_id}/connectors/{connector_id}/connections","title":"List Connector Connections","href":"/legacy/api-reference/connect-api/connections/list-connector-connections"},{"openapi":"get /o/{organisation_id}/connectors/{connector_id}/connections/{connection_id}","title":"Get Connection","href":"/legacy/api-reference/connect-api/connections/get-connection"},{"openapi":"put /o/{organisation_id}/connectors/{connector_id}/connections/{connection_id}","title":"Update Connection","href":"/legacy/api-reference/connect-api/connections/update-connection"},{"openapi":"delete /o/{organisation_id}/connectors/{connector_id}/connections/{connection_id}","title":"Delete Connection","href":"/legacy/api-reference/connect-api/connections/delete-connection"},{"openapi":"post /o/{organisation_id}/connectors/{connector_id}/oauth2/initialise","title":"Initialise OAuth 2.0 Connection","href":"/legacy/api-reference/connect-api/connections/initialise-oauth-20-connection"}]},{"group":"Actions","pages":[{"openapi":"post /o/{organisation_id}/connectors/{connector_id}/versions/{version}/actions","title":"Create Action","href":"/legacy/api-reference/connect-api/actions/create-action"},{"openapi":"get /o/{organisation_id}/connectors/{connector_id}/versions/{version}/actions","title":"Get Actions","href":"/legacy/api-reference/connect-api/actions/get-actions"},{"openapi":"get /o/{organisation_id}/connectors/{connector_id}/versions/{version}/actions/{action_name}","title":"Get Action","href":"/legacy/api-reference/connect-api/actions/get-action"}]},{"group":"Triggers","pages":[{"openapi":"post /o/{organisation_id}/connectors/{connector_id}/versions/{version}/triggers","title":"Create Trigger","href":"/legacy/api-reference/connect-api/triggers/create-trigger"},{"openapi":"get /o/{organisation_id}/connectors/{connector_id}/versions/{version}/triggers","title":"Get Triggers","href":"/legacy/api-reference/connect-api/triggers/get-triggers"},{"openapi":"get /o/{organisation_id}/connectors/{connector_id}/versions/{version}/triggers/{trigger_name}","title":"Get Trigger","href":"/legacy/api-reference/connect-api/triggers/get-trigger"}]},{"group":"Definitions","pages":[{"openapi":"post /o/{organisation_id}/connectors/{connector_id}/versions/{version}/definitions","title":"Create Definitions","href":"/legacy/api-reference/connect-api/definitions/create-definitions"},{"openapi":"get /o/{organisation_id}/connectors/{connector_id}/versions/{version}/definitions","title":"Get Definitions","href":"/legacy/api-reference/connect-api/definitions/get-definitions"},{"openapi":"get /o/{organisation_id}/connectors/{connector_id}/versions/{version}/definitions/{definition_name}","title":"Get Definition","href":"/legacy/api-reference/connect-api/definitions/get-definition"},{"openapi":"get /o/{organisation_id}/schemas/{connector_id}/{version}/{schema_filename}","title":"Get a Raw Schema","href":"/legacy/api-reference/connect-api/definitions/get-a-raw-schema"},{"openapi":"put /o/{organisation_id}/connectors/{connector_id}/versions/{version}/definitions/{definition_name}","title":"Update Definition","href":"/legacy/api-reference/connect-api/definitions/update-definition"},{"openapi":"delete /o/{organisation_id}/connectors/{connector_id}/versions/{version}/definitions","title":"Delete Definitions","href":"/legacy/api-reference/connect-api/definitions/delete-definitions"},{"openapi":"delete /o/{organisation_id}/connectors/{connector_id}/versions/{version}/definitions/{definition_name}","title":"Delete Definition","href":"/legacy/api-reference/connect-api/definitions/delete-definition"}]},{"group":"Protocols","pages":[{"openapi":"get /o/{organisation_id}/protocols","title":"List Protocols","href":"/legacy/api-reference/connect-api/protocols/list-protocols"},{"openapi":"get /o/{organisation_id}/protocols/{protocol_slug}/auth-schemes","title":"List Auth Schemes","href":"/legacy/api-reference/connect-api/protocols/list-auth-schemes"},{"openapi":"get /o/{organisation_id}/protocols/{protocol_slug}/upload-url","title":"Get Protocol Upload URL","href":"/legacy/api-reference/connect-api/protocols/get-protocol-upload-url"}]},{"group":"Miscellaneous","pages":[{"openapi":"get /categories","title":"List all available categories","href":"/legacy/api-reference/connect-api/misc/list-all-available-categories"}]}]}]},{"anchor":"Embedded API","pages":[{"title":"Embedded API","href":"/legacy/api-reference/embedded"}]},{"anchor":"Organisations API","pages":[{"title":"Organisations API","href":"/legacy/api-reference/organisations-api"}]},{"anchor":"Proxy API","pages":[{"title":"Proxy API","href":"/legacy/api-reference/proxy-api"}]},{"anchor":"Switchboard API","pages":[{"title":"Switchboard API","href":"/legacy/api-reference/switchboard-api/preview-the-output-of-a-transformer"}]}]}]},{"version":"v2","pages":[{"title":"v2","href":"/v2/introduction"}]}]},"title":"Import HTTP Connector - Versori User Documentation","buildId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","deploymentId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-BRm_l__d.js","utils-f1l1Oc-G.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BlhqDhJO.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DHCB7rsC.js","snippetPresets-CYXLx6Hv.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-B78P2dEq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C4YLPVAh.js","shallow-vlLnTDkQ.js","getApiPlaygroundDisplay-D_98hhvf.js","CodeSnippet-DtnZHGqq.js","CodeSnippets-CLFb8KJt.js","Page-kQh739Uz.js","getPastedJson-Cq-zlbnU.js","icon-sN3t983t.js","MethodPill-P_YQ2s09.js","DuplicateIcon-BVzyNsGJ.js","createIcon-B3jqgqC6.js","DynamicMarkdown-Crwq6WG_.js","SectionHeading-C7pGS2Bb.js","axios-vUo_bRtp.js","Markdown-BuPH8yuW.js","clsx-CCOYKgaU.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BnkC_6oA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BM4S31-f.js"]}