Relixy Resources Reference
Overview
This page is the complete schema reference for all Relixy resource types. Each section describes a type, its fields, and their accepted values. Links between types use anchor IDs for navigation.
For configuration examples and conceptual guides, see the Relixy documentation.
Types
RelixyResource
One of the following values:
| Value | Description |
|---|---|
| RelixyOpenAPIResource | Definition of an OpenAPI resource |
| RelyAuthConfig | Definition of a RelyAuth resource |
RelixyOpenAPIResource
RelixyOpenAPIResource represents an OpenAPI resource.
| Key | Value | Required | Description |
|---|---|---|---|
version | v1 | true | Version of the resource |
kind | OpenAPI | true | Kind of the resource which is always OpenAPI. |
metadata | RelixyResourceMetadata | true | Metadata of the resource |
definition | OpenAPIResourceDefinition | true | Definition of the OpenAPI documentation |
OpenAPIResourceDefinition
Definition of an OpenAPI resource
One of the following values:
| Value | Description |
|---|---|
| OpenAPIResourceRef | Definition of an OpenAPI resource |
| OpenAPIResourceSpec | Definition of an OpenAPI resource |
OpenAPIResourceSpec
Definition of an OpenAPI resource
| Key | Value | Required | Description |
|---|---|---|---|
settings | OpenAPIResourceSettings | false | Settings of the OpenAPI resource. |
patches | [OverlayActionObject] | false | A set of patches, or overlay actions to be applied to one or many OpenAPI descriptions. See https://spec.openapis.org/overlay/v1.1.0.html#action-object |
spec | Document | true | Specification of the OpenAPI v3 documentation. |
OpenAPIResourceRef
Definition of an OpenAPI resource
| Key | Value | Required | Description |
|---|---|---|---|
settings | OpenAPIResourceSettings | false | Settings of the OpenAPI resource. |
patches | [OverlayActionObject] | false | A set of patches, or overlay actions to be applied to one or many OpenAPI descriptions. See https://spec.openapis.org/overlay/v1.1.0.html#action-object |
ref | string | true | Path of URL of the referenced OpenAPI document. Requires at least one of ref or spec. If both fields are configured, the spec will be merged into the reference. |
OverlayActionObject
Represents one or more changes to be applied to the target document at the location defined by the target JSONPath expression.
One of the following values:
| Value | Description |
|---|---|
| OverlayActionUpdateCopyObject | |
| OverlayActionRemoveObject |
OverlayActionRemoveObject
| Key | Value | Required | Description |
|---|---|---|---|
target | string | false | A RFC9535 JSONPath query expression selecting nodes in the target document. |
description | string | false | A description of the action. |
remove | true | true | A boolean value that indicates that each of the target nodes MUST be removed from the the map or array it is contained in. The default value is false. |
OverlayActionUpdateCopyObject
| Key | Value | Required | Description |
|---|---|---|---|
target | string | false | A RFC9535 JSONPath query expression selecting nodes in the target document. |
description | string | false | A description of the action. |
update | Document | false | If the target selects object nodes, the value of this field MUST be an object with the properties and values to merge with each selected object. If the target selects array nodes, the value of this field MUST be an array to concatenate with each selected array, or an object or primitive value to append to each selected array. If the target selects primitive nodes, the value of this field MUST be a primitive value to replace each selected node. This field has no impact if the remove field of this action object is true or if the copy field contains a value. |
copy | string | false | A JSONPath expression selecting a single node to copy into the target nodes. If the target selects object nodes, the value of this field MUST be an object with the properties and values to merge with each selected object. If the target selects array nodes, the value of this field MUST be an array to concatenate with each selected array, or an object or primitive value to append to each selected array. If the target selects primitive nodes, the value of this field MUST be a primitive value to replace each selected node. This field has no impact if the remove field of this action object is true or if the update field contains a value. |
Document
The description of OpenAPI v3.2.x Documents without Schema Object validation
| Key | Value | Required | Description |
|---|---|---|---|
openapi | string | false | Version is the version of OpenAPI being used |
$ref | string | false | OpenAPI document reference that this document depends on. |
$self | string | false | Self-reference URI |
info | info | false | Provides metadata about the API. The metadata MAY be used by tooling as required. |
jsonSchemaDialect | string | false | The default value for the $schema keyword within Schema Objects contained within this OAS document. This MUST be in the form of a URI. |
servers | [server] | false | An array of Server Objects, which provide connectivity information to a target server. If the servers field is not provided, or is an empty array, the default value would be an array consisting of a single Server Object with a url value of /. |
paths | paths | false | The available paths and operations for the API. |
webhooks | map[string]path-item | false | The incoming webhooks that MAY be received as part of this API and that the API consumer MAY choose to implement. Closely related to the callbacks feature, this section describes requests initiated other than by an API call, for example by an out of band registration. The key name is a unique string to refer to each webhook, while the (optionally referenced) Path Item Object describes a request that may be initiated by the API provider and the expected responses. |
components | components | false | An element to hold various Objects for the OpenAPI Description. |
security | [map[string][string]] | false | A declaration of which security mechanisms can be used across the API. The list of values includes alternative Security Requirement Objects that can be used. Only one of the Security Requirement Objects need to be satisfied to authorize a request. Individual operations can override this definition. The list can be incomplete, up to being empty or absent. To make security explicitly optional, an empty security requirement () can be included in the array. |
tags | [tag] | false | A list of tags used by the OpenAPI Description with additional metadata. The order of the tags can be used to reflect on their order by the parsing tools. Not all tags that are used by the Operation Object must be declared. The tags that are not declared MAY be organized randomly or based on the tools’ logic. Each tag name in the list MUST be unique. |
externalDocs | external-documentation | false | Additional external documentation. |
tag
Adds metadata to a single tag that is used by the Operation Object. It is not mandatory to have a Tag Object per tag defined in the Operation Object instances.
| Key | Value | Required | Description |
|---|---|---|---|
name | string | true | The name of the tag. Use this value in the tags array of an Operation. |
summary | string | false | A short summary of the tag, used for display purposes. |
description | string | false | A description for the tag. CommonMark syntax MAY be used for rich text representation. |
externalDocs | external-documentation | false | Additional external documentation for this tag. |
parent | string | false | The name of a tag that this tag is nested under. The named tag MUST exist in the API description, and circular references between parent and child tags MUST NOT be used. |
kind | string | false | A machine-readable string to categorize what sort of tag it is. Any string value can be used; common uses are nav for Navigation, badge for visible badges, audience for APIs used by different groups. A registry of the most commonly used values is available. |
components
An element to hold various Objects for the OpenAPI Description.
| Key | Value | Required | Description |
|---|---|---|---|
schemas | map[string]schema | false | An object to hold reusable Schema Objects. |
responses | map[string] | false | An object to hold reusable Response Objects. |
parameters | map[string] | false | An object to hold reusable Parameter Objects. |
examples | map[string] | false | An object to hold reusable Example Objects. |
requestBodies | map[string] | false | An object to hold reusable Request Body Objects. |
headers | map[string] | false | An object to hold reusable Header Objects. |
securitySchemes | map[string] | false | An object to hold reusable Security Scheme Objects. |
links | map[string] | false | An object to hold reusable Link Objects. |
callbacks | map[string] | false | An object to hold reusable Callback Objects. |
pathItems | map[string]path-item | false | An object to hold reusable Path Item Objects. |
mediaTypes | map[string] | false | An object to hold reusable Media Type Objects. |
| `^(?:schemas | responses | parameters | examples |
schema
Represents a JSON Schema that support Swagger, OpenAPI 3 and OpenAPI 3.1
Until 3.1 OpenAPI had a strange relationship with JSON Schema. It's been a super-set/sub-set mix, which has been confusing. So, instead of building a bunch of different models, we have compressed all variations into a single model that makes it easy to support multiple spec types.
- v2 schema: https://swagger.io/specification/v2/#schemaObject
- v3 schema: https://swagger.io/specification/#schema-object
- JSON Schema 2020-12: https://www.learnjsonschema.com/2020-12/
One of the following values:
| Value | Description |
|---|---|
| boolean | |
| reference | |
| Key | Value | Required | Description |
|---|---|---|---|
$schema | string | false | 3.1 only, used to define a dialect for this schema, label is '$schema'. |
exclusiveMaximum | number | false | The value of 'exclusiveMaximum' MUST be a number, representing an exclusive upper limit for a numeric instance. If the instance is a number, then the instance is valid only if it has a value strictly less than (not equal to) 'exclusiveMaximum'. |
exclusiveMinimum | number | false | The value of 'exclusiveMinimum' MUST be a number, representing an exclusive lower limit for a numeric instance. If the instance is a number, then the instance is valid only if it has a value strictly greater than (not equal to) 'exclusiveMinimum'. |
type | [array / boolean / integer / number / object / string] | false | Types of the schema. Values MUST be one of the primitive types 'null', 'boolean', 'object', 'array', 'number', or 'string', or 'integer' which matches any number with a zero fractional part. |
allOf | [] | false | The allOf keyword restricts instances to validate against every given subschema. This keyword can be thought of as a logical conjunction (AND) operation, as instances are valid if they satisfy every constraint of every subschema (the intersection of the constraints). |
oneOf | [] | false | The oneOf keyword restricts instances to validate against exactly one (and only one) of the given subschemas and fail on the rest. This keyword represents a logical exclusive disjunction (XOR) operation. In practice, the vast majority of schemas don’t require exclusive disjunction semantics but a simple disjunction. If you are not sure, the anyOf keyword is probably a better fit. |
anyOf | [] | false | The anyOf keyword restricts instances to validate against at least one (but potentially multiple) of the given subschemas. This keyword represents a logical disjunction (OR) operation, as instances are valid if they satisfy the constraints of one or more subschemas (the union of the constraints). |
discriminator | discriminator | false | When request bodies or response payloads may be one of a number of different schemas, these should use the JSON Schema anyOf or oneOf keywords to describe the possible schemas (see Composition and Inheritance). |
prefixItems | [] | false | The prefixItems keyword restricts a number of items from the start of an array instance to validate against the given sequence of subschemas, where the item at a given index in the array instance is evaluated against the subschema at the given index in the prefixItems array, if any. Information about the number of subschemas that were evaluated against the array instance is reported using annotations. Array items outside the range described by the prefixItems keyword is evaluated against the items keyword, if present. |
contains | false | 3.1 Specific properties | |
minContains | integer | false | An instance array is valid against minContains in two ways, depending on the form of the annotation result of an adjacent 'contains' keyword. The first way is if the annotation result is an array and the length of that array is greater than or equal to the 'minContains' value. The second way is if the annotation result is a boolean "true" and the instance array length is greater than or equal to the 'minContains' value. If 'contains' is not present within the same schema object, then 'minContains' has no effect. The value of 'minContains' MUST be a non-negative integer. A value of 0 is allowed, but is only useful for setting a range of occurrences from 0 to the value of 'maxContains'. A value of 0 with no 'maxContains' causes 'contains' to always pass validation. Omitting this keyword has the same behavior as a value of 1. |
maxContains | integer | false | An instance array is valid against 'maxContains' in two ways, depending on the form of the annotation result of an adjacent 'contains'. The first way is if the annotation result is an array and the length of that array is less than or equal to the 'maxContains' value. The second way is if the annotation result is a boolean 'true' and the instance array length is less than or equal to the 'maxContains' value. If 'contains' is not present within the same schema object, then 'maxContains' has no effect. The value of 'maxContains' MUST be a non-negative integer. |
if | false | The if keyword introduces a subschema whose evaluation result restricts instances to validate against the then or else sibling subschemas (if present). Note that the evaluation outcome of this subschema controls which other subschema to apply (if any) but has no direct effect on the overall validation result. | |
else | false | The else keyword restricts instances to validate against the given subschema if the if sibling keyword failed to validate against the instance. | |
then | false | The then keyword restricts instances to validate against the given subschema if the if sibling keyword successfully validated against the instance. | |
dependentSchemas | map[string] | false | The dependentSchemas keyword restricts object instances to validate against one or more of the given subschemas if the corresponding properties are defined. Note that the given subschemas are evaluated against the object that defines the property dependency. |
dependentRequired | map[string][string] | false | Specifies properties that are required if a specific other property is present. Their requirement is dependent on the presence of the other property. The value of this field MUST be an object. Properties in this object, if any, MUST be arrays. Elements in each array, if any, MUST be strings, and MUST be unique. Validation succeeds if, for each name that appears in both the instance and as a name within this keyword's value, every item in the corresponding array is also the name of a property in the instance. Omitting this field has the same behavior as an empty object. |
patternProperties | map[string] | false | The patternProperties keyword restricts properties of an object instance that match certain regular expressions to match their corresponding subschemas definitions. Information about the properties that this keyword was evaluated for is reported using annotations. |
propertyNames | false | The propertyNames keyword restricts object instances to only define properties whose names match the given schema. This keyword is evaluated against every property of the object instance, independently of keywords that indirectly introduce property names such as properties and patternProperties. Annotations coming from inside this keyword are dropped. | |
unevaluatedItems | false | The unevaluatedItems keyword is a generalisation of the items keyword that considers related keywords even when they are not direct siblings of this keyword. More specifically, this keyword is affected by occurrences of prefixItems, items, contains, and unevaluatedItems itself, as long as the evaluate path that led to unevaluatedItems is a prefix of the evaluate path of the others. | |
items | false | Schema of elements if the type is array. | |
$anchor | string | false | The $anchor keyword associates a subschema with the given URI fragment identifier, which can be referenced using the $ref keyword. The fragment identifier is resolved against the URI of the schema resource. Therefore, using this keyword to declare the same anchor more than once within the same schema resource results in an invalid schema. |
not | false | The not keyword restricts instances to fail validation against the given subschema. This keyword represents a logical negation (NOT) operation. In other words, the instance successfully validates against the schema only if it does not match the given subschema. | |
properties | map[string] | false | Definition of object properties if the type is object. |
title | string | false | Title of the schema. |
multipleOf | number | false | A numeric instance is valid only if division by this field's value results in an integer. The value of 'multipleOf' MUST be a number, strictly greater than 0. |
maximum | number | false | The value of 'maximum' MUST be a number, representing an inclusive upper limit for a numeric instance. If the instance is a number, then this field validates only if the instance is less than or exactly equal to 'maximum'. |
minimum | number | false | The value of 'minimum' MUST be a number, representing an inclusive lower limit for a numeric instance. If the instance is a number, then this field validates only if the instance is greater than or exactly equal to 'minimum'. |
maxLength | integer | false | A string instance is valid against this field if its length is less than, or equal to, the value of this field. The length of a string instance is defined as the number of its characters as defined by RFC 8259. The value of this field MUST be a non-negative integer. |
minLength | integer | false | A string instance is valid against this field if its length is greater than, or equal to, the value of this field. The length of a string instance is defined as the number of its characters as defined by RFC 8259. The value of this field MUST be a non-negative integer. Omitting this field has the same behavior as a value of 0. |
pattern | string | false | A string instance is considered valid if the regular expression matches the instance successfully. The value of this field MUST be a string. This string SHOULD be a valid regular expression, according to the ECMA-262 regular expression dialect. Recall: regular expressions are not implicitly anchored. |
format | string | false | As defined by the JSON Schema Validation specification, data types can have an optional modifier keyword: format. As described in that specification, format is treated as a non-validating annotation by default; the ability to validate format varies across implementations. |
maxItems | integer | false | An array instance is valid against 'maxItems' if its size is less than, or equal to, the value of this field. The value of this keyword MUST be a non-negative integer. |
minItems | integer | false | An array instance is valid against 'minItems' if its size is greater than, or equal to, the value of this field. The value of this field MUST be a non-negative integer. Omitting this field has the same behavior as a value of 0. |
uniqueItems | boolean | false | If this field has boolean value false, the instance validates successfully. If it has boolean value true, the instance validates successfully if all of its elements are unique. Omitting this field has the same behavior as a value of false. |
maxProperties | integer | false | An object instance is valid against 'maxProperties' if its number of properties is less than, or equal to, the value of this field. The value of this keyword MUST be a non-negative integer. |
minProperties | integer | false | An object instance is valid against 'minProperties' if its number of properties is greater than, or equal to, the value of this field. The value of this field MUST be a non-negative integer. Omitting this field has the same behavior as a value of 0. |
required | [string] | false | The value of this field MUST be an array. Elements of this array, if any, MUST be strings, and MUST be unique. An object instance is valid against this field if every item in the array is the name of a property in the instance. Omitting this field has the same behavior as an empty array. |
enum | [] | false | The value of this field MUST be an array. This array SHOULD have at least one element. Elements in the array SHOULD be unique. An instance validates successfully against this keyword if its value is equal to one of the elements in this keyword's array value. Elements in the array might be of any type, including null. |
additionalProperties | false | Define a dictionary (also known as a map, hashmap or associative array) is a set of key/value pairs. | |
description | string | false | Description of the schema. |
default | false | The default keyword declares a default instance value for a schema or any of its subschemas, typically to support specialised tooling like documentation and form generators. This keyword does not affect validation, but the evaluator will collect its value as an annotation. | |
const | false | Use of this field is functionally equivalent to an 'enum' with a single value. An instance validates successfully against this keyword if its value is equal to the value of the field. The value of this field MAY be of any type, including null. | |
nullable | boolean | false | This keyword only takes effect if type is explicitly defined within the same Schema Object. A true value indicates that both null values and values of the type specified by type are allowed. |
readOnly | boolean | false | Relevant only for Schema Object properties definitions. Declares the property as "read only". This means that it MAY be sent as part of a response but SHOULD NOT be sent as part of the request. If the property is marked as readOnly being true and is in the required list, the required will take effect on the response only. A property MUST NOT be marked as both readOnly and writeOnly being true. Default value is false. |
writeOnly | boolean | false | Relevant only for Schema Object properties definitions. Declares the property as "write only". Therefore, it MAY be sent as part of a request but SHOULD NOT be sent as part of the response. If the property is marked as writeOnly being true and is in the required list, the required will take effect on the request only. A property MUST NOT be marked as both readOnly and writeOnly being true. Default value is false. |
deprecated | boolean | false | Specifies that schema is deprecated and SHOULD be transitioned out of usage. Default value is false. |
externalDocs | external-documentation | false | |
xml | xml | false | |
^x- | false |
xml
A metadata object that allows for more fine-tuned XML model definitions. When using a Schema Object with XML, if no XML Object is present, the behavior is determined by the XML Object’s default field values.
| Key | Value | Required | Description |
|---|---|---|---|
nodeType | element / attribute / text / cdata / none | false | One of element, attribute, text, cdata, or none, as explained under XML Node Types. The default value is none if $ref, $dynamicRef, or type: 'array' is present in the Schema Object containing the XML Object, and element otherwise. |
name | string | false | Sets the name of the element/attribute corresponding to the schema, replacing the name that was inferred as described under XML Node Names. This field SHALL be ignored if the nodeType is text, cdata, or none. |
namespace | string | false | The IRI (RFC3987) of the namespace definition. Value MUST be in the form of a non-relative IRI. |
prefix | string | false | The prefix to be used for the name. |
attribute | boolean | false | Declares whether the property definition translates to an attribute instead of an element. Default value is false. If nodeType is present, this field MUST NOT be present. Deprecated: Use nodeType: 'attribute' instead of attribute: true |
wrapped | boolean | false | MAY be used only for an array definition. Signifies whether the array is wrapped (for example, |
^x- | false |
discriminator
Discriminator is only used by OpenAPI 3+ documents, it represents a polymorphic discriminator used for schemas When request bodies or response payloads may be one of a number of different schemas, a discriminator object can be used to aid in serialization, deserialization, and validation. The discriminator is a specific object in a schema which is used to inform the consumer of the document of an alternative schema based on the value associated with it. When using the discriminator, inline schemas will not be considered.
| Key | Value | Required | Description |
|---|---|---|---|
propertyName | string | true | The name of the discriminating property in the payload that will hold the discriminating value. The discriminating property MAY be defined as required or optional, but when defined as optional the Discriminator Object MUST include a defaultMapping field that specifies which schema is expected to validate the structure of the model when the discriminating property is not present. |
mapping | map[string]string | false | An object to hold mappings between payload values and schema names or URI reference |
defaultMapping | string | false | The schema name or URI reference to a schema that is expected to validate the structure of the model when the discriminating property is not present in the payload or contains a value for which there is no explicit or implicit mapping. OpenAPI 3.2+ defaultMapping for fallback schema |
reference
| Key | Value | Required | Description |
|---|---|---|---|
$ref | string | false | A simple object to allow referencing other components in the OpenAPI Description, internally and externally. |
summary | string | false | A short summary which by default SHOULD override that of the referenced component. If the referenced object-type does not allow a summary field, then this field has no effect. |
description | string | false | A description which by default SHOULD override that of the referenced component. CommonMark syntax MAY be used for rich text representation. If the referenced object-type does not allow a description field, then this field has no effect. |
paths
Holds relative paths to the individual endpoints and their operations. The path is appended to the URL from the Server Object in order to construct the full URL. The Paths Object MAY be empty, due to Access Control List (ACL) constraints.
| Key | Value | Required | Description |
|---|---|---|---|
^/ | path-item | false |
path-item
Describes the operations available on a single path. A Path Item MAY be empty, due to ACL constraints. The path itself is still exposed to the documentation viewer but they will not know which operations and parameters are available.
| Key | Value | Required | Description |
|---|---|---|---|
$ref | string | false | Allows for a referenced definition of this path item. The value MUST be in the form of a URI, and the referenced structure MUST be in the form of a Path Item Object. In case a Path Item Object field appears both in the defined object and the referenced object, the behavior is undefined. See the rules for resolving Relative References. |
summary | string | false | An optional string summary, intended to apply to all operations in this path. |
description | string | false | An optional string description, intended to apply to all operations in this path. CommonMark syntax MAY be used for rich text representation. |
servers | [server] | false | An alternative servers array to service all operations in this path. If a servers array is specified at the OpenAPI Object level, it will be overridden by this value. |
parameters | parameters | false | A list of parameters that are applicable for all the operations described under this path. These parameters can be overridden at the operation level, but cannot be removed there. The list MUST NOT include duplicated parameters. A unique parameter is defined by a combination of a name and location. The list can use the Reference Object to link to parameters that are defined in the OpenAPI Object’s components.parameters. |
additionalOperations | map[string]operation | false | A map of additional operations on this path. The map key is the HTTP method with the same capitalization that is to be sent in the request. This map MUST NOT contain any entry for the methods that can be defined by other fixed fields with Operation Object values (e.g. no POST entry, as the post field is used for this method). |
get | operation | false | A definition of a GET operation on this path. |
put | operation | false | A definition of a PUT operation on this path. |
post | operation | false | A definition of a POST operation on this path. |
delete | operation | false | A definition of a DELETE operation on this path. |
options | operation | false | A definition of a OPTIONS operation on this path. |
head | operation | false | A definition of a HEAD operation on this path. |
patch | operation | false | A definition of a PATCH operation on this path. |
trace | operation | false | A definition of a TRACE operation on this path. |
query | operation | false | A definition of a QUERY operation on this path. |
operation
Describes a single API operation on a path.
| Key | Value | Required | Description |
|---|---|---|---|
tags | [string] | false | A list of tags for API documentation control. Tags can be used for logical grouping of operations by resources or any other qualifier. |
summary | string | false | A short summary of what the operation does. |
description | string | false | A verbose explanation of the operation behavior. CommonMark syntax MAY be used for rich text representation. |
externalDocs | external-documentation | false | Additional external documentation for this operation. |
operationId | string | false | Unique string used to identify the operation. The id MUST be unique among all operations described in the API. The operationId value is case-sensitive. Tools and libraries MAY use the operationId to uniquely identify an operation, therefore, it is RECOMMENDED to follow common programming naming conventions. |
parameters | parameters | false | A list of parameters that are applicable for this operation. If a parameter is already defined at the Path Item, the new definition will override it but can never remove it. The list MUST NOT include duplicated parameters. A unique parameter is defined by a combination of a name and location. The list can use the Reference Object to link to parameters that are defined in the OpenAPI Object’s components.parameters. |
requestBody | false | The request body applicable for this operation. The requestBody is fully supported in HTTP methods where the HTTP specification RFC9110 Section 9.3 has explicitly defined semantics for request bodies. In other cases where the HTTP spec discourages message content (such as GET and DELETE), requestBody is permitted but does not have well-defined semantics and SHOULD be avoided if possible. | |
responses | responses | false | The list of possible responses as they are returned from executing this operation. |
callbacks | map[string] | false | A map of possible out-of band callbacks related to the parent operation. The key is a unique identifier for the Callback Object. Each value in the map is a Callback Object that describes a request that may be initiated by the API provider and the expected responses. |
deprecated | boolean | false | Declares this operation to be deprecated. Consumers SHOULD refrain from usage of the declared operation. Default value is false. |
security | [map[string][string]] | false | A declaration of which security mechanisms can be used for this operation. The list of values includes alternative Security Requirement Objects that can be used. Only one of the Security Requirement Objects need to be satisfied to authorize a request. To make security optional, an empty security requirement () can be included in the array. This definition overrides any declared top-level security. To remove a top-level security declaration, an empty array can be used. |
servers | [server] | false | An alternative servers array to service this operation. If a servers array is specified at the Path Item Object or OpenAPI Object level, it will be overridden by this value. |
x-rely-proxy-action | ProxyActionConfig | false | Defines action information to proxy request to the remote server. |
ProxyActionConfig
Defines action information to proxy request to the remote server.
One of the following values:
| Value | Description |
|---|---|
| ProxyRESTfulActionConfig | Proxy configuration to the remote RESTful service |
| ProxyGraphQLActionConfig | Configurations for proxying request to the remote GraphQL server |
ProxyGraphQLActionConfig
ProxyGraphQLActionConfig represents a proxy action config for GraphQL.
| Key | Value | Required | Description |
|---|---|---|---|
type | graphql | true | Type of the proxy action which is always graphql. |
request | ProxyGraphQLRequestConfig | false | Configurations for the GraphQL proxy request. |
response | ProxyCustomGraphQLResponseConfig | false | Configurations for evaluating graphql responses. |
ProxyCustomGraphQLResponseConfig
ProxyCustomGraphQLResponseConfig represents configurations for the proxy response.
| Key | Value | Required | Description |
|---|---|---|---|
httpErrorCode | integer | false | The default HTTP error code will be used if the response body has errors. If not set, forward the HTTP status from the upstream response which is usually 200 OK. |
httpErrors | false | Evaluation rules to map GraphQL errors to desired HTTP status codes. | |
body | TemplateTransformerConfig | false | Configurations for transforming response data. |
Evaluation rules to map GraphQL errors to desired HTTP status codes.
| Key | Value | Required | Description |
|---|---|---|---|
400 | [string] | false | |
401 | [string] | false | |
403 | [string] | false | |
404 | [string] | false | |
405 | [string] | false | |
422 | [string] | false | |
500 | [string] | false | |
501 | [string] | false |
ProxyGraphQLRequestConfig
ProxyGraphQLRequestConfig represents configurations for the proxy request.
| Key | Value | Required | Description |
|---|---|---|---|
url | string | false | Overrides the request URL. Use the original request path if empty. |
method | GET / POST | false | Indicate the request method. The default method is POST. |
headers | map[string]FieldMappingEntryStringConfig | false | The configuration to transform request headers. |
query | string | true | GraphQL query to be sent. |
variables | map[string]FieldMappingEntryConfig | false | Definition of GraphQL variables. |
extensions | map[string]FieldMappingEntryConfig | false | Definition of GraphQL extensions. |
FieldMappingEntryStringConfig
| Key | Value | Required | Description |
|---|---|---|---|
path | string | false | |
default | EnvString | false |
ProxyRESTfulActionConfig
ProxyRESTfulActionConfig represents a proxy action config for REST operation.
| Key | Value | Required | Description |
|---|---|---|---|
type | rest | true | Type of the proxy action which is always rest. |
request | ProxyRESTfulRequestConfig | false | Configurations for the REST proxy request. |
response | ProxyCustomRESTfulResponseConfig | false | Configurations for evaluating REST responses. |
ProxyCustomRESTfulResponseConfig
ProxyCustomRESTfulResponseConfig represents configurations for the proxy response.
| Key | Value | Required | Description |
|---|---|---|---|
contentType | string | false | Content type of the response to be transformed to. |
body | TemplateTransformerConfig | false | Configurations for transforming response data. |
ProxyRESTfulRequestConfig
ProxyRESTfulRequestConfig represents configurations for the proxy request.
| Key | Value | Required | Description |
|---|---|---|---|
url | string | false | Overrides the request URL. Use the original request path if empty. |
method | GET / POST / PATCH / PUT / DELETE | false | Overrides the request method. Use the original request method if empty. |
parameters | [ProxyRESTfulParameterConfig] | false | |
contentType | string | false | Content type of the body to be transformed to. |
body | TemplateTransformerConfig | false | The configuration to transform request body. |
forwardAllQueryParams | boolean | false | If this is true, all query parameters will be forwarded. The default value is true if there is no query parameter is configured. |
TemplateTransformerConfig
The configuration to transform request body.
One of the following values:
| Value | Description |
|---|---|
| TemplateTransformerJMESPathConfig | Transform responses using the standard JMESPath template |
| TemplateTransformerGoTemplateConfig | Transform responses using the standard Go template |
TemplateTransformerGoTemplateConfig
Transform responses using the standard Go template
| Key | Value | Required | Description |
|---|---|---|---|
type | gotmpl | true | Template type to be used for transforming response |
contentType | string | false | The expected content type to be transformed |
template | string | true | Template content to be transformed |
TemplateTransformerJMESPathConfig
Transform responses using the standard JMESPath template
| Key | Value | Required | Description |
|---|---|---|---|
type | jmespath | true | Template type to be used for transforming response |
template | FieldMappingConfig | true | Template content to be transformed |
FieldMappingConfig
Represents a generic field mapping config
One of the following values:
| Value | Description |
|---|---|
| FieldMappingObjectConfig | Mapping configurations for object fields |
| FieldMappingEntryConfig | The mapping configuration for an entry field |
FieldMappingEntryConfig
FieldMappingEntryConfig is the entry config to lookup field values with the specified JMES path.
| Key | Value | Required | Description |
|---|---|---|---|
path | string | false | Path is a JMESPath expression to find a value in the input data. |
default | EnvAny | false | Default value to be used when no value is found when looking up the value using the path. |
type | field | true | Type of the field mapping config |
FieldMappingObjectConfig
FieldMappingObjectConfig represents configurations for the object field mapping.
| Key | Value | Required | Description |
|---|---|---|---|
properties | map[string] | true | Properties of the field mapping object. |
type | object | true | Type of the field mapping config |
ProxyRESTfulParameterConfig
ProxyRESTfulParameterConfig represents an object of transformation configurations for a parameter.
| Key | Value | Required | Description |
|---|---|---|---|
path | string | false | |
default | EnvAny | false | |
name | string | true | The name of the parameter. |
explode | boolean | false | When this is true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map. |
allowReserved | boolean | false | When this is true, parameter values are serialized using reserved expansion. |
in | header / query / cookie / path | true | The location of the parameter. |
style | integer | false | Describes how the parameter value will be serialized depending on the type of the parameter value. |
EnvAny
| Key | Value | Required | Description |
|---|---|---|---|
value | false | Default literal value if the env is empty | |
env | string | false | Environment variable to be evaluated |
responses
The list of possible responses as they are returned from executing this operation.
| Key | Value | Required | Description |
|---|---|---|---|
default | false | ||
| `^[1-5](?:[0-9]2 | XX)$` | false |
external-documentation
Allows referencing an external resource for extended documentation.
| Key | Value | Required | Description |
|---|---|---|---|
description | string | false | |
url | string | true |
parameters
A list of parameters that are applicable for all the operations described under this path. These parameters can be overridden at the operation level, but cannot be removed there. The list MUST NOT include duplicated parameters. A unique parameter is defined by a combination of a name and location. The list can use the Reference Object to link to parameters that are defined in the OpenAPI Object’s components.parameters.
Value: []
server
An object representing the information of a Server.
| Key | Value | Required | Description |
|---|---|---|---|
url | string | true | A URL to the target host. This URL supports Server Variables and MAY be relative, to indicate that the host location is relative to the location where the document containing the Server Object is being served. Query and fragment MUST NOT be part of this URL. Variable substitutions will be made when a variable is named in braces. |
x-rely-server-weight | integer | false | Defines the weight of the server endpoint for load balancing. Only take effect if there are many servers. |
x-rely-server-headers | map[string]EnvString | false | Defines custom headers to be injected to the remote server. Merged with the global headers. |
x-rely-server-tls | TLSConfig | false | TLS configuration of the server. Used for mTLS authentication. |
description | string | false | An optional string describing the host designated by the URL. CommonMark syntax MAY be used for rich text representation. |
name | string | false | An optional unique string to refer to the host designated by the URL. |
variables | map[string]server-variable | false | A map between a variable name and its value. The value is used for substitution in the server’s URL template. |
server-variable
An object representing a Server Variable for server URL template substitution. The server URL templating is defined by the following ABNF syntax.
| Key | Value | Required | Description |
|---|---|---|---|
enum | [string] | false | An enumeration of string values to be used if the substitution options are from a limited set. The array MUST NOT be empty. |
default | string | true | The default value to use for substitution, which SHALL be sent if an alternate value is not supplied. If the enum is defined, the value MUST exist in the enum’s values. Note that this behavior is different from the Schema Object’s default keyword, which documents the receiver’s behavior rather than inserting the value into the data. |
description | string | false | An optional description for the server variable. [CommonMark] syntax MAY be used for rich text representation. |
info
The object provides metadata about the API. The metadata MAY be used by the clients if needed, and MAY be presented in editing or documentation generation tools for convenience.
| Key | Value | Required | Description |
|---|---|---|---|
title | string | true | The title of the API. |
summary | string | false | A short summary of the API. |
description | string | false | A description of the API. [CommonMark] syntax MAY be used for rich text representation. |
termsOfService | string | false | A URI for the Terms of Service for the API. This MUST be in the form of a URI. |
contact | contact | false | The contact information for the exposed API. |
license | license | false | The license information for the exposed API. |
version | string | true | The version of the OpenAPI document (which is distinct from the OpenAPI Specification version or the version of the API being described or the version of the OpenAPI Description). |
license
License information for the exposed API.
| Key | Value | Required | Description |
|---|---|---|---|
name | string | true | The license name used for the API. |
identifier | string | false | An SPDX-Licenses expression for the API. The identifier field is mutually exclusive of the url field. |
url | string | false | A URI for the license used for the API. This MUST be in the form of a URI. The url field is mutually exclusive of the identifier field. |
contact
Contact information for the exposed API.
| Key | Value | Required | Description |
|---|---|---|---|
name | string | false | The identifying name of the contact person/organization. |
url | string | false | The URI for the contact information. This MUST be in the form of a URI. |
email | string | false | The email address of the contact person/organization. This MUST be in the form of an email address. |
OpenAPIResourceSettings
OpenAPIResourceSettings hold settings of the rely proxy.
| Key | Value | Required | Description |
|---|---|---|---|
basePath | string | false | Base path of the resource. |
http | HTTPClientConfig | false | Global settings for the HTTP client. |
headers | map[string]EnvString | false | Headers define custom headers to be injected to the remote server. Merged with the global headers. |
forwardHeaders | OpenAPIForwardHeadersConfig | false | ForwardHeaders define configurations for headers forwarding |
healthCheck | HealthCheckConfig | false | HealthCheck define the health check policy for load balancer recovery. |
HealthCheckConfig
HealthCheckConfig holds health check configurations for server recovery.
| Key | Value | Required | Description |
|---|---|---|---|
http | HTTPHealthCheckConfig | false | Configurations for health check through HTTP protocol. |
HTTPHealthCheckConfig
HTTPHealthCheckConfig holds configurations for health checking the server and recovery.
| Key | Value | Required | Description |
|---|---|---|---|
path | string | true | Health check path, e.g, /healthz. |
method | GET / POST | false | Health check method. Default to GET |
body | false | Request body is used if the method is POST. | |
headers | map[string]EnvString | false | Request headers to be sent to health check requests. |
interval | integer | false | Health check interval in seconds. Disabled if the interval is negative or equals 0. Default to 60 seconds |
timeout | integer | false | Timeout in seconds. Disabled if the timeout is negative or equals 0. Default to 5 seconds |
successStatus | 200 / 201 / 204 | false | SuccessStatus is expected successful HTTP status. Default to HTTP 200 OK. |
successThreshold | integer | false | SuccessThreshold is the minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Minimum value is 1. |
failureThreshold | integer | false | Failure threshold. After a probe fails threshold times in a row, the HTTP client considers that the overall check has failed. Default to 5. Minimum value is 1 |
OpenAPIForwardHeadersConfig
OpenAPIForwardHeadersConfig contains configurations for headers forwarding,.
| Key | Value | Required | Description |
|---|---|---|---|
request | [string] | false | Defines header names to be forwarded from the client request. |
response | [string] | false | Defines header names to be forwarded from the response. |
HTTPClientConfig
HTTPClientConfig contains configurations to create client.
| Key | Value | Required | Description |
|---|---|---|---|
timeout | integer | false | Default maximum timeout in seconds that is applied for all requests. |
transport | HTTPTransportConfig | false | Transport stores the http.Transport configuration for the http client. |
tls | TLSConfig | false | The transport layer security (LTS) configuration for the mutualTLS authentication. |
retry | HTTPRetryConfig | false | Retry policy of client requests. |
authentication | HTTPClientAuthConfig | false | Authentication configuration. |
HTTPClientAuthConfig
Define authentication configurations
One of the following values:
| Value | Description |
|---|---|
| BasicAuthConfig | Configuration for the basic authentication |
| HTTPAuthConfig | Configuration for the http and API Key authentication |
| OAuth2Config | Configuration for the OAuth2 authentication |
OAuth2Config
OAuth2Config contains configurations for OAuth 2.0 with client_credentials type.
| Key | Value | Required | Description |
|---|---|---|---|
type | oauth2 | true | Type of the oauth2 authenticator. |
flows | OAuth2Flows | true | An object containing configuration information for the flow types supported. |
tokenLocation | TokenLocation | false | The location where the auth credential will be injected. |
OAuth2Flows
OAuth2Flows contain configuration information for the flow types supported.
| Key | Value | Required | Description |
|---|---|---|---|
clientCredentials | ClientCredentialsOAuthFlow | true | OAuth2 flow for client_credentials |
ClientCredentialsOAuthFlow
ClientCredentialsOAuthFlow contains flow configurations for OAuth 2.0 client credential flow.
| Key | Value | Required | Description |
|---|---|---|---|
tokenUrl | EnvString | false | The token URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS. |
refreshUrl | EnvString | false | The URL to be used for obtaining refresh tokens. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS. |
scopes | [string] | false | The available scopes for the OAuth2 security scheme. |
clientId | EnvString | false | Client ID of the OAuth2 client. |
clientSecret | EnvString | false | Client secret of the OAuth2 client. |
endpointParams | map[string]EnvString | false | Optional query parameters for the endpoint. |
HTTPAuthConfig
HTTPAuthConfig contains configurations for http authentication If the scheme is bearer, the authenticator follows OpenAPI 3 specification.
| Key | Value | Required | Description |
|---|---|---|---|
tokenLocation | TokenLocation | true | The location where the auth credential will be injected. |
value | EnvString | true | Value of the access token. |
type | http | true | Type of the http authenticator. |
TokenLocation
TokenLocation contains the configuration for the location of the access token.
| Key | Value | Required | Description |
|---|---|---|---|
in | header / query / cookie | true | Location where the api key is in. |
name | string | true | Name of the field to validate, for example, Authorization header. |
scheme | string | false | The name of the HTTP Authentication scheme to be used in the Authorization header as defined in RFC7235. The values used SHOULD be registered in the IANA Authentication Scheme registry. https://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml The value is case-insensitive, as defined in RFC7235. |
BasicAuthConfig
BasicAuthConfig contains configurations for the basic authentication.
| Key | Value | Required | Description |
|---|---|---|---|
type | basic | true | Type of the basic authenticator. |
header | string | false | Header where the credential will be set. |
username | EnvString | true | Username to authenticate. |
password | EnvString | true | Password to authenticate. |
HTTPRetryConfig
HTTPRetryConfig represents retry policy settings.
| Key | Value | Required | Description |
|---|---|---|---|
maxAttempts | integer | false | Maximum number of retry attempts. |
delay | integer | false | The initial wait time in milliseconds before a retry is attempted. Must be >0. Defaults to 1 second. |
maxDelay | integer | false | The max delay in milliseconds of the exponentially backing off. If the max delay is smaller or equal the base delay. The delay is constant. |
httpStatus | [integer] | false | HTTPStatus retries if the remote service returns one of these http status |
multiplier | number | false | How much should the reconnection time grow on subsequent attempts. Must be >=1; 1 = constant interval. Defaults to 1.5. |
jitter | integer | false | For each retry delay, a random portion of the jitter will be added or subtracted to the delay. For example: a jitter of 100 milliseconds will randomly add between -100 and 100 milliseconds to each retry delay. Replaces any previously configured jitter factor. |
jitterFactor | number | false | For each retry delay, a random portion of the delay multiplied by the jitterFactor will be added or subtracted to the delay. For example: a retry delay of 100 milliseconds and a jitterFactor of .25 will result in a random retry delay between 75 and 125 milliseconds. Replaces any previously configured jitter duration. |
TLSConfig
TLSConfig represents the transport layer security (LTS) configuration for the mutualTLS authentication.
| Key | Value | Required | Description |
|---|---|---|---|
rootCAFile | [EnvString] | false | RootCAFile represents paths to root certificates. For a client this verifies the server certificate. For a server this verifies client certificates. If empty uses system root CA. |
rootCAPem | [EnvString] | false | RootCAPem is the alternative to rootCAFile. Provide the CA cert contents as a base64-encoded string instead of a filepath. |
caFile | [EnvString] | false | CAFile is the path to the CA cert. For a client this verifies the server certificate. For a server this verifies client certificates. If empty uses system root CA. |
caPem | [EnvString] | false | CAPem is alternative to caFile. Provide the CA cert contents as a base64-encoded string instead of a filepath. |
certificates | [TLSClientCertificate] | false | Certificates contains the list of client certificates. |
insecureSkipVerify | EnvBool | false | InsecureSkipVerify you can configure TLS to be enabled but skip verifying the server's certificate chain. |
includeSystemCACertsPool | EnvBool | false | IncludeSystemCACertsPool whether to load the system certificate authorities pool alongside the certificate authority. |
minVersion | string | false | Minimum acceptable TLS version. |
maxVersion | string | false | Maximum acceptable TLS version. |
cipherSuites | [string] | false | Explicit cipher suites can be set. If left blank, a safe default list is used. See https://go.dev/src/crypto/tls/cipher_suites.go for a list of supported cipher suites. |
serverName | EnvString | false | ServerName requested by client for virtual hosting. This sets the ServerName in the TLSConfig. Please refer to https://godoc.org/crypto/tls#Config for more information. (optional) |
EnvBool
InsecureSkipVerify you can configure TLS to be enabled but skip verifying the server's certificate chain.
| Key | Value | Required | Description |
|---|---|---|---|
value | boolean | false | Default literal value if the env is empty |
env | string | false | Environment variable to be evaluated |
TLSClientCertificate
TLSClientCertificate represents a cert and key pair certificate.
| Key | Value | Required | Description |
|---|---|---|---|
certFile | EnvString | false | CertFile is the path to the TLS cert to use for TLS required connections. |
certPem | EnvString | false | CertPem is alternative to certFile. Provide the certificate contents as a base64-encoded string instead of a filepath. |
keyFile | EnvString | false | KeyFile is the path to the TLS key to use for TLS required connections. |
keyPem | EnvString | false | KeyPem is the alternative to keyFile. Provide the key contents as a base64-encoded string instead of a filepath. |
EnvString
| Key | Value | Required | Description |
|---|---|---|---|
value | string | false | Default literal value if the env is empty |
env | string | false | Environment variable to be evaluated |
HTTPTransportConfig
HTTPTransportConfig stores the http.Transport configuration for the http client.
| Key | Value | Required | Description |
|---|---|---|---|
dialer | HTTPDialerConfig | false | Options the http.Dialer to connect to an address |
idleConnTimeout | string | false | Idle connection timeout. The maximum amount of time an idle (keep-alive) connection will remain idle before closing itself. Zero means no limit. |
responseHeaderTimeout | string | false | Response header timeout, if non-zero, specifies the amount of time to wait for a server's response headers after fully writing the request (including its body, if any). This time does not include the time to read the response body. This timeout is used to cover cases where the tcp connection works but the server never answers. |
tlsHandshakeTimeout | string | false | TLS handshake timeout is the maximum amount of time to wait for a TLS handshake. Zero means no timeout. |
expectContinueTimeout | string | false | Expect continue timeout, if non-zero, specifies the amount of time to wait for a server's first response headers after fully writing the request headers if the request has an "Expect: 100-continue" header. |
maxIdleConns | integer | false | |
maxIdleConnsPerHost | integer | false | |
maxConnsPerHost | integer | false | |
maxResponseHeaderBytes | integer | false | |
readBufferSize | integer | false | |
writeBufferSize | integer | false | |
forceAttemptHTTP2 | boolean | false | ForceAttemptHTTP2 controls whether HTTP/2 is enabled when a non-zero Dial, DialTLS, or DialContext func or TLSClientConfig is provided. Default is true. |
disableKeepAlives | boolean | false | DisableKeepAlives, if true, disables HTTP keep-alives and will only use the connection to the server for a single HTTP request. This is unrelated to the similarly named TCP keep-alives. |
HTTPDialerConfig
HTTPDialerConfig contains options the http.Dialer to connect to an address.
| Key | Value | Required | Description |
|---|---|---|---|
timeout | string | false | The maximum amount of time a dial will wait for a connect to complete. If Deadline is also set, it may fail earlier. |
keepAliveEnabled | boolean | false | Keep-alive probes are enabled by default. |
keepAliveInterval | string | false | KeepAliveInterval is the time between keep-alive probes. If zero, a default value of 15 seconds is used. |
keepAliveCount | integer | false | |
keepAliveIdle | string | false | KeepAliveIdle is the time that the connection must be idle before the first keep-alive probe is sent. If zero, a default value of 15 seconds is used. |
fallbackDelay | string | false | FallbackDelay specifies the length of time to wait before spawning a RFC 6555 Fast Fallback connection. That is, this is the amount of time to wait for IPv6 to succeed before assuming that IPv6 is misconfigured and falling back to IPv4. If zero, a default delay of 300ms is used. A negative value disables Fast Fallback support. |
RelixyResourceMetadata
RelixyResourceMetadata represents common metadata of the resource.
| Key | Value | Required | Description |
|---|---|---|---|
name | string | true | Name of the resource |
description | string | false | Description of the resource |
instruction | string | false | System instruction for the current resource. It's important to the LLM |