- Switchboard API
- Connect API
- connections
- GETList Connections
- GETGet Connection
- PUTUpdate Connection
- DELDelete Connection
- GETList Connection Environments
- GETGet Environment
- PUTUpdate Environment
- DELDelete Environment
- GETList Connection Versions
- POSTCreate Connection Version
- GETGet Connection Version
- PUTUpdate Connection Version
- DELDelete Connection Version
- POSTCreate HTTP Connection
- POSTImport HTTP Connection
- POSTCreate BigQuery Connection
- GET
- connection
- actions
- definitions
- credentials
- protocols
- auth-schemes
API Reference
Import HTTP Connection
ImportHTTPConnection imports a Connection from another format such as OpenAPI or Postman Collections. The Connection will be created in a draft state and will need to be published before it can be used in a live board.
Cookie authentication used by the Versori Platform.
The file to be imported.
ImportHTTPConnectionMetadata defines the metadata part of the multipart/form-data request when importing a Connection from another format.
The format of the file to be imported.
openapi
- OpenAPI 3.x specification, we may include support for 2.x in the future.
Authorizations
Cookie authentication used by the Versori Platform.
Path Parameters
Body
The file to be imported.
ImportHTTPConnectionMetadata defines the metadata part of the multipart/form-data request when importing a Connection from another format.
The format of the file to be imported.
openapi
- OpenAPI 3.x specification, we may include support for 2.x in the future.
openapi
Response
HTTPConnection represents a connection to an external system over HTTP.
ID is the unique identifier of the Connection.
OrganisationID is the unique identifier of the Organisation that owns the Connection.
Name is the user-provided name of the Connection
ProtocolType denotes the set of all valid connection types.
http
, bigquery
Environment Variables is a list of default variables initialised in every connection environment.
Name is the name of the environment variable.
Value is the value of the environment variable.
Environments is a list of all the environments this Connection has.
ID is the unique identifier of the Environment. Typically this is only used internally and most (if not all)
public-facing APIs will use the name
in combination with the Connection's id
instead.
Name is the name of the Environment. This must be unique within the owning Connection.
EnvironmentCredentials defines the Action and Trigger credentials for the owning Connection. If multiple credentials are defined for each type, they are applied to the request in the order they are defined. This is to enable Connections which require both a user session token and an API key to be provided in the request.
AuthSchemeConfig defines how a Connection implements the AuthScheme in order to fulfil its authentication requirements. This is purely the configuration and not the actual credential which is used to authenticate. The credential uses this configuration to determine how to authenticate.
CredentialBase is the base type for all credentials. It contains the common properties which are shared across all credential types.
ID is the unique identifier of the Credential.
CredentialType denotes the type of the credential which determines what the Credential's data
property will
contain.
- none: No credential is required to authenticate with the Connection.
- string: The credential is a string value, such as an API key or password.
- binary: The credential is a binary value, such as a private key, certificate or other file.
- basic-auth: The credential is a username and password to be used for basic authentication.
- oauth2-client: The credential is an OAuth2 client ID and secret to be used for OAuth2 authentication.
- oauth2-token: The credential is an OAuth2 access_token to be used for OAuth2 authentication.
none
, string
, binary
, basic-auth
, oauth2-client
, oauth2-token
Name is the name of the Credential.
CredentialUsages is a list of references to the Connections which are using this Credential. To aid performance, this field will only be defined for specific endpoints. An undefined property means that the usages have not been loaded, whereas an empty array indicates that the credential is not used by any connections.
CredentialUsageEnvironment contains the information about an Environment which is using a Credential. This also includes a summary of the Connection it belongs to.
ID is the unique identifier of the Environment. Typically this is only used internally and most (if not all)
public-facing APIs will use the name
in combination with the Connection's id
instead.
Name is the name of the Environment.
Slug is the kebab-case name of the Environment.
ConnectionSummaryBase exposes a summary of a Connection irrespective of protocol.
ID is the unique identifier of the Connection.
OrganisationID is the unique identifier of the Organisation that owns the Connection.
Name is the user-provided name of the Connection
ProtocolType denotes the set of all valid connection types.
http
, bigquery
CreatedAt is the time at which the ConnectionVersion was created.
UpdatedAt is the time at which the ConnectionVersion was last updated, including any changes to child resources.
CreatedAt is the time the Environment was created.
UpdatedAt is the time the Environment was last updated.
Errors is a list of errors which occurred when attempting to validate the credential. This field may be undefined, which implies that validation has not occurred and the consumer cannot assume whether this Credential is valid or not. An empty array indicates that the Credential is valid.
CredentialDataNone contains no data as no credential is required to authenticate with the Connection. It is used purely as a placeholder to implement a consistent interface across all CredentialType/AuthSchemeTypes.
CreatedAt is the time at which the Credential was created.
UpdatedAt is the time at which the Credential was last updated.
AuthSchemeConfig defines how a Connection implements the AuthScheme in order to fulfil its authentication requirements. This is purely the configuration and not the actual credential which is used to authenticate. The credential uses this configuration to determine how to authenticate.
CredentialBase is the base type for all credentials. It contains the common properties which are shared across all credential types.
ID is the unique identifier of the Credential.
CredentialType denotes the type of the credential which determines what the Credential's data
property will
contain.
- none: No credential is required to authenticate with the Connection.
- string: The credential is a string value, such as an API key or password.
- binary: The credential is a binary value, such as a private key, certificate or other file.
- basic-auth: The credential is a username and password to be used for basic authentication.
- oauth2-client: The credential is an OAuth2 client ID and secret to be used for OAuth2 authentication.
- oauth2-token: The credential is an OAuth2 access_token to be used for OAuth2 authentication.
none
, string
, binary
, basic-auth
, oauth2-client
, oauth2-token
Name is the name of the Credential.
CredentialUsages is a list of references to the Connections which are using this Credential. To aid performance, this field will only be defined for specific endpoints. An undefined property means that the usages have not been loaded, whereas an empty array indicates that the credential is not used by any connections.
CredentialUsageEnvironment contains the information about an Environment which is using a Credential. This also includes a summary of the Connection it belongs to.
ID is the unique identifier of the Environment. Typically this is only used internally and most (if not all)
public-facing APIs will use the name
in combination with the Connection's id
instead.
Name is the name of the Environment.
Slug is the kebab-case name of the Environment.
ConnectionSummaryBase exposes a summary of a Connection irrespective of protocol.
ID is the unique identifier of the Connection.
OrganisationID is the unique identifier of the Organisation that owns the Connection.
Name is the user-provided name of the Connection
ProtocolType denotes the set of all valid connection types.
http
, bigquery
CreatedAt is the time at which the ConnectionVersion was created.
UpdatedAt is the time at which the ConnectionVersion was last updated, including any changes to child resources.
CreatedAt is the time the Environment was created.
UpdatedAt is the time the Environment was last updated.
Errors is a list of errors which occurred when attempting to validate the credential. This field may be undefined, which implies that validation has not occurred and the consumer cannot assume whether this Credential is valid or not. An empty array indicates that the Credential is valid.
CredentialDataNone contains no data as no credential is required to authenticate with the Connection. It is used purely as a placeholder to implement a consistent interface across all CredentialType/AuthSchemeTypes.
CreatedAt is the time at which the Credential was created.
UpdatedAt is the time at which the Credential was last updated.
Name is the name of the environment variable.
Value is the value of the environment variable.
CreatedAt is the time the Environment was created.
UpdatedAt is the time the Environment was last updated.
Versions is a list of all the versions this Connection has.
ID is the unique identifier of the ConnectionVersion, this is typically only used internally and the version
name
is used externally in combination with the Connection id
.
Name denotes the actual version value for the Connection. This can be any value but a consistent naming strategy is recommended, such as SemVer, CalVer or an incrementing number. The names "default" and "latest" are reserved words and cannot be used.
Description allows specifying additional information about the ConnectionVersion, such as what changed since the last version etc.
IsLatest denotes whether this is the latest version of the Connection.
IsDefault denotes whether this is the default version of the Connection.
CreatedAt is the time at which the ConnectionVersion was created.
UpdatedAt is the time at which the ConnectionVersion was last updated, including any changes to child resources.
PublishedAt is the time at which the ConnectionVersion was published.
CreatedAt is the time at which the ConnectionVersion was created.
UpdatedAt is the time at which the ConnectionVersion was last updated, including any changes to child resources.
BaseURL is the base URL of all HTTP Actions within the Connection.
ID is the unique identifier of the Definition.
Name is a unique identifier for the Definition within the scope of the Connection. It is expected to both human and machine-readable, i.e. "Product" or "product_variant".
Accept indicates which content types, expressed as MIME types, that this definition can accept. This value is analogous to the Accept HTTP header, as defined in RFC 7231, section 5.3.2, except each type is defined in a separate array element, rather than as a comma-separated list.
This does not represent the content type of the schema body itself, but the data which conforms to this
definition. For example, an API may respond in JSON or YAML, but the schema may be a YAML-formatted JSON
Schema. In this case, the Definition's accept
field could be ["application/json", "text/yaml"]
and
schema.contentType
will be application/schema+yaml
.
Description is a human-friendly description of the Definition. This is typically used to describe the purpose of the Definition and how it should be used.
URL is the location of the actual Schema definition for this Definition entity.
The structure of this URL will be consistent across all media types for each environment, for example:
https://platform.versori.com/api/schemas/v1/o/{organisation_id}/{connection_id}/{connection_version}/{definition_slug}.{media_type_ext}
ReferencedBy is a list of DefinitionReference objects which defines what other entities are referencing the this Definition.
definition
, action
, trigger
ID is the unique identifier of the Definition/Action/Trigger.
Name is unique identifier for the Definition/Action/Trigger within the scope of the Connection. It is expected to both human and machine-readable, i.e. "ProductFeature" or "stock_item".
ID is the unique identifier of the Action.
Errors is a list of ErrorField objects which defines the errors which may be returned by the Action. An empty array denotes that the Action has been validated and no errors were found. If this field is undefined then this means validation has not occurred.
Field is the field which failed validation. This is typically a JSON Pointer, i.e. "/parameters/0/properties/id", however this is open for discussion (we should be consistent with the ErrorField type).
Message is a human-readable description of the error. This is typically a human-readable string, i.e. "The parameter 'id' is invalid".
Severity is the severity of the error. This is used to determine how the error should be displayed to the user, i.e. a warning may be displayed in a modal dialog, whereas an error may be displayed inline.
error
, warning
http
Name is a unique identifier for the Action within the scope of the Connection. It is expected to both human and machine-readable, i.e. "GetProduct" or "get_products", see the validation regex for more details.
Summary is a human-readable version of the id
field, i.e. "Get Product" or "Get Products". This is used
when displaying the Action to users, however if omitted the actionId
can be used to display to users
instead.
Description is a human-readable description of the Action. It can provide extra information to users about how the Action operates and anything the user may need to be aware of when using it.
HTTPMethod defines the HTTP method which will be used when invoking the Action. This is typically one of the standard HTTP methods such as GET, POST, PUT, PATCH or DELETE, but may be any valid HTTP method.
GET
, POST
, PUT
, PATCH
, DELETE
, HEAD
, OPTIONS
, CONNECT
, TRACE
ActionPath is appended to the Connection's base URL to build the full URL to send requests to. It may also contain placeholders to inject dynamic values from the following sources:
{{ param.<name> }}
- Injects the value of the parameter with the given name.{{ env.<name> }}
- Injects the value of the environment variable with the given name.
Name is the name of the parameter which will be sent to the HTTP endpoint.
cookie
, header
, path
, query
Required denotes whether this parameter is required.
Type is the type of the parameter. Currently only scalar types are supported, if you require complex types then get in touch with support to discuss options.
string
, number
, integer
, boolean
Default is the default value to use for the parameter if no value is provided by the user. If this is not defined then the parameter will not be sent to the HTTP endpoint if no value is explicitly provided by the user.
If this value is a string, it may be templated using a Go-formatted template
string, i.e. {{ .env.foo }}
where foo
is an environment variable defined in the
Connection's Environment.
ActionCompletion defines how an Action may be completed by Switchboard to aid the user in selecting a valid value. Schema TBD.
ActionHTTPRequestBody defines whether a request body is required for a particular HTTP Action, and if so which Definitions are considered valid. If this value is undefined then no request body will be sent.
Required denotes whether a request body is required for this Action.
An Action may support one Definition per media-type, i.e. application/json or application/xml etc. Attempts to link multiple Definitions with the same media-type will result in an error.
ID is a unique identifier for the request body within the scope of the Action.
Definition describes a single definition of a type which is used by the Connection. The schema language used is dependent on the media-type of the Definition, for example JSON Schema is used for media-types application/json.
ID is the unique identifier of the Definition.
Name is a unique identifier for the Definition within the scope of the Connection. It is expected to both human and machine-readable, i.e. "Product" or "product_variant".
Accept indicates which content types, expressed as MIME types, that this definition can accept. This value is analogous to the Accept HTTP header, as defined in RFC 7231, section 5.3.2, except each type is defined in a separate array element, rather than as a comma-separated list.
This does not represent the content type of the schema body itself, but the data which conforms to this
definition. For example, an API may respond in JSON or YAML, but the schema may be a YAML-formatted JSON
Schema. In this case, the Definition's accept
field could be ["application/json", "text/yaml"]
and
schema.contentType
will be application/schema+yaml
.
Description is a human-friendly description of the Definition. This is typically used to describe the purpose of the Definition and how it should be used.
URL is the location of the actual Schema definition for this Definition entity.
The structure of this URL will be consistent across all media types for each environment, for example:
https://platform.versori.com/api/schemas/v1/o/{organisation_id}/{connection_id}/{connection_version}/{definition_slug}.{media_type_ext}
ReferencedBy is a list of DefinitionReference objects which defines what other entities are referencing the this Definition.
definition
, action
, trigger
ID is the unique identifier of the Definition/Action/Trigger.
Name is unique identifier for the Definition/Action/Trigger within the scope of the Connection. It is expected to both human and machine-readable, i.e. "ProductFeature" or "stock_item".
Responses defines the expected responses from the HTTP endpoint. This is used to determine whether the Action was successful or not.
Status is the HTTP status code which is expected from the HTTP endpoint. If this is not defined then this response is treated as the default response, i.e. if no other response matches then this response will be used. An action may only have one default response and each response must have a unique status code.
An Action may support one Definition per media-type, i.e. application/json or application/xml etc. Attempts to link multiple Definitions with the same media-type will result in an error.
ID is a unique identifier for the request body within the scope of the Action.
Definition describes a single definition of a type which is used by the Connection. The schema language used is dependent on the media-type of the Definition, for example JSON Schema is used for media-types application/json.
ID is the unique identifier of the Definition.
Name is a unique identifier for the Definition within the scope of the Connection. It is expected to both human and machine-readable, i.e. "Product" or "product_variant".
Accept indicates which content types, expressed as MIME types, that this definition can accept. This value is analogous to the Accept HTTP header, as defined in RFC 7231, section 5.3.2, except each type is defined in a separate array element, rather than as a comma-separated list.
This does not represent the content type of the schema body itself, but the data which conforms to this
definition. For example, an API may respond in JSON or YAML, but the schema may be a YAML-formatted JSON
Schema. In this case, the Definition's accept
field could be ["application/json", "text/yaml"]
and
schema.contentType
will be application/schema+yaml
.
Description is a human-friendly description of the Definition. This is typically used to describe the purpose of the Definition and how it should be used.
URL is the location of the actual Schema definition for this Definition entity.
The structure of this URL will be consistent across all media types for each environment, for example:
https://platform.versori.com/api/schemas/v1/o/{organisation_id}/{connection_id}/{connection_version}/{definition_slug}.{media_type_ext}
ReferencedBy is a list of DefinitionReference objects which defines what other entities are referencing the this Definition.
definition
, action
, trigger
ID is the unique identifier of the Definition/Action/Trigger.
Name is unique identifier for the Definition/Action/Trigger within the scope of the Connection. It is expected to both human and machine-readable, i.e. "ProductFeature" or "stock_item".
Text contains the text of the message.
info
, warning
, error
Details contains additional information about the message. This is intended to be used to provide more information about the message, such as a list of validation errors.