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.
The external ID of the end user for whom the connection is being created. If this is not provided,
the connection will be created as a static connection.
Response
Created
Connection defines the credentials for the owning Connector, and additional variables
which can be used to customize the Connector in a particular connection.
ID is the unique identifier of the Connection. Typically this is only used internally and most (if not all)
public-facing APIs will use the name in combination with the Connector's id instead.
ConnectionCredentials defines the credentials for the owning Connector. If multiple
credentials are defined for each type, they are applied to the request in the order they are defined. This is to
enable Connectors which require both a user session token and an API key to be provided in the request.
The baseUrl on the connection allows a dynamic user to override the base URL of the connection. This is useful
when users have their own instance of a service and want to connect to it.
For example, a user may have their own instance of shopify and their url is https://myshopify.com. They can
override the base url of the connection to https://myshopify.com and all requests will be made to this url.
If it is left as an empty string, it will be ignored.
This is the ID of the template that the connection is created against.
⌘I
{"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":"api-reference/platform-api/connections/create-a-new-connection","slug":"/api-reference/platform-api/connections/create-a-new-connection","pageMetadata":{"title":"Create a new connection.","description":"CreateConnection creates a new connection for the given organisation.\n","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/connections","href":"/api-reference/platform-api/connections/create-a-new-connection","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"CreateConnection creates a new connection for the given organisation.\"\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":{"title":"Create a new connection.","description":"CreateConnection creates a new connection for the given organisation.\n","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/connections","href":"/api-reference/platform-api/connections/create-a-new-connection","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"CreateConnection","summary":"Create a new connection.","description":"CreateConnection creates a new connection for the given organisation.\n","tags":["connections"],"requestBody":"b31479ba-cefd-4e7f-9db5-149ab80e1d27","responses":{"201":"39dd0cfd-1c65-4a50-b8a7-aae64f6933ef","default":"5bf0e621-e188-4454-bad4-9383b9c20f8a"},"method":"post","type":"path","servers":["d0eac863-e307-4ad7-a239-2c447e8ba4c0","0bedeed1-5e05-4d49-a0f1-0acdda0da1fe","731967af-8899-446e-b2cf-c9e6c5801b84"],"security":["ad977c79-c846-4804-9548-4d09cb6f8f14","b1012d3e-47bf-44f7-b929-7fdf4592103d"],"path":"/o/{organisation_id}/connections","baseUrlOptions":["https://platform.versori.com/api/v2","https://platform-staging.versori.com/api/v2","http://localhost:8901"],"title":"Create a new connection.","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","disableProxy":true},"dependencies":{"parameters":{"ed09548e-00b2-47db-b958-6f530c67e379":{"name":"organisation_id","in":"path","required":true,"schema":{"type":"string","format":"ulid","x-go-type":"ulid.ULID","x-go-name":"OrganisationID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"","typeLabel":"string\u003culid>"}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"connectionTemplateId":{"type":"string","description":"This is the ID of the template that the connection is created against.\n","format":"ulid","x-go-type":"ulid.ULID","x-go-name":"EnvironmentSystemID","x-go-type-skip-optional-pointer":true,"x-go-type-import":{"path":"versori.dev/vergo/ulid"},"isRequired":true,"uniqueKey":"connectionTemplateId","typeLabel":"string\u003culid>"},"connection":{"description":"ConnectionCreate defines the connection to create.","type":"object","properties":{"name":{"type":"string","description":"Name is the name of the Connection.","isRequired":true,"uniqueKey":"connection.name","typeLabel":"string"},"credentials":{"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":"connection.credentials.items.[INDEX].id","typeLabel":"string\u003culid>"},"authSchemeConfig":{"type":"object","description":"An AuthSchemeConfig describes how credentials should be used to authenticate with a System, an example being where\nan API key should be sent and what the header/query parameter/cookie name is. For OAuth2, this config object also\ncontains data such as the token URL, client ID and secret, and scopes to request.\nThis type contains a string called `type` which denotes which field in this object should be populated.\nFor example if the `type` is `api-key`, then the `apiKey` field will be populated with an\n`AuthSchemeConfigAPIKey` object.\n","properties":{"type":{"description":"Type is a unique identifier of the AuthScheme, this is a kebab-case formatted string, see\nenum values for possible options.\n","type":"string","enum":["none","api-key","basic-auth","oauth2","hmac","jwt-bearer","certificate","oauth1","secret"],"isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.type","typeLabel":"enum\u003cstring>"},"none":{"type":"object","title":"None","description":"AuthSchemeConfigNone is a placeholder object with the schemeType set to `none`. There is no other configuration\nrequired.\n","required":["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":"connection.credentials.items.[INDEX].authSchemeConfig.none.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same\nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.none.description","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":"connection.credentials.items.[INDEX].authSchemeConfig.none.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.none.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":"connection.credentials.items.[INDEX].authSchemeConfig.none.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.none.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.none.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.none.validationMessages","typeLabel":"object[]"}},"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.none","typeLabel":"None · object"},"apiKey":{"type":"object","title":"API Key","description":"AuthSchemeConfigAPIKey defines how a Connector uses an API key credential to authenticate with the system.\n","required":["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":"connection.credentials.items.[INDEX].authSchemeConfig.apiKey.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same\nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.apiKey.description","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":"connection.credentials.items.[INDEX].authSchemeConfig.apiKey.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":"connection.credentials.items.[INDEX].authSchemeConfig.apiKey.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":"connection.credentials.items.[INDEX].authSchemeConfig.apiKey.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.apiKey.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":"connection.credentials.items.[INDEX].authSchemeConfig.apiKey.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.apiKey.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.apiKey.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.apiKey.validationMessages","typeLabel":"object[]"}},"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.apiKey","typeLabel":"API Key · object"},"basicAuth":{"type":"object","title":"Basic Auth","description":"AuthSchemeConfigBasicAuth is a placeholder object with the schemeType set to `basic-auth`. There is no other\nconfiguration required.\n","required":["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":"connection.credentials.items.[INDEX].authSchemeConfig.basicAuth.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same\nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.basicAuth.description","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":"connection.credentials.items.[INDEX].authSchemeConfig.basicAuth.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.basicAuth.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":"connection.credentials.items.[INDEX].authSchemeConfig.basicAuth.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.basicAuth.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.basicAuth.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.basicAuth.validationMessages","typeLabel":"object[]"}},"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.basicAuth","typeLabel":"Basic Auth · object"},"oauth2":{"type":"object","title":"OAuth 2.0","description":"AuthSchemeConfigOAuth2 defines how a Connector uses an OAuth2 credential to authenticate\nwith the system. This is to be used for all OAuth 2.0 flows which require a client ID and\nclient secret as part of the Connector's configuration. Connectors which use the\n`client_credentials` grant type, where the user provides the Client ID and Client Secret at\nthe point where they connect, should use the `AuthSchemeConfigOAuth2ClientCredentials` type\ninstead.\n","required":["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":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same\nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.description","typeLabel":"string"},"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":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.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":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.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":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.scopes.items.[INDEX].description","typeLabel":"string"}},"required":["name"],"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.scopes.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.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":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.defaultScopes.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.defaultScopes","typeLabel":"string[]"},"grant":{"type":"object","properties":{"type":{"type":"string","enum":["authorizationCode","clientCredentials","password"],"isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.grant.type","typeLabel":"enum\u003cstring>"},"authorizationCode":{"title":"authorization_code","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","type":"object","properties":{"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":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.grant.authorizationCode.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":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.grant.authorizationCode.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":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.grant.authorizationCode.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":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.grant.authorizationCode.clientSecret","typeLabel":"string"}},"required":["grantType"],"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.grant.authorizationCode","typeLabel":"authorization_code · object"},"clientCredentials":{"title":"client_credentials","type":"object","uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.grant.clientCredentials","typeLabel":"client_credentials · object"},"password":{"title":"password","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","type":"object","properties":{"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":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.grant.password.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":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.grant.password.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":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.grant.password.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":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.grant.password.clientSecret","typeLabel":"string"}},"required":["grantType"],"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.grant.password","typeLabel":"password · object"}},"required":["type"],"isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.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":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.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":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.validationMessages","typeLabel":"object[]"},"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","x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.authorizeUrl","typeLabel":"string\u003curi>"},"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":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.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":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.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":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.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":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.mtlsCredentialId","typeLabel":"string"},"pkce":{"type":"boolean","x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2.pkce","typeLabel":"boolean"}},"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth2","typeLabel":"OAuth 2.0 · object"},"oauth1":{"type":"object","title":"OAuth 2.0","required":["consumerKey","consumerSecret","signatureMethod","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":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same\nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.description","typeLabel":"string"},"consumerKey":{"type":"string","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.consumerKey","typeLabel":"string"},"consumerSecret":{"type":"string","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.consumerSecret","typeLabel":"string"},"signatureMethod":{"type":"string","description":"One of 'sha256', 'sha1'","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.signatureMethod","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":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.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":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.validationMessages","typeLabel":"object[]"},"tokenAuth":{"type":"boolean","description":"If set to 'true' the endpoints are optional but when connecting you need to use oauth1-token credentials and provide the token and token secret.\nIf left empty or set to 'false' you need to provide all the endpoint and connect using the oauth1 credentials which uses the browser authorize flow.\n","x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tokenAuth","typeLabel":"boolean"},"tempCredentialEndpoint":{"type":"object","properties":{"url":{"type":"string","description":"URL of the endpoint, may contain templated values in curly braces","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tempCredentialEndpoint.url","typeLabel":"string"},"additionalParamConfigs":{"type":"array","items":{"type":"object","properties":{"parameterName":{"type":"string","description":"Key of the additional parameter to insert","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tempCredentialEndpoint.additionalParamConfigs.items.[INDEX].parameterName","typeLabel":"string"},"location":{"type":"string","enum":["LOCATION_IGNORE","LOCATION_BODY","LOCATION_HEADER","LOCATION_QUERY","LOCATION_ENDPOINT","LOCATION_HEADER_PARAMETER"],"isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tempCredentialEndpoint.additionalParamConfigs.items.[INDEX].location","typeLabel":"enum\u003cstring>"},"required":{"type":"boolean","description":"Whether parameter is required in requests","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tempCredentialEndpoint.additionalParamConfigs.items.[INDEX].required","typeLabel":"boolean"},"modifiable":{"type":"boolean","description":"Whether parameter can be modified by user","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tempCredentialEndpoint.additionalParamConfigs.items.[INDEX].modifiable","typeLabel":"boolean"},"targetName":{"type":"string","description":"Override name for the parameter in endpoint requests","x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tempCredentialEndpoint.additionalParamConfigs.items.[INDEX].targetName","typeLabel":"string"},"usages":{"type":"string","enum":["USAGE_UNKNOWN","USAGE_TEMP_CREDENTIAL_ENDPOINT","USAGE_TOKEN_REQUEST_ENDPOINT"],"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tempCredentialEndpoint.additionalParamConfigs.items.[INDEX].usages","typeLabel":"enum\u003cstring>"}},"required":["location","usage","required","modifiable","parameterName"],"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tempCredentialEndpoint.additionalParamConfigs.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tempCredentialEndpoint.additionalParamConfigs","typeLabel":"object[]"},"parameterTransmission":{"type":"string","enum":["AUTH_STYLE_AUTHORIZATION_HEADER","AUTH_STYLE_FORM","AUTH_STYLE_QUERY"],"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tempCredentialEndpoint.parameterTransmission","typeLabel":"enum\u003cstring>"}},"required":["url"],"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tempCredentialEndpoint","typeLabel":"object"},"resourceOwnerAuthorizationEndpoint":{"type":"object","properties":{"url":{"type":"string","description":"URL of the endpoint, may contain templated values in curly braces","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.resourceOwnerAuthorizationEndpoint.url","typeLabel":"string"},"additionalParamConfigs":{"type":"array","items":{"type":"object","properties":{"parameterName":{"type":"string","description":"Key of the additional parameter to insert","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.resourceOwnerAuthorizationEndpoint.additionalParamConfigs.items.[INDEX].parameterName","typeLabel":"string"},"location":{"type":"string","enum":["LOCATION_IGNORE","LOCATION_BODY","LOCATION_HEADER","LOCATION_QUERY","LOCATION_ENDPOINT","LOCATION_HEADER_PARAMETER"],"isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.resourceOwnerAuthorizationEndpoint.additionalParamConfigs.items.[INDEX].location","typeLabel":"enum\u003cstring>"},"required":{"type":"boolean","description":"Whether parameter is required in requests","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.resourceOwnerAuthorizationEndpoint.additionalParamConfigs.items.[INDEX].required","typeLabel":"boolean"},"modifiable":{"type":"boolean","description":"Whether parameter can be modified by user","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.resourceOwnerAuthorizationEndpoint.additionalParamConfigs.items.[INDEX].modifiable","typeLabel":"boolean"},"targetName":{"type":"string","description":"Override name for the parameter in endpoint requests","x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.resourceOwnerAuthorizationEndpoint.additionalParamConfigs.items.[INDEX].targetName","typeLabel":"string"},"usages":{"type":"string","enum":["USAGE_UNKNOWN","USAGE_TEMP_CREDENTIAL_ENDPOINT","USAGE_TOKEN_REQUEST_ENDPOINT"],"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.resourceOwnerAuthorizationEndpoint.additionalParamConfigs.items.[INDEX].usages","typeLabel":"enum\u003cstring>"}},"required":["location","usage","required","modifiable","parameterName"],"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.resourceOwnerAuthorizationEndpoint.additionalParamConfigs.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.resourceOwnerAuthorizationEndpoint.additionalParamConfigs","typeLabel":"object[]"},"parameterTransmission":{"type":"string","enum":["AUTH_STYLE_AUTHORIZATION_HEADER","AUTH_STYLE_FORM","AUTH_STYLE_QUERY"],"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.resourceOwnerAuthorizationEndpoint.parameterTransmission","typeLabel":"enum\u003cstring>"}},"required":["url"],"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.resourceOwnerAuthorizationEndpoint","typeLabel":"object"},"tokenEndpoint":{"type":"object","properties":{"url":{"type":"string","description":"URL of the endpoint, may contain templated values in curly braces","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tokenEndpoint.url","typeLabel":"string"},"additionalParamConfigs":{"type":"array","items":{"type":"object","properties":{"parameterName":{"type":"string","description":"Key of the additional parameter to insert","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tokenEndpoint.additionalParamConfigs.items.[INDEX].parameterName","typeLabel":"string"},"location":{"type":"string","enum":["LOCATION_IGNORE","LOCATION_BODY","LOCATION_HEADER","LOCATION_QUERY","LOCATION_ENDPOINT","LOCATION_HEADER_PARAMETER"],"isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tokenEndpoint.additionalParamConfigs.items.[INDEX].location","typeLabel":"enum\u003cstring>"},"required":{"type":"boolean","description":"Whether parameter is required in requests","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tokenEndpoint.additionalParamConfigs.items.[INDEX].required","typeLabel":"boolean"},"modifiable":{"type":"boolean","description":"Whether parameter can be modified by user","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tokenEndpoint.additionalParamConfigs.items.[INDEX].modifiable","typeLabel":"boolean"},"targetName":{"type":"string","description":"Override name for the parameter in endpoint requests","x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tokenEndpoint.additionalParamConfigs.items.[INDEX].targetName","typeLabel":"string"},"usages":{"type":"string","enum":["USAGE_UNKNOWN","USAGE_TEMP_CREDENTIAL_ENDPOINT","USAGE_TOKEN_REQUEST_ENDPOINT"],"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tokenEndpoint.additionalParamConfigs.items.[INDEX].usages","typeLabel":"enum\u003cstring>"}},"required":["location","usage","required","modifiable","parameterName"],"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tokenEndpoint.additionalParamConfigs.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tokenEndpoint.additionalParamConfigs","typeLabel":"object[]"},"parameterTransmission":{"type":"string","enum":["AUTH_STYLE_AUTHORIZATION_HEADER","AUTH_STYLE_FORM","AUTH_STYLE_QUERY"],"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tokenEndpoint.parameterTransmission","typeLabel":"enum\u003cstring>"}},"required":["url"],"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.tokenEndpoint","typeLabel":"object"},"credentialId":{"type":"string","format":"ulid","x-go-type":"ulid.ULID","x-go-name":"CredentialID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1.credentialId","typeLabel":"string\u003culid>"}},"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.oauth1","typeLabel":"OAuth 2.0 · object"},"hmac":{"type":"object","title":"HMAC","description":"AuthSchemeConfigHMAC defines how a Connector uses an HMAC credential to authenticate with the system.\n\nThis may be used on outbound requests to sign the request body, however it is more commonly used on inbound\nrequests (i.e. from Webhook Triggers) to verify the sender of the request is allowed to invoke the Trigger.\n","required":["name","in","algorithm","digestInputs","encoding","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":"connection.credentials.items.[INDEX].authSchemeConfig.hmac.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same\nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.hmac.description","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":"connection.credentials.items.[INDEX].authSchemeConfig.hmac.name","typeLabel":"string"},"in":{"description":"AuthSchemeConfigHMACIn defines where the signature should be set on requests.","type":"string","enum":["query","header","cookie"],"isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.hmac.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":"connection.credentials.items.[INDEX].authSchemeConfig.hmac.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":"connection.credentials.items.[INDEX].authSchemeConfig.hmac.digestInputs.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.hmac.digestInputs","typeLabel":"enum\u003cstring>[]"},"encoding":{"description":"Encoding defines how the HMAC signature was encoded. This can be one of `hex`, `base64` or `base64url`.\n","type":"string","enum":["hex","base64","base64url"],"isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.hmac.encoding","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":"connection.credentials.items.[INDEX].authSchemeConfig.hmac.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.hmac.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":"connection.credentials.items.[INDEX].authSchemeConfig.hmac.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.hmac.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.hmac.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.hmac.validationMessages","typeLabel":"object[]"}},"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.hmac","typeLabel":"HMAC · object"},"certificate":{"type":"object","title":"TLS Certificate","description":"AuthSchemeConfigCertificate is a placeholder object with the schemeType set to `certificate`.\nThere is no other config required\n","required":["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":"connection.credentials.items.[INDEX].authSchemeConfig.certificate.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same\nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.certificate.description","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":"connection.credentials.items.[INDEX].authSchemeConfig.certificate.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.certificate.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":"connection.credentials.items.[INDEX].authSchemeConfig.certificate.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.certificate.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.certificate.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.certificate.validationMessages","typeLabel":"object[]"}},"uniqueKey":"connection.credentials.items.[INDEX].authSchemeConfig.certificate","typeLabel":"TLS Certificate · object"}},"required":["type"],"uniqueKey":"connection.credentials.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":"connection.credentials.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":"connection.credentials.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- oauth1: The credential is an OAuth1 access_token to be used for OAuth1 authentication.\n- oauth1-token: The credential is the oatuh1 token allowing bypassing the user authorization step.\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","oauth1","oauth1-token","oauth2-code","oauth2-password","oauth2-token","certificate"],"x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].credential.type","typeLabel":"enum\u003cstring>"},"name":{"type":"string","description":"Name is the name of the Credential.","uniqueKey":"connection.credentials.items.[INDEX].credential.name","typeLabel":"string"},"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":"connection.credentials.items.[INDEX].credential.errors.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].credential.errors","typeLabel":"string[]"},"data":{"type":"object","properties":{"binary":{"title":"Binary","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","type":"object","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":"connection.credentials.items.[INDEX].credential.data.binary.valueBase64","typeLabel":"string"}},"required":["valueBase64"],"uniqueKey":"connection.credentials.items.[INDEX].credential.data.binary","typeLabel":"Binary · object"},"none":{"title":"None","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","type":"object","additionalProperties":false,"uniqueKey":"connection.credentials.items.[INDEX].credential.data.none","typeLabel":"None · object"},"string":{"title":"String","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","type":"object","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":"connection.credentials.items.[INDEX].credential.data.string.value","typeLabel":"string"}},"required":["value"],"uniqueKey":"connection.credentials.items.[INDEX].credential.data.string","typeLabel":"String · object"},"basicAuth":{"title":"Username/Password","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","type":"object","properties":{"username":{"type":"string","description":"Username is the username used to authenticate with the Connector.","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].credential.data.basicAuth.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":"connection.credentials.items.[INDEX].credential.data.basicAuth.password","typeLabel":"string"}},"required":["username","password"],"uniqueKey":"connection.credentials.items.[INDEX].credential.data.basicAuth","typeLabel":"Username/Password · object"},"oauth2Client":{"title":"OAuth 2.0 Client","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","type":"object","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":"connection.credentials.items.[INDEX].credential.data.oauth2Client.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":"connection.credentials.items.[INDEX].credential.data.oauth2Client.clientSecret","typeLabel":"string"},"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":"connection.credentials.items.[INDEX].credential.data.oauth2Client.tokenUrl","typeLabel":"string\u003curi>"},"scopes":{"type":"array","items":{"type":"string","uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth2Client.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":"connection.credentials.items.[INDEX].credential.data.oauth2Client.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":"connection.credentials.items.[INDEX].credential.data.oauth2Client.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":"connection.credentials.items.[INDEX].credential.data.oauth2Client.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":"connection.credentials.items.[INDEX].credential.data.oauth2Client.mTLSCredentialId","typeLabel":"string"}},"required":["clientId","clientSecret","tokenUrl"],"uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth2Client","typeLabel":"OAuth 2.0 Client · object"},"oauth2Token":{"title":"OAuth 2.0 Token","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","type":"object","properties":{"scopes":{"type":"array","items":{"type":"string","uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth2Token.scopes.items.[INDEX]","typeLabel":"string"},"description":"Scopes is a list of scopes which the user has granted consent for.","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth2Token.scopes","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\nThis is a required field as it is used to refresh the access token when it expires. If users are providing\nan access token which does not expire using this credential type, then the same functionality may be\nachieved by using a simple API key and OAuth 2.0 need not be used.\n","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth2Token.refreshToken","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":"connection.credentials.items.[INDEX].credential.data.oauth2Token.accessToken","typeLabel":"string"},"tokenType":{"type":"string","description":"TokenType is the type of token which is being issued. Defaults to \"Bearer\" if not set.\n","default":"Bearer","x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth2Token.tokenType","typeLabel":"string"},"expiresAt":{"type":"string","format":"date-time","description":"ExpiresAt is the time at which the access token will expire. If not defined, the accessToken will be\nreused until a 401 response is received from the Connector, at which point the token should be refreshed\nwith the provided `refreshToken`. Ideally this should be provided so that erroneous failures can be\navoided.\n","x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth2Token.expiresAt","typeLabel":"string\u003cdate-time>"}},"required":["scopes","refreshToken"],"uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth2Token","typeLabel":"OAuth 2.0 Token · object"},"oauth2Code":{"title":"OAuth 2.0 Code","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","type":"object","properties":{"code":{"description":"Code is the authorization code which will be exchanged for an access token.\n","type":"string","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth2Code.code","typeLabel":"string"},"state":{"description":"State is the state value which is propagated through the OAuth2 flow.\n","type":"string","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth2Code.state","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":"connection.credentials.items.[INDEX].credential.data.oauth2Code.additionalParams","typeLabel":"string"}},"required":["code","state"],"uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth2Code","typeLabel":"OAuth 2.0 Code · object"},"oauth2Password":{"title":"OAuth 2.0 Password","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","type":"object","properties":{"username":{"type":"string","description":"Username is the username used to authenticate with the Connector.","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth2Password.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":"connection.credentials.items.[INDEX].credential.data.oauth2Password.password","typeLabel":"string"}},"required":["username","password"],"uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth2Password","typeLabel":"OAuth 2.0 Password · object"},"certificate":{"title":"Certificate","description":"CredentialDataCertificate contains the Certificate, Certificate key and CA(Certificate authority).\n","type":"object","properties":{"certificate":{"type":"string","description":"Certificate is the certificate that will be send to the connection.","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].credential.data.certificate.certificate","typeLabel":"string"},"key":{"type":"string","description":"Key is the accompanying key for the certificate.","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].credential.data.certificate.key","typeLabel":"string"},"ca":{"type":"string","description":"CA is the Certificate Authority to verify the server certificates against.","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].credential.data.certificate.ca","typeLabel":"string"}},"required":["certificate","key","ca"],"uniqueKey":"connection.credentials.items.[INDEX].credential.data.certificate","typeLabel":"Certificate · object"},"oauth1":{"title":"OAuth1","type":"object","properties":{"state":{"type":"string","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth1.state","typeLabel":"string"},"oauthToken":{"type":"string","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth1.oauthToken","typeLabel":"string"},"oauthVerifier":{"type":"string","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth1.oauthVerifier","typeLabel":"string"}},"required":["oauthVerifier","oauthToken","state"],"uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth1","typeLabel":"OAuth1 · object"},"oauth1Token":{"title":"OAuth1Token","type":"object","properties":{"token":{"type":"string","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth1Token.token","typeLabel":"string"},"tokenSecret":{"type":"string","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth1Token.tokenSecret","typeLabel":"string"},"additionalParams":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","isRequired":true,"uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth1Token.additionalParams.items.[INDEX].name","typeLabel":"string"},"value":{"type":"string","uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth1Token.additionalParams.items.[INDEX].value","typeLabel":"string"}},"required":["name"],"uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth1Token.additionalParams.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth1Token.additionalParams","typeLabel":"object[]"}},"required":["token","tokenSecret"],"uniqueKey":"connection.credentials.items.[INDEX].credential.data.oauth1Token","typeLabel":"OAuth1Token · object"}},"uniqueKey":"connection.credentials.items.[INDEX].credential.data","typeLabel":"object"},"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":"connection.credentials.items.[INDEX].credential.expiresAt","typeLabel":"string\u003cdate-time>"}},"required":["id","organisationId"],"uniqueKey":"connection.credentials.items.[INDEX].credential","typeLabel":"object"}},"required":["id"],"uniqueKey":"connection.credentials.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"isRequired":true,"uniqueKey":"connection.credentials","typeLabel":"object[]"},"baseUrl":{"type":"string","format":"uri","description":"BaseURL is the base URL for the connection. This allows you to override the baseURL for the system being connected to.\nAn example is where the system's baseURL is https://shopifyplaceholder.com and you want to connect to your own shopify\nwhich is at https://myshopify.com. Everything after the top-level domain will be ignored. If the scheme is missing, then\nhttps:// will be used.\n","x-go-name":"BaseURL","x-go-type-skip-optional-pointer":true,"uniqueKey":"connection.baseUrl","typeLabel":"string\u003curi>"}},"required":["name","credentials"],"isRequired":true,"uniqueKey":"connection","typeLabel":"object"},"externalId":{"type":"string","description":"The external ID of the end user for whom the connection is being created. If this is not provided,\nthe connection will be created as a static connection.\n","uniqueKey":"externalId","typeLabel":"string"}},"required":["connectionTemplateId","connection"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"connectionTemplateId":"\u003cstring>","connection":{"name":"\u003cstring>","credentials":[{"id":"\u003cstring>"}],"baseUrl":"\u003cstring>"},"externalId":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"39dd0cfd-1c65-4a50-b8a7-aae64f6933ef":{"description":"Created","content":{"application/json":{"schema":{"description":"Connection defines the 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":"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":"name","typeLabel":"string"},"credentials":{"description":"ConnectionCredentials defines the 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":"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":"credentials.items.[INDEX].id","typeLabel":"string\u003culid>"},"authSchemeConfig":{"type":"object","description":"An AuthSchemeConfig describes how credentials should be used to authenticate with a System, an example being where\nan API key should be sent and what the header/query parameter/cookie name is. For OAuth2, this config object also\ncontains data such as the token URL, client ID and secret, and scopes to request.\nThis type contains a string called `type` which denotes which field in this object should be populated.\nFor example if the `type` is `api-key`, then the `apiKey` field will be populated with an\n`AuthSchemeConfigAPIKey` object.\n","properties":{"type":{"description":"Type is a unique identifier of the AuthScheme, this is a kebab-case formatted string, see\nenum values for possible options.\n","type":"string","enum":["none","api-key","basic-auth","oauth2","hmac","jwt-bearer","certificate","oauth1","secret"],"isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.type","typeLabel":"enum\u003cstring>"},"none":{"type":"object","title":"None","description":"AuthSchemeConfigNone is a placeholder object with the schemeType set to `none`. There is no other configuration\nrequired.\n","required":["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":"credentials.items.[INDEX].authSchemeConfig.none.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same\nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.none.description","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":"credentials.items.[INDEX].authSchemeConfig.none.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.none.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":"credentials.items.[INDEX].authSchemeConfig.none.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.none.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.none.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.none.validationMessages","typeLabel":"object[]"}},"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.none","typeLabel":"None · object"},"apiKey":{"type":"object","title":"API Key","description":"AuthSchemeConfigAPIKey defines how a Connector uses an API key credential to authenticate with the system.\n","required":["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":"credentials.items.[INDEX].authSchemeConfig.apiKey.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same\nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.apiKey.description","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":"credentials.items.[INDEX].authSchemeConfig.apiKey.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":"credentials.items.[INDEX].authSchemeConfig.apiKey.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":"credentials.items.[INDEX].authSchemeConfig.apiKey.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.apiKey.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":"credentials.items.[INDEX].authSchemeConfig.apiKey.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.apiKey.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.apiKey.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.apiKey.validationMessages","typeLabel":"object[]"}},"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.apiKey","typeLabel":"API Key · object"},"basicAuth":{"type":"object","title":"Basic Auth","description":"AuthSchemeConfigBasicAuth is a placeholder object with the schemeType set to `basic-auth`. There is no other\nconfiguration required.\n","required":["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":"credentials.items.[INDEX].authSchemeConfig.basicAuth.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same\nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.basicAuth.description","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":"credentials.items.[INDEX].authSchemeConfig.basicAuth.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.basicAuth.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":"credentials.items.[INDEX].authSchemeConfig.basicAuth.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.basicAuth.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.basicAuth.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.basicAuth.validationMessages","typeLabel":"object[]"}},"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.basicAuth","typeLabel":"Basic Auth · object"},"oauth2":{"type":"object","title":"OAuth 2.0","description":"AuthSchemeConfigOAuth2 defines how a Connector uses an OAuth2 credential to authenticate\nwith the system. This is to be used for all OAuth 2.0 flows which require a client ID and\nclient secret as part of the Connector's configuration. Connectors which use the\n`client_credentials` grant type, where the user provides the Client ID and Client Secret at\nthe point where they connect, should use the `AuthSchemeConfigOAuth2ClientCredentials` type\ninstead.\n","required":["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":"credentials.items.[INDEX].authSchemeConfig.oauth2.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same\nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth2.description","typeLabel":"string"},"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":"credentials.items.[INDEX].authSchemeConfig.oauth2.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":"credentials.items.[INDEX].authSchemeConfig.oauth2.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":"credentials.items.[INDEX].authSchemeConfig.oauth2.scopes.items.[INDEX].description","typeLabel":"string"}},"required":["name"],"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth2.scopes.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth2.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":"credentials.items.[INDEX].authSchemeConfig.oauth2.defaultScopes.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth2.defaultScopes","typeLabel":"string[]"},"grant":{"type":"object","properties":{"type":{"type":"string","enum":["authorizationCode","clientCredentials","password"],"isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth2.grant.type","typeLabel":"enum\u003cstring>"},"authorizationCode":{"title":"authorization_code","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","type":"object","properties":{"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":"credentials.items.[INDEX].authSchemeConfig.oauth2.grant.authorizationCode.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":"credentials.items.[INDEX].authSchemeConfig.oauth2.grant.authorizationCode.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":"credentials.items.[INDEX].authSchemeConfig.oauth2.grant.authorizationCode.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":"credentials.items.[INDEX].authSchemeConfig.oauth2.grant.authorizationCode.clientSecret","typeLabel":"string"}},"required":["grantType"],"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth2.grant.authorizationCode","typeLabel":"authorization_code · object"},"clientCredentials":{"title":"client_credentials","type":"object","uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth2.grant.clientCredentials","typeLabel":"client_credentials · object"},"password":{"title":"password","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","type":"object","properties":{"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":"credentials.items.[INDEX].authSchemeConfig.oauth2.grant.password.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":"credentials.items.[INDEX].authSchemeConfig.oauth2.grant.password.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":"credentials.items.[INDEX].authSchemeConfig.oauth2.grant.password.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":"credentials.items.[INDEX].authSchemeConfig.oauth2.grant.password.clientSecret","typeLabel":"string"}},"required":["grantType"],"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth2.grant.password","typeLabel":"password · object"}},"required":["type"],"isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth2.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":"credentials.items.[INDEX].authSchemeConfig.oauth2.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth2.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":"credentials.items.[INDEX].authSchemeConfig.oauth2.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth2.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth2.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth2.validationMessages","typeLabel":"object[]"},"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","x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth2.authorizeUrl","typeLabel":"string\u003curi>"},"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":"credentials.items.[INDEX].authSchemeConfig.oauth2.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":"credentials.items.[INDEX].authSchemeConfig.oauth2.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":"credentials.items.[INDEX].authSchemeConfig.oauth2.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":"credentials.items.[INDEX].authSchemeConfig.oauth2.mtlsCredentialId","typeLabel":"string"},"pkce":{"type":"boolean","x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth2.pkce","typeLabel":"boolean"}},"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth2","typeLabel":"OAuth 2.0 · object"},"oauth1":{"type":"object","title":"OAuth 2.0","required":["consumerKey","consumerSecret","signatureMethod","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":"credentials.items.[INDEX].authSchemeConfig.oauth1.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same\nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.description","typeLabel":"string"},"consumerKey":{"type":"string","isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.consumerKey","typeLabel":"string"},"consumerSecret":{"type":"string","isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.consumerSecret","typeLabel":"string"},"signatureMethod":{"type":"string","description":"One of 'sha256', 'sha1'","isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.signatureMethod","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":"credentials.items.[INDEX].authSchemeConfig.oauth1.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.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":"credentials.items.[INDEX].authSchemeConfig.oauth1.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.validationMessages","typeLabel":"object[]"},"tokenAuth":{"type":"boolean","description":"If set to 'true' the endpoints are optional but when connecting you need to use oauth1-token credentials and provide the token and token secret.\nIf left empty or set to 'false' you need to provide all the endpoint and connect using the oauth1 credentials which uses the browser authorize flow.\n","x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tokenAuth","typeLabel":"boolean"},"tempCredentialEndpoint":{"type":"object","properties":{"url":{"type":"string","description":"URL of the endpoint, may contain templated values in curly braces","isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tempCredentialEndpoint.url","typeLabel":"string"},"additionalParamConfigs":{"type":"array","items":{"type":"object","properties":{"parameterName":{"type":"string","description":"Key of the additional parameter to insert","isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tempCredentialEndpoint.additionalParamConfigs.items.[INDEX].parameterName","typeLabel":"string"},"location":{"type":"string","enum":["LOCATION_IGNORE","LOCATION_BODY","LOCATION_HEADER","LOCATION_QUERY","LOCATION_ENDPOINT","LOCATION_HEADER_PARAMETER"],"isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tempCredentialEndpoint.additionalParamConfigs.items.[INDEX].location","typeLabel":"enum\u003cstring>"},"required":{"type":"boolean","description":"Whether parameter is required in requests","isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tempCredentialEndpoint.additionalParamConfigs.items.[INDEX].required","typeLabel":"boolean"},"modifiable":{"type":"boolean","description":"Whether parameter can be modified by user","isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tempCredentialEndpoint.additionalParamConfigs.items.[INDEX].modifiable","typeLabel":"boolean"},"targetName":{"type":"string","description":"Override name for the parameter in endpoint requests","x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tempCredentialEndpoint.additionalParamConfigs.items.[INDEX].targetName","typeLabel":"string"},"usages":{"type":"string","enum":["USAGE_UNKNOWN","USAGE_TEMP_CREDENTIAL_ENDPOINT","USAGE_TOKEN_REQUEST_ENDPOINT"],"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tempCredentialEndpoint.additionalParamConfigs.items.[INDEX].usages","typeLabel":"enum\u003cstring>"}},"required":["location","usage","required","modifiable","parameterName"],"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tempCredentialEndpoint.additionalParamConfigs.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tempCredentialEndpoint.additionalParamConfigs","typeLabel":"object[]"},"parameterTransmission":{"type":"string","enum":["AUTH_STYLE_AUTHORIZATION_HEADER","AUTH_STYLE_FORM","AUTH_STYLE_QUERY"],"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tempCredentialEndpoint.parameterTransmission","typeLabel":"enum\u003cstring>"}},"required":["url"],"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tempCredentialEndpoint","typeLabel":"object"},"resourceOwnerAuthorizationEndpoint":{"type":"object","properties":{"url":{"type":"string","description":"URL of the endpoint, may contain templated values in curly braces","isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.resourceOwnerAuthorizationEndpoint.url","typeLabel":"string"},"additionalParamConfigs":{"type":"array","items":{"type":"object","properties":{"parameterName":{"type":"string","description":"Key of the additional parameter to insert","isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.resourceOwnerAuthorizationEndpoint.additionalParamConfigs.items.[INDEX].parameterName","typeLabel":"string"},"location":{"type":"string","enum":["LOCATION_IGNORE","LOCATION_BODY","LOCATION_HEADER","LOCATION_QUERY","LOCATION_ENDPOINT","LOCATION_HEADER_PARAMETER"],"isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.resourceOwnerAuthorizationEndpoint.additionalParamConfigs.items.[INDEX].location","typeLabel":"enum\u003cstring>"},"required":{"type":"boolean","description":"Whether parameter is required in requests","isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.resourceOwnerAuthorizationEndpoint.additionalParamConfigs.items.[INDEX].required","typeLabel":"boolean"},"modifiable":{"type":"boolean","description":"Whether parameter can be modified by user","isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.resourceOwnerAuthorizationEndpoint.additionalParamConfigs.items.[INDEX].modifiable","typeLabel":"boolean"},"targetName":{"type":"string","description":"Override name for the parameter in endpoint requests","x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.resourceOwnerAuthorizationEndpoint.additionalParamConfigs.items.[INDEX].targetName","typeLabel":"string"},"usages":{"type":"string","enum":["USAGE_UNKNOWN","USAGE_TEMP_CREDENTIAL_ENDPOINT","USAGE_TOKEN_REQUEST_ENDPOINT"],"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.resourceOwnerAuthorizationEndpoint.additionalParamConfigs.items.[INDEX].usages","typeLabel":"enum\u003cstring>"}},"required":["location","usage","required","modifiable","parameterName"],"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.resourceOwnerAuthorizationEndpoint.additionalParamConfigs.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.resourceOwnerAuthorizationEndpoint.additionalParamConfigs","typeLabel":"object[]"},"parameterTransmission":{"type":"string","enum":["AUTH_STYLE_AUTHORIZATION_HEADER","AUTH_STYLE_FORM","AUTH_STYLE_QUERY"],"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.resourceOwnerAuthorizationEndpoint.parameterTransmission","typeLabel":"enum\u003cstring>"}},"required":["url"],"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.resourceOwnerAuthorizationEndpoint","typeLabel":"object"},"tokenEndpoint":{"type":"object","properties":{"url":{"type":"string","description":"URL of the endpoint, may contain templated values in curly braces","isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tokenEndpoint.url","typeLabel":"string"},"additionalParamConfigs":{"type":"array","items":{"type":"object","properties":{"parameterName":{"type":"string","description":"Key of the additional parameter to insert","isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tokenEndpoint.additionalParamConfigs.items.[INDEX].parameterName","typeLabel":"string"},"location":{"type":"string","enum":["LOCATION_IGNORE","LOCATION_BODY","LOCATION_HEADER","LOCATION_QUERY","LOCATION_ENDPOINT","LOCATION_HEADER_PARAMETER"],"isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tokenEndpoint.additionalParamConfigs.items.[INDEX].location","typeLabel":"enum\u003cstring>"},"required":{"type":"boolean","description":"Whether parameter is required in requests","isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tokenEndpoint.additionalParamConfigs.items.[INDEX].required","typeLabel":"boolean"},"modifiable":{"type":"boolean","description":"Whether parameter can be modified by user","isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tokenEndpoint.additionalParamConfigs.items.[INDEX].modifiable","typeLabel":"boolean"},"targetName":{"type":"string","description":"Override name for the parameter in endpoint requests","x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tokenEndpoint.additionalParamConfigs.items.[INDEX].targetName","typeLabel":"string"},"usages":{"type":"string","enum":["USAGE_UNKNOWN","USAGE_TEMP_CREDENTIAL_ENDPOINT","USAGE_TOKEN_REQUEST_ENDPOINT"],"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tokenEndpoint.additionalParamConfigs.items.[INDEX].usages","typeLabel":"enum\u003cstring>"}},"required":["location","usage","required","modifiable","parameterName"],"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tokenEndpoint.additionalParamConfigs.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tokenEndpoint.additionalParamConfigs","typeLabel":"object[]"},"parameterTransmission":{"type":"string","enum":["AUTH_STYLE_AUTHORIZATION_HEADER","AUTH_STYLE_FORM","AUTH_STYLE_QUERY"],"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tokenEndpoint.parameterTransmission","typeLabel":"enum\u003cstring>"}},"required":["url"],"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.tokenEndpoint","typeLabel":"object"},"credentialId":{"type":"string","format":"ulid","x-go-type":"ulid.ULID","x-go-name":"CredentialID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1.credentialId","typeLabel":"string\u003culid>"}},"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.oauth1","typeLabel":"OAuth 2.0 · object"},"hmac":{"type":"object","title":"HMAC","description":"AuthSchemeConfigHMAC defines how a Connector uses an HMAC credential to authenticate with the system.\n\nThis may be used on outbound requests to sign the request body, however it is more commonly used on inbound\nrequests (i.e. from Webhook Triggers) to verify the sender of the request is allowed to invoke the Trigger.\n","required":["name","in","algorithm","digestInputs","encoding","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":"credentials.items.[INDEX].authSchemeConfig.hmac.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same\nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.hmac.description","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":"credentials.items.[INDEX].authSchemeConfig.hmac.name","typeLabel":"string"},"in":{"description":"AuthSchemeConfigHMACIn defines where the signature should be set on requests.","type":"string","enum":["query","header","cookie"],"isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.hmac.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":"credentials.items.[INDEX].authSchemeConfig.hmac.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":"credentials.items.[INDEX].authSchemeConfig.hmac.digestInputs.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.hmac.digestInputs","typeLabel":"enum\u003cstring>[]"},"encoding":{"description":"Encoding defines how the HMAC signature was encoded. This can be one of `hex`, `base64` or `base64url`.\n","type":"string","enum":["hex","base64","base64url"],"isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.hmac.encoding","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":"credentials.items.[INDEX].authSchemeConfig.hmac.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.hmac.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":"credentials.items.[INDEX].authSchemeConfig.hmac.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.hmac.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.hmac.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.hmac.validationMessages","typeLabel":"object[]"}},"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.hmac","typeLabel":"HMAC · object"},"certificate":{"type":"object","title":"TLS Certificate","description":"AuthSchemeConfigCertificate is a placeholder object with the schemeType set to `certificate`.\nThere is no other config required\n","required":["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":"credentials.items.[INDEX].authSchemeConfig.certificate.id","typeLabel":"string\u003culid>"},"description":{"description":"Description enables users to distinguish multiple configurations which use the same\nschemeType.\n","type":"string","isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.certificate.description","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":"credentials.items.[INDEX].authSchemeConfig.certificate.validationMessages.items.[INDEX].text","typeLabel":"string"},"severity":{"type":"string","enum":["info","warning","error"],"isRequired":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.certificate.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":"credentials.items.[INDEX].authSchemeConfig.certificate.validationMessages.items.[INDEX].detail.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.certificate.validationMessages.items.[INDEX].detail","typeLabel":"string[]"}},"required":["text","severity"],"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.certificate.validationMessages.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.certificate.validationMessages","typeLabel":"object[]"}},"uniqueKey":"credentials.items.[INDEX].authSchemeConfig.certificate","typeLabel":"TLS Certificate · object"}},"required":["type"],"uniqueKey":"credentials.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":"credentials.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":"credentials.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- oauth1: The credential is an OAuth1 access_token to be used for OAuth1 authentication.\n- oauth1-token: The credential is the oatuh1 token allowing bypassing the user authorization step.\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","oauth1","oauth1-token","oauth2-code","oauth2-password","oauth2-token","certificate"],"x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].credential.type","typeLabel":"enum\u003cstring>"},"name":{"type":"string","description":"Name is the name of the Credential.","uniqueKey":"credentials.items.[INDEX].credential.name","typeLabel":"string"},"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":"credentials.items.[INDEX].credential.errors.items.[INDEX]","typeLabel":"string"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].credential.errors","typeLabel":"string[]"},"data":{"type":"object","properties":{"binary":{"title":"Binary","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","type":"object","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":"credentials.items.[INDEX].credential.data.binary.valueBase64","typeLabel":"string"}},"required":["valueBase64"],"uniqueKey":"credentials.items.[INDEX].credential.data.binary","typeLabel":"Binary · object"},"none":{"title":"None","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","type":"object","additionalProperties":false,"uniqueKey":"credentials.items.[INDEX].credential.data.none","typeLabel":"None · object"},"string":{"title":"String","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","type":"object","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":"credentials.items.[INDEX].credential.data.string.value","typeLabel":"string"}},"required":["value"],"uniqueKey":"credentials.items.[INDEX].credential.data.string","typeLabel":"String · object"},"basicAuth":{"title":"Username/Password","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","type":"object","properties":{"username":{"type":"string","description":"Username is the username used to authenticate with the Connector.","isRequired":true,"uniqueKey":"credentials.items.[INDEX].credential.data.basicAuth.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":"credentials.items.[INDEX].credential.data.basicAuth.password","typeLabel":"string"}},"required":["username","password"],"uniqueKey":"credentials.items.[INDEX].credential.data.basicAuth","typeLabel":"Username/Password · object"},"oauth2Client":{"title":"OAuth 2.0 Client","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","type":"object","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":"credentials.items.[INDEX].credential.data.oauth2Client.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":"credentials.items.[INDEX].credential.data.oauth2Client.clientSecret","typeLabel":"string"},"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":"credentials.items.[INDEX].credential.data.oauth2Client.tokenUrl","typeLabel":"string\u003curi>"},"scopes":{"type":"array","items":{"type":"string","uniqueKey":"credentials.items.[INDEX].credential.data.oauth2Client.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":"credentials.items.[INDEX].credential.data.oauth2Client.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":"credentials.items.[INDEX].credential.data.oauth2Client.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":"credentials.items.[INDEX].credential.data.oauth2Client.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":"credentials.items.[INDEX].credential.data.oauth2Client.mTLSCredentialId","typeLabel":"string"}},"required":["clientId","clientSecret","tokenUrl"],"uniqueKey":"credentials.items.[INDEX].credential.data.oauth2Client","typeLabel":"OAuth 2.0 Client · object"},"oauth2Token":{"title":"OAuth 2.0 Token","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","type":"object","properties":{"scopes":{"type":"array","items":{"type":"string","uniqueKey":"credentials.items.[INDEX].credential.data.oauth2Token.scopes.items.[INDEX]","typeLabel":"string"},"description":"Scopes is a list of scopes which the user has granted consent for.","isRequired":true,"uniqueKey":"credentials.items.[INDEX].credential.data.oauth2Token.scopes","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\nThis is a required field as it is used to refresh the access token when it expires. If users are providing\nan access token which does not expire using this credential type, then the same functionality may be\nachieved by using a simple API key and OAuth 2.0 need not be used.\n","isRequired":true,"uniqueKey":"credentials.items.[INDEX].credential.data.oauth2Token.refreshToken","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":"credentials.items.[INDEX].credential.data.oauth2Token.accessToken","typeLabel":"string"},"tokenType":{"type":"string","description":"TokenType is the type of token which is being issued. Defaults to \"Bearer\" if not set.\n","default":"Bearer","x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].credential.data.oauth2Token.tokenType","typeLabel":"string"},"expiresAt":{"type":"string","format":"date-time","description":"ExpiresAt is the time at which the access token will expire. If not defined, the accessToken will be\nreused until a 401 response is received from the Connector, at which point the token should be refreshed\nwith the provided `refreshToken`. Ideally this should be provided so that erroneous failures can be\navoided.\n","x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].credential.data.oauth2Token.expiresAt","typeLabel":"string\u003cdate-time>"}},"required":["scopes","refreshToken"],"uniqueKey":"credentials.items.[INDEX].credential.data.oauth2Token","typeLabel":"OAuth 2.0 Token · object"},"oauth2Code":{"title":"OAuth 2.0 Code","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","type":"object","properties":{"code":{"description":"Code is the authorization code which will be exchanged for an access token.\n","type":"string","isRequired":true,"uniqueKey":"credentials.items.[INDEX].credential.data.oauth2Code.code","typeLabel":"string"},"state":{"description":"State is the state value which is propagated through the OAuth2 flow.\n","type":"string","isRequired":true,"uniqueKey":"credentials.items.[INDEX].credential.data.oauth2Code.state","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":"credentials.items.[INDEX].credential.data.oauth2Code.additionalParams","typeLabel":"string"}},"required":["code","state"],"uniqueKey":"credentials.items.[INDEX].credential.data.oauth2Code","typeLabel":"OAuth 2.0 Code · object"},"oauth2Password":{"title":"OAuth 2.0 Password","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","type":"object","properties":{"username":{"type":"string","description":"Username is the username used to authenticate with the Connector.","isRequired":true,"uniqueKey":"credentials.items.[INDEX].credential.data.oauth2Password.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":"credentials.items.[INDEX].credential.data.oauth2Password.password","typeLabel":"string"}},"required":["username","password"],"uniqueKey":"credentials.items.[INDEX].credential.data.oauth2Password","typeLabel":"OAuth 2.0 Password · object"},"certificate":{"title":"Certificate","description":"CredentialDataCertificate contains the Certificate, Certificate key and CA(Certificate authority).\n","type":"object","properties":{"certificate":{"type":"string","description":"Certificate is the certificate that will be send to the connection.","isRequired":true,"uniqueKey":"credentials.items.[INDEX].credential.data.certificate.certificate","typeLabel":"string"},"key":{"type":"string","description":"Key is the accompanying key for the certificate.","isRequired":true,"uniqueKey":"credentials.items.[INDEX].credential.data.certificate.key","typeLabel":"string"},"ca":{"type":"string","description":"CA is the Certificate Authority to verify the server certificates against.","isRequired":true,"uniqueKey":"credentials.items.[INDEX].credential.data.certificate.ca","typeLabel":"string"}},"required":["certificate","key","ca"],"uniqueKey":"credentials.items.[INDEX].credential.data.certificate","typeLabel":"Certificate · object"},"oauth1":{"title":"OAuth1","type":"object","properties":{"state":{"type":"string","isRequired":true,"uniqueKey":"credentials.items.[INDEX].credential.data.oauth1.state","typeLabel":"string"},"oauthToken":{"type":"string","isRequired":true,"uniqueKey":"credentials.items.[INDEX].credential.data.oauth1.oauthToken","typeLabel":"string"},"oauthVerifier":{"type":"string","isRequired":true,"uniqueKey":"credentials.items.[INDEX].credential.data.oauth1.oauthVerifier","typeLabel":"string"}},"required":["oauthVerifier","oauthToken","state"],"uniqueKey":"credentials.items.[INDEX].credential.data.oauth1","typeLabel":"OAuth1 · object"},"oauth1Token":{"title":"OAuth1Token","type":"object","properties":{"token":{"type":"string","isRequired":true,"uniqueKey":"credentials.items.[INDEX].credential.data.oauth1Token.token","typeLabel":"string"},"tokenSecret":{"type":"string","isRequired":true,"uniqueKey":"credentials.items.[INDEX].credential.data.oauth1Token.tokenSecret","typeLabel":"string"},"additionalParams":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","isRequired":true,"uniqueKey":"credentials.items.[INDEX].credential.data.oauth1Token.additionalParams.items.[INDEX].name","typeLabel":"string"},"value":{"type":"string","uniqueKey":"credentials.items.[INDEX].credential.data.oauth1Token.additionalParams.items.[INDEX].value","typeLabel":"string"}},"required":["name"],"uniqueKey":"credentials.items.[INDEX].credential.data.oauth1Token.additionalParams.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"credentials.items.[INDEX].credential.data.oauth1Token.additionalParams","typeLabel":"object[]"}},"required":["token","tokenSecret"],"uniqueKey":"credentials.items.[INDEX].credential.data.oauth1Token","typeLabel":"OAuth1Token · object"}},"uniqueKey":"credentials.items.[INDEX].credential.data","typeLabel":"object"},"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":"credentials.items.[INDEX].credential.expiresAt","typeLabel":"string\u003cdate-time>"}},"required":["id","organisationId"],"uniqueKey":"credentials.items.[INDEX].credential","typeLabel":"object"}},"required":["id"],"uniqueKey":"credentials.items.[INDEX]","typeLabel":"object"},"x-go-type-skip-optional-pointer":true,"isRequired":true,"uniqueKey":"credentials","typeLabel":"object[]"},"createdAt":{"type":"string","format":"date-time","description":"CreatedAt is the time the Connection was created.","isRequired":true,"uniqueKey":"createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","description":"UpdatedAt is the time the Connection was last updated.","isRequired":true,"uniqueKey":"updatedAt","typeLabel":"string\u003cdate-time>"},"baseUrl":{"description":"The baseUrl on the connection allows a dynamic user to override the base URL of the connection. This is useful\nwhen users have their own instance of a service and want to connect to it.\n\nFor example, a user may have their own instance of shopify and their url is `https://myshopify.com`. They can\noverride the base url of the connection to `https://myshopify.com` and all requests will be made to this url.\nIf it is left as an empty string, it will be ignored.\n","type":"string","format":"uri","x-go-type-skip-optional-pointer":true,"x-go-name":"baseURL","uniqueKey":"baseUrl","typeLabel":"string\u003curi>"},"systemId":{"description":"ID of the system to add the project environment.","type":"string","format":"ulid","x-go-type":"ulid.ULID","x-go-name":"SystemID","x-go-type-import":{"path":"versori.dev/vergo/ulid"},"x-go-type-skip-optional-pointer":true,"uniqueKey":"systemId","typeLabel":"string\u003culid>"},"connectionTemplateId":{"type":"string","description":"This is the ID of the template that the connection is created against.\n","format":"ulid","x-go-type":"ulid.ULID","x-go-name":"EnvironmentSystemID","x-go-type-skip-optional-pointer":true,"x-go-type-import":{"path":"versori.dev/vergo/ulid"},"uniqueKey":"connectionTemplateId","typeLabel":"string\u003culid>"}},"required":["id","name","credentials","createdAt","updatedAt"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"\u003cstring>","name":"\u003cstring>","credentials":[{"id":"\u003cstring>","authSchemeConfig":{"type":"none","none":{"id":"\u003cstring>","description":"\u003cstring>","validationMessages":[{"text":"\u003cstring>","severity":"info","detail":["\u003cstring>"]}]},"apiKey":{"id":"\u003cstring>","description":"\u003cstring>","name":"\u003cstring>","in":"query","validationMessages":[{"text":"\u003cstring>","severity":"info","detail":["\u003cstring>"]}]},"basicAuth":{"id":"\u003cstring>","description":"\u003cstring>","validationMessages":[{"text":"\u003cstring>","severity":"info","detail":["\u003cstring>"]}]},"oauth2":{"id":"\u003cstring>","description":"\u003cstring>","tokenUrl":"\u003cstring>","scopes":[{"name":"\u003cstring>","description":"\u003cstring>"}],"defaultScopes":["\u003cstring>"],"grant":{"type":"authorizationCode","authorizationCode":{"credentialId":"\u003cstring>","organisationId":"\u003cstring>","clientId":"\u003cstring>","clientSecret":"\u003cstring>"},"clientCredentials":{},"password":{"credentialId":"\u003cstring>","organisationId":"\u003cstring>","clientId":"\u003cstring>","clientSecret":"\u003cstring>"}},"validationMessages":[{"text":"\u003cstring>","severity":"info","detail":["\u003cstring>"]}],"authorizeUrl":"\u003cstring>","additionalAuthorizeParams":"\u003cstring>","additionalTokenParams":"\u003cstring>","mtlsEnabled":true,"mtlsCredentialId":"\u003cstring>","pkce":true},"oauth1":{"id":"\u003cstring>","description":"\u003cstring>","consumerKey":"\u003cstring>","consumerSecret":"\u003cstring>","signatureMethod":"\u003cstring>","validationMessages":[{"text":"\u003cstring>","severity":"info","detail":["\u003cstring>"]}],"tokenAuth":true,"tempCredentialEndpoint":{"url":"\u003cstring>","additionalParamConfigs":[{"parameterName":"\u003cstring>","location":"LOCATION_IGNORE","required":true,"modifiable":true,"targetName":"\u003cstring>","usages":"USAGE_UNKNOWN"}],"parameterTransmission":"AUTH_STYLE_AUTHORIZATION_HEADER"},"resourceOwnerAuthorizationEndpoint":{"url":"\u003cstring>","additionalParamConfigs":[{"parameterName":"\u003cstring>","location":"LOCATION_IGNORE","required":true,"modifiable":true,"targetName":"\u003cstring>","usages":"USAGE_UNKNOWN"}],"parameterTransmission":"AUTH_STYLE_AUTHORIZATION_HEADER"},"tokenEndpoint":{"url":"\u003cstring>","additionalParamConfigs":[{"parameterName":"\u003cstring>","location":"LOCATION_IGNORE","required":true,"modifiable":true,"targetName":"\u003cstring>","usages":"USAGE_UNKNOWN"}],"parameterTransmission":"AUTH_STYLE_AUTHORIZATION_HEADER"},"credentialId":"\u003cstring>"},"hmac":{"id":"\u003cstring>","description":"\u003cstring>","name":"\u003cstring>","in":"query","algorithm":"sha1","digestInputs":["body"],"encoding":"hex","validationMessages":[{"text":"\u003cstring>","severity":"info","detail":["\u003cstring>"]}]},"certificate":{"id":"\u003cstring>","description":"\u003cstring>","validationMessages":[{"text":"\u003cstring>","severity":"info","detail":["\u003cstring>"]}]}},"credential":{"id":"\u003cstring>","organisationId":"\u003cstring>","type":"none","name":"\u003cstring>","errors":["\u003cstring>"],"data":{"binary":{"valueBase64":"\u003cstring>"},"none":{},"string":{"value":"\u003cstring>"},"basicAuth":{"username":"\u003cstring>","password":"\u003cstring>"},"oauth2Client":{"clientId":"\u003cstring>","clientSecret":"\u003cstring>","tokenUrl":"\u003cstring>","scopes":["\u003cstring>"],"additionalParams":"\u003cstring>","mTLSEnabled":true,"mTLSCredentialId":"\u003cstring>"},"oauth2Token":{"scopes":["\u003cstring>"],"refreshToken":"\u003cstring>","accessToken":"\u003cstring>","tokenType":"Bearer","expiresAt":"2023-11-07T05:31:56Z"},"oauth2Code":{"code":"\u003cstring>","state":"\u003cstring>","additionalParams":"\u003cstring>"},"oauth2Password":{"username":"\u003cstring>","password":"\u003cstring>"},"certificate":{"certificate":"\u003cstring>","key":"\u003cstring>","ca":"\u003cstring>"},"oauth1":{"state":"\u003cstring>","oauthToken":"\u003cstring>","oauthVerifier":"\u003cstring>"},"oauth1Token":{"token":"\u003cstring>","tokenSecret":"\u003cstring>","additionalParams":[{"name":"\u003cstring>","value":"\u003cstring>"}]}},"expiresAt":"2023-11-07T05:31:56Z"}}],"createdAt":"2023-11-07T05:31:56Z","updatedAt":"2023-11-07T05:31:56Z","baseUrl":"\u003cstring>","systemId":"\u003cstring>","connectionTemplateId":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"5bf0e621-e188-4454-bad4-9383b9c20f8a":{"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":{"ad977c79-c846-4804-9548-4d09cb6f8f14":{"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":[]}},"b1012d3e-47bf-44f7-b929-7fdf4592103d":{"cookie":{"description":"Cookie authentication used by the Versori Platform.","type":"apiKey","in":"cookie","name":"cookie","scopes":[]}}},"servers":{"d0eac863-e307-4ad7-a239-2c447e8ba4c0":{"description":"Production","url":"https://platform.versori.com/api/v2"},"0bedeed1-5e05-4d49-a0f1-0acdda0da1fe":{"description":"Staging","url":"https://platform-staging.versori.com/api/v2"},"731967af-8899-446e-b2cf-c9e6c5801b84":{"description":"Development","url":"http://localhost:8901"}},"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/platform-api.yaml"},"subdomain":"versori","siteName":"Versori User Documentation","title":"Create a new connection. - Versori User Documentation","navMaps":{"firstHrefInVersion":{"Latest":{"href":"/api-reference/platform-api/connections/create-a-new-connection","matchLevel":0},"Legacy":{"href":"/legacy/welcome","matchLevel":4},"v2":{"href":"/v2/introduction","matchLevel":4}},"firstHrefInLanguage":{}},"lastModified":"2026-02-26T16:03:22.489Z","originalFileLocation":"api-reference/platform-api/connections/create-a-new-connection.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=\"CreateConnection creates a new connection for the given organisation.\">\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=\"Create a new connection. - Versori User Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"CreateConnection creates a new connection for the given organisation.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Versori User Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.versori.com/api-reference/platform-api/connections/create-a-new-connection\">\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=connections\u0026amp;title=Create+a+new+connection.\u0026amp;description=CreateConnection+creates+a+new+connection+for+the+given+organisation.%0A\u0026amp;theme=1ac70f2532992ffb34bd6aef\u0026amp;signature=257b058fa75b7b4b496cd0b0c4c042721d873ffb3d2bf7f631f3bbf37b58d28d\">\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=\"Create a new connection. - Versori User Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"CreateConnection creates a new connection for the given organisation.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://versori.mintlify.app/_mintlify/api/og/v2?division=connections\u0026amp;title=Create+a+new+connection.\u0026amp;description=CreateConnection+creates+a+new+connection+for+the+given+organisation.%0A\u0026amp;theme=1ac70f2532992ffb34bd6aef\u0026amp;signature=257b058fa75b7b4b496cd0b0c4c042721d873ffb3d2bf7f631f3bbf37b58d28d\">\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/api-reference/platform-api/connections/create-a-new-connection\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/platform-api/connections/create-a-new-connection.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/api-reference/platform-api/connections/create-a-new-connection#webpage\",\"url\":\"https://docs.versori.com/api-reference/platform-api/connections/create-a-new-connection\",\"name\":\"Create a new connection.\",\"description\":\"CreateConnection creates a new connection for the given organisation.\",\"dateModified\":\"2026-02-26T16:03:22.489Z\",\"isPartOf\":{\"@id\":\"https://docs.versori.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.versori.com/api-reference/platform-api/connections/create-a-new-connection#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.versori.com/api-reference/platform-api/connections/create-a-new-connection#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.versori.com/api-reference/platform-api/end_users/activates-a-user-on-an-environment\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"connections\",\"item\":\"https://docs.versori.com/api-reference/platform-api/connections/list-connections\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Create a new connection.\",\"item\":\"https://docs.versori.com/api-reference/platform-api/connections/create-a-new-connection\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.versori.com/api-reference/platform-api/connections/create-a-new-connection#apireference\",\"headline\":\"Create a new connection.\",\"name\":\"Create a new connection.\",\"description\":\"CreateConnection creates a new connection for the given organisation.\",\"url\":\"https://docs.versori.com/api-reference/platform-api/connections/create-a-new-connection\",\"mainEntityOfPage\":{\"@id\":\"https://docs.versori.com/api-reference/platform-api/connections/create-a-new-connection#webpage\"},\"dateModified\":\"2026-02-26T16:03:22.489Z\",\"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","tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/latest/home"}]},{"tab":"User Guide","pages":[{"title":"User Guide","href":"/latest/guides/getting-started/chat"}]},{"tab":"Run SDK","dropdowns":[{"dropdown":"Latest (0.4.x)","groups":[{"group":"Getting Started","expanded":true,"pages":[{"title":"Run SDK","sidebarTitle":"Introduction","href":"/latest/run-sdk/latest/introduction"},{"title":"Connections","href":"/latest/run-sdk/latest/connections"},{"group":"Workflows, Triggers and Tasks","pages":[{"title":"Workflows, Triggers and Tasks","sidebarTitle":"Overview","href":"/latest/run-sdk/latest/workflows"},{"title":"Inputs and outputs","href":"/latest/run-sdk/latest/workflows/inputs-outputs"},{"title":"Task Types","href":"/latest/run-sdk/latest/workflows/task-types"},{"title":"Background","href":"/latest/run-sdk/latest/workflows/background"},{"title":"Catch","href":"/latest/run-sdk/latest/workflows/catch"}]},{"title":"The Context Object","href":"/latest/run-sdk/latest/context"},{"title":"Durable Workflows","href":"/latest/run-sdk/latest/durable-workflows"}]},{"group":"Developers","pages":[{"title":"Developers Overview","sidebarTitle":"Overview","href":"/latest/run-sdk/latest/developers/overview"}]}]}]},{"tab":"CLI","pages":[{"title":"CLI","href":"/latest/cli/introduction"}]},{"tab":"AI Tooling","pages":[{"title":"AI Tooling","href":"/latest/ai-tooling/cloud-agents"}]},{"tab":"API Reference","anchors":[{"anchor":"Overview","pages":[{"title":"Overview","href":"/latest/api-reference/getting-started"}]},{"anchor":"Platform API","icon":"cloud","pages":[{"title":"Getting Started","href":"/latest/api-reference/platform-api/getting-started"},{"group":"API Reference","pages":[{"group":"end_users","pages":[{"title":"Activates a User on an Environment.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/activations","href":"/api-reference/platform-api/end_users/activates-a-user-on-an-environment"},{"title":"List End Users","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/users","href":"/api-reference/platform-api/end_users/list-end-users"},{"title":"Create an End User","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/users","href":"/api-reference/platform-api/end_users/create-an-end-user"},{"title":"Retrieve an End User","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/users/{user_id}","href":"/api-reference/platform-api/end_users/retrieve-an-end-user"},{"title":"Delete an End User","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml delete /o/{organisation_id}/users/{user_id}","href":"/api-reference/platform-api/end_users/delete-an-end-user"}]},{"group":"execution_pools","pages":[{"title":"List available execution pools.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/execution-pools","href":"/api-reference/platform-api/execution_pools/list-available-execution-pools"}]},{"group":"projects","pages":[{"title":"List projects for organisation","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/projects","href":"/api-reference/platform-api/projects/list-projects-for-organisation"},{"title":"Create new project","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/projects","href":"/api-reference/platform-api/projects/create-new-project"},{"title":"Get Project","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/projects/{project_id}","href":"/api-reference/platform-api/projects/get-project"},{"title":"Update Project","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml put /o/{organisation_id}/projects/{project_id}","href":"/api-reference/platform-api/projects/update-project"},{"title":"Delete Project","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml delete /o/{organisation_id}/projects/{project_id}","href":"/api-reference/platform-api/projects/delete-project"},{"title":"Clone Project","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/projects/{project_id}/clone","href":"/api-reference/platform-api/projects/clone-project"},{"title":"Clone Environment","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/projects/{project_id}/environments/clone","href":"/api-reference/platform-api/projects/clone-environment"},{"title":"Sync Environments","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/projects/{project_id}/environments/sync","href":"/api-reference/platform-api/projects/sync-environments"},{"title":"Get project variables","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/projects/{project_id}/variables","href":"/api-reference/platform-api/projects/get-project-variables"},{"title":"Set the schema for the project variables","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml put /o/{organisation_id}/projects/{project_id}/variables","href":"/api-reference/platform-api/projects/set-the-schema-for-the-project-variables"},{"title":"Patch the schema for the project's dynamic variables","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml patch /o/{organisation_id}/projects/{project_id}/variables","href":"/api-reference/platform-api/projects/patch-the-schema-for-the-projects-dynamic-variables"},{"title":"Add sentiment data to project history","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/projects/{project_id}/sentiment","href":"/api-reference/platform-api/projects/add-sentiment-data-to-project-history"},{"title":"Get Files","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/projects/{project_id}/files","href":"/api-reference/platform-api/projects/get-files"},{"title":"Update Files","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml put /o/{organisation_id}/projects/{project_id}/files","href":"/api-reference/platform-api/projects/update-files"},{"title":"Patch Files","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml patch /o/{organisation_id}/projects/{project_id}/files","href":"/api-reference/platform-api/projects/patch-files"},{"title":"Change the execution pool of an environment","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml put /o/{organisation_id}/projects/{project_id}/environments/execution-pools","href":"/api-reference/platform-api/projects/change-the-execution-pool-of-an-environment"},{"title":"Call Integration","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/projects/{project_id}/environments/call","href":"/api-reference/platform-api/projects/call-integration"},{"title":"Deploy Project","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml put /o/{organisation_id}/projects/{project_id}/deploy","href":"/api-reference/platform-api/projects/deploy-project"},{"title":"Deploy Project Version","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml put /o/{organisation_id}/projects/{project_id}/versions/{version_id}/deploy","href":"/api-reference/platform-api/projects/deploy-project-version"},{"title":"Start Test Container","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/projects/{project_id}/testing/start","href":"/api-reference/platform-api/projects/start-test-container"},{"title":"Start test workflow","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/projects/{project_id}/testing/trigger/{trigger_name}","href":"/api-reference/platform-api/projects/start-test-workflow"},{"title":"Validate Project Files","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml put /o/{organisation_id}/projects/{project_id}/validate","href":"/api-reference/platform-api/projects/validate-project-files"},{"title":"Get Project Logs","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/projects/{project_id}/logs","href":"/api-reference/platform-api/projects/get-project-logs"},{"title":"Search project logs","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/projects/{project_id}/logs","href":"/api-reference/platform-api/projects/search-project-logs"},{"title":"List project traces","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/projects/{project_id}/traces","href":"/api-reference/platform-api/projects/list-project-traces"},{"title":"Get Trace","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/projects/{project_id}/traces/{trace_id}","href":"/api-reference/platform-api/projects/get-trace"},{"title":"Get integration flows","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/projects/{project_id}/workflows","href":"/api-reference/platform-api/projects/get-integration-flows"},{"title":"Get integration flow by name","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/projects/{project_id}/workflows/{flow_name}","href":"/api-reference/platform-api/projects/get-integration-flow-by-name"},{"title":"Update integration flow","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml put /o/{organisation_id}/projects/{project_id}/workflows/{flow_name}","href":"/api-reference/platform-api/projects/update-integration-flow"},{"title":"Delete integration flow","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml delete /o/{organisation_id}/projects/{project_id}/workflows/{flow_name}","href":"/api-reference/platform-api/projects/delete-integration-flow"},{"title":"Suspend Project","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/projects/{project_id}/suspend","href":"/api-reference/platform-api/projects/suspend-project"},{"title":"UpdateEnvironmentConfig updates the environment config for infrastructure.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml put /o/{organisation_id}/environments/{environment_id}/config","href":"/api-reference/platform-api/projects/updateenvironmentconfig-updates-the-environment-config-for-infrastructure"}]},{"group":"versions","pages":[{"title":"Lists versions for a project","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/projects/{project_id}/versions","href":"/api-reference/platform-api/versions/lists-versions-for-a-project"},{"title":"Create a new version for a project.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/projects/{project_id}/versions","href":"/api-reference/platform-api/versions/create-a-new-version-for-a-project"},{"title":"Get Files for a given version","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/projects/{project_id}/versions/{version_id}/files","href":"/api-reference/platform-api/versions/get-files-for-a-given-version"}]},{"group":"connections","pages":[{"title":"List Connections","description":"ListConnections returns a list of Connections.\n","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/connections","href":"/api-reference/platform-api/connections/list-connections"},{"title":"Create a new connection.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/connections","href":"/api-reference/platform-api/connections/create-a-new-connection"},{"title":"Get a Connection by ID","description":"GetConnection returns the Connection for the given connection ID.\n","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/connections/{connection_id}","href":"/api-reference/platform-api/connections/get-a-connection-by-id"},{"title":"Update a Connection by ID","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml put /o/{organisation_id}/connections/{connection_id}","href":"/api-reference/platform-api/connections/update-a-connection-by-id"},{"title":"Delete a Connection by ID","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml delete /o/{organisation_id}/connections/{connection_id}","href":"/api-reference/platform-api/connections/delete-a-connection-by-id"},{"title":"Link an existing connection to an environment","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/connections/{connection_id}/link","href":"/api-reference/platform-api/connections/link-an-existing-connection-to-an-environment"},{"title":"Unlink a connection from an environment","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml delete /o/{organisation_id}/connections/{connection_id}/link","href":"/api-reference/platform-api/connections/unlink-a-connection-from-an-environment"},{"title":"Retrieve the connection for the activations.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/environment-systems/{env_system_id}/activations/{activation_id}","href":"/api-reference/platform-api/connections/retrieve-the-connection-for-the-activations"},{"title":"List static connections for project environment","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/projects/{project_id}/connections","href":"/api-reference/platform-api/connections/list-static-connections-for-project-environment"},{"title":"Initialise OAuth 2.0 Connection","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/systems/{system_id}/oauth2/initialise","href":"/api-reference/platform-api/connections/initialise-oauth-20-connection"},{"title":"Initialise OAuth 1.0 Connection","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/systems/{system_id}/oauth1/initialise","href":"/api-reference/platform-api/connections/initialise-oauth-10-connection"}]},{"group":"automations","pages":[{"title":"List Automations","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/automations","href":"/api-reference/platform-api/automations/list-automations"},{"title":"Create a new automation.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/automations","href":"/api-reference/platform-api/automations/create-a-new-automation"},{"title":"List Automation Runs","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/automations/{automation_id}/run","href":"/api-reference/platform-api/automations/list-automation-runs"},{"title":"Run an Automation","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/automations/{automation_id}/run","href":"/api-reference/platform-api/automations/run-an-automation"},{"title":"Get an Automation by ID","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/automations/{automation_id}","href":"/api-reference/platform-api/automations/get-an-automation-by-id"},{"title":"Update an Automation","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml put /o/{organisation_id}/automations/{automation_id}","href":"/api-reference/platform-api/automations/update-an-automation"},{"title":"List Recordings","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/automations/{automation_id}/recordings","href":"/api-reference/platform-api/automations/list-recordings"},{"title":"Create a recording for an automation","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/automations/{automation_id}/recordings","href":"/api-reference/platform-api/automations/create-a-recording-for-an-automation"},{"title":"Get an Automation Run by ID","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/automations/{automation_id}/runs/{run_id}","href":"/api-reference/platform-api/automations/get-an-automation-run-by-id"},{"title":"Get a recording by ID","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/automations/{automation_id}/recordings/{recording_id}","href":"/api-reference/platform-api/automations/get-a-recording-by-id"},{"title":"Create a transcription for a recording","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/automations/{automation_id}/recordings/{recording_id}","href":"/api-reference/platform-api/automations/create-a-transcription-for-a-recording"}]},{"group":"schedulers","pages":[{"title":"List Schedulers","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/environments/{environment_id}/schedulers","href":"/api-reference/platform-api/schedulers/list-schedulers"},{"title":"Get a Scheduler by ID","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/environments/{environment_id}/schedulers/{scheduler_id}","href":"/api-reference/platform-api/schedulers/get-a-scheduler-by-id"}]},{"group":"API Reference","pages":[{"title":"Trigger a Scheduler once","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/environments/{environment_id}/schedulers/{scheduler_id}","href":"/api-reference/platform-api/trigger-a-scheduler-once"}]},{"group":"activations","pages":[{"title":"List Activations","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/environments/{environment_id}/activations","href":"/api-reference/platform-api/activations/list-activations"},{"title":"Retrieve an Activation by ID","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/environments/{environment_id}/activations/{activation_id}","href":"/api-reference/platform-api/activations/retrieve-an-activation-by-id"},{"title":"Delete an Activation","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml delete /o/{organisation_id}/environments/{environment_id}/activations/{activation_id}","href":"/api-reference/platform-api/activations/delete-an-activation"},{"title":"Set static variables for the static activation","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml patch /o/{organisation_id}/environments/{environment_id}/variables","href":"/api-reference/platform-api/activations/set-static-variables-for-the-static-activation"},{"title":"Set dynamic variables for an activation","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml patch /o/{organisation_id}/environments/{environment_id}/activations/{activation_id}/variables","href":"/api-reference/platform-api/activations/set-dynamic-variables-for-an-activation"},{"title":"Set a dynamic variable by name","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml put /o/{organisation_id}/environments/{environment_id}/activations/{activation_id}/variables/{variable_name}","href":"/api-reference/platform-api/activations/set-a-dynamic-variable-by-name"},{"title":"List Activations for User","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/environment/{environment_id}/users/{external_user_id}/activations","href":"/api-reference/platform-api/activations/list-activations-for-user"}]},{"group":"systems","pages":[{"title":"Lists the systems for the organisation.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/systems","href":"/api-reference/platform-api/systems/lists-the-systems-for-the-organisation"},{"title":"Create a new system.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/systems","href":"/api-reference/platform-api/systems/create-a-new-system"},{"title":"Get a system by ID.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/systems/{system_id}","href":"/api-reference/platform-api/systems/get-a-system-by-id"},{"title":"Update system.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml put /o/{organisation_id}/systems/{system_id}","href":"/api-reference/platform-api/systems/update-system"},{"title":"Delete a system by ID.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml delete /o/{organisation_id}/systems/{system_id}","href":"/api-reference/platform-api/systems/delete-a-system-by-id"},{"title":"Link system actions to project.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/systems/{system_id}/projects/{project_id}/actions-link","href":"/api-reference/platform-api/systems/link-system-actions-to-project"},{"title":"Link system triggers to project.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/systems/{system_id}/projects/{project_id}/triggers-link","href":"/api-reference/platform-api/systems/link-system-triggers-to-project"},{"title":"List actions for a system.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/systems/{system_id}/actions","href":"/api-reference/platform-api/systems/list-actions-for-a-system"},{"title":"Create new actions for a system.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/systems/{system_id}/actions","href":"/api-reference/platform-api/systems/create-new-actions-for-a-system"},{"title":"Get an action for a system.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/systems/{system_id}/actions/{action_id}","href":"/api-reference/platform-api/systems/get-an-action-for-a-system"},{"title":"Update an action for a system.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml put /o/{organisation_id}/systems/{system_id}/actions/{action_id}","href":"/api-reference/platform-api/systems/update-an-action-for-a-system"},{"title":"Delete an action for a system.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml delete /o/{organisation_id}/systems/{system_id}/actions/{action_id}","href":"/api-reference/platform-api/systems/delete-an-action-for-a-system"},{"title":"List triggers for a system.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/systems/{system_id}/triggers","href":"/api-reference/platform-api/systems/list-triggers-for-a-system"},{"title":"Create new triggers for a system.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/systems/{system_id}/triggers","href":"/api-reference/platform-api/systems/create-new-triggers-for-a-system"},{"title":"Adds or updates an auth scheme for the system.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml put /o/{organisation_id}/systems/{system_id}/auth-scheme-configs/{auth_scheme_config_id}","href":"/api-reference/platform-api/systems/adds-or-updates-an-auth-scheme-for-the-system"},{"title":"Deletes an auth scheme for the system.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml delete /o/{organisation_id}/systems/{system_id}/auth-scheme-configs/{auth_scheme_config_id}","href":"/api-reference/platform-api/systems/deletes-an-auth-scheme-for-the-system"},{"title":"List project environment connection templates","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/projects/{project_id}/connection-templates","href":"/api-reference/platform-api/systems/list-project-environment-connection-templates"},{"title":"Create a new connection template","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/projects/{project_id}/connection-templates","href":"/api-reference/platform-api/systems/create-a-new-connection-template"},{"title":"Remove a system from a project environment","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml put /o/{organisation_id}/projects/{project_id}/connection-templates/{template_id}","href":"/api-reference/platform-api/systems/remove-a-system-from-a-project-environment"},{"title":"Remove a connection template","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml delete /o/{organisation_id}/projects/{project_id}/connection-templates/{template_id}","href":"/api-reference/platform-api/systems/remove-a-connection-template"}]},{"group":"issues","pages":[{"title":"List Issues","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/issues","href":"/api-reference/platform-api/issues/list-issues"},{"title":"Create a new issue.","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/issues","href":"/api-reference/platform-api/issues/create-a-new-issue"},{"title":"Update an Issue","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml patch /o/{organisation_id}/issues/{issue_id}","href":"/api-reference/platform-api/issues/update-an-issue"}]},{"group":"notifications","pages":[{"title":"List notification channels for an organisation","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/notification_channels","href":"/api-reference/platform-api/notifications/list-notification-channels-for-an-organisation"},{"title":"Post o notification channels","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/notification_channels","href":"/api-reference/platform-api/notifications/post-o-notification_channels"},{"title":"Delete a notification channel","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml delete /o/{organisation_id}/notification_channels/{channel_id}","href":"/api-reference/platform-api/notifications/delete-a-notification-channel"},{"title":"List notifications for a project","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /projects/{project_id}/notifications","href":"/api-reference/platform-api/notifications/list-notifications-for-a-project"},{"title":"Create a new project notification","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /projects/{project_id}/notifications","href":"/api-reference/platform-api/notifications/create-a-new-project-notification"},{"title":"Delete a project notification","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml delete /projects/{project_id}/notifications/{notification_id}","href":"/api-reference/platform-api/notifications/delete-a-project-notification"}]},{"group":"metrics","pages":[{"title":"Get organisation metrics summary","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/metricssummary","href":"/api-reference/platform-api/metrics/get-organisation-metrics-summary"},{"title":"Get metrics summary for all projects","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/projects/metricssummary","href":"/api-reference/platform-api/metrics/get-metrics-summary-for-all-projects"}]},{"group":"kv store","pages":[{"title":"List all stores for an organization","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /o/{organisation_id}/store","href":"/api-reference/platform-api/kv-store/list-all-stores-for-an-organization"},{"title":"Create a new store","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /o/{organisation_id}/store","href":"/api-reference/platform-api/kv-store/create-a-new-store"},{"title":"Get a value by key","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml get /store/{store}/kv/{key}","href":"/api-reference/platform-api/kv-store/get-a-value-by-key"},{"title":"Set a value for a key","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml put /store/{store}/kv/{key}","href":"/api-reference/platform-api/kv-store/set-a-value-for-a-key"},{"title":"Delete a key","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml delete /store/{store}/kv/{key}","href":"/api-reference/platform-api/kv-store/delete-a-key"},{"title":"Set multiple key-value pairs","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml put /store/{store}/kv/batch","href":"/api-reference/platform-api/kv-store/set-multiple-key-value-pairs"},{"title":"Get multiple values by keys","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /store/{store}/kv/batch","href":"/api-reference/platform-api/kv-store/get-multiple-values-by-keys"},{"title":"Delete multiple keys","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml delete /store/{store}/kv/batch","href":"/api-reference/platform-api/kv-store/delete-multiple-keys"},{"title":"List keys and values with filtering","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /store/{store}/kv/list","href":"/api-reference/platform-api/kv-store/list-keys-and-values-with-filtering"},{"title":"Count entries matching selector","deprecated":null,"version":null,"openapi":"/openapi/platform-api.yaml post /store/{store}/kv/count","href":"/api-reference/platform-api/kv-store/count-entries-matching-selector"}]}]}]},{"anchor":"Organisations API","icon":"users","pages":[{"title":"Organisations API","href":"/latest/api-reference/organisations-api/getting-started"}]}]}]},{"version":"Legacy","pages":[{"title":"Legacy","href":"/legacy/welcome"}]},{"version":"v2","pages":[{"title":"v2","href":"/v2/introduction"}]}]},"title":"Create a new connection. - 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"]}