Skip to main content

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:

ValueDescription
RelixyOpenAPIResourceDefinition of an OpenAPI resource
RelyAuthConfigDefinition of a RelyAuth resource

RelixyOpenAPIResource

RelixyOpenAPIResource represents an OpenAPI resource.

KeyValueRequiredDescription
versionv1trueVersion of the resource
kindOpenAPItrueKind of the resource which is always OpenAPI.
metadataRelixyResourceMetadatatrueMetadata of the resource
definitionOpenAPIResourceDefinitiontrueDefinition of the OpenAPI documentation

OpenAPIResourceDefinition

Definition of an OpenAPI resource

One of the following values:

ValueDescription
OpenAPIResourceRefDefinition of an OpenAPI resource
OpenAPIResourceSpecDefinition of an OpenAPI resource

OpenAPIResourceSpec

Definition of an OpenAPI resource

KeyValueRequiredDescription
settingsOpenAPIResourceSettingsfalseSettings of the OpenAPI resource.
patches[OverlayActionObject]falseA 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
specDocumenttrueSpecification of the OpenAPI v3 documentation.

OpenAPIResourceRef

Definition of an OpenAPI resource

KeyValueRequiredDescription
settingsOpenAPIResourceSettingsfalseSettings of the OpenAPI resource.
patches[OverlayActionObject]falseA 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
refstringtruePath 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:

ValueDescription
OverlayActionUpdateCopyObject
OverlayActionRemoveObject

OverlayActionRemoveObject

KeyValueRequiredDescription
targetstringfalseA RFC9535 JSONPath query expression selecting nodes in the target document.
descriptionstringfalseA description of the action.
removetruetrueA 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

KeyValueRequiredDescription
targetstringfalseA RFC9535 JSONPath query expression selecting nodes in the target document.
descriptionstringfalseA description of the action.
updateDocumentfalseIf 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.
copystringfalseA 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

KeyValueRequiredDescription
openapistringfalseVersion is the version of OpenAPI being used
$refstringfalseOpenAPI document reference that this document depends on.
$selfstringfalseSelf-reference URI
infoinfofalseProvides metadata about the API. The metadata MAY be used by tooling as required.
jsonSchemaDialectstringfalseThe 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]falseAn 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 /.
pathspathsfalseThe available paths and operations for the API.
webhooksmap[string]path-itemfalseThe 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.
componentscomponentsfalseAn element to hold various Objects for the OpenAPI Description.
security[map[string][string]]falseA 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]falseA 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.
externalDocsexternal-documentationfalseAdditional 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.

KeyValueRequiredDescription
namestringtrueThe name of the tag. Use this value in the tags array of an Operation.
summarystringfalseA short summary of the tag, used for display purposes.
descriptionstringfalseA description for the tag. CommonMark syntax MAY be used for rich text representation.
externalDocsexternal-documentationfalseAdditional external documentation for this tag.
parentstringfalseThe 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.
kindstringfalseA 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.

KeyValueRequiredDescription
schemasmap[string]schemafalseAn object to hold reusable Schema Objects.
responsesmap[string]falseAn object to hold reusable Response Objects.
parametersmap[string]falseAn object to hold reusable Parameter Objects.
examplesmap[string]falseAn object to hold reusable Example Objects.
requestBodiesmap[string]falseAn object to hold reusable Request Body Objects.
headersmap[string]falseAn object to hold reusable Header Objects.
securitySchemesmap[string]falseAn object to hold reusable Security Scheme Objects.
linksmap[string]falseAn object to hold reusable Link Objects.
callbacksmap[string]falseAn object to hold reusable Callback Objects.
pathItemsmap[string]path-itemfalseAn object to hold reusable Path Item Objects.
mediaTypesmap[string]falseAn object to hold reusable Media Type Objects.
`^(?:schemasresponsesparametersexamples

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.

One of the following values:

ValueDescription
boolean
reference

KeyValueRequiredDescription
$schemastringfalse3.1 only, used to define a dialect for this schema, label is '$schema'.
exclusiveMaximumnumberfalseThe 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'.
exclusiveMinimumnumberfalseThe 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]falseTypes 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[]falseThe 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[]falseThe 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[]falseThe 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).
discriminatordiscriminatorfalseWhen 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[]falseThe 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.
containsfalse3.1 Specific properties
minContainsintegerfalseAn 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.
maxContainsintegerfalseAn 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.
iffalseThe 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.
elsefalseThe else keyword restricts instances to validate against the given subschema if the if sibling keyword failed to validate against the instance.
thenfalseThe then keyword restricts instances to validate against the given subschema if the if sibling keyword successfully validated against the instance.
dependentSchemasmap[string]falseThe 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.
dependentRequiredmap[string][string]falseSpecifies 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.
patternPropertiesmap[string]falseThe 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.
propertyNamesfalseThe 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.
unevaluatedItemsfalseThe 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.
itemsfalseSchema of elements if the type is array.
$anchorstringfalseThe $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.
notfalseThe 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.
propertiesmap[string]falseDefinition of object properties if the type is object.
titlestringfalseTitle of the schema.
multipleOfnumberfalseA 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.
maximumnumberfalseThe 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'.
minimumnumberfalseThe 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'.
maxLengthintegerfalseA 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.
minLengthintegerfalseA 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.
patternstringfalseA 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.
formatstringfalseAs 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.
maxItemsintegerfalseAn 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.
minItemsintegerfalseAn 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.
uniqueItemsbooleanfalseIf 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.
maxPropertiesintegerfalseAn 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.
minPropertiesintegerfalseAn 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]falseThe 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[]falseThe 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.
additionalPropertiesfalseDefine a dictionary (also known as a map, hashmap or associative array) is a set of key/value pairs.
descriptionstringfalseDescription of the schema.
defaultfalseThe 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.
constfalseUse 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.
nullablebooleanfalseThis 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.
readOnlybooleanfalseRelevant 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.
writeOnlybooleanfalseRelevant 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.
deprecatedbooleanfalseSpecifies that schema is deprecated and SHOULD be transitioned out of usage. Default value is false.
externalDocsexternal-documentationfalse
xmlxmlfalse
^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.

KeyValueRequiredDescription
nodeTypeelement / attribute / text / cdata / nonefalseOne 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.
namestringfalseSets 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.
namespacestringfalseThe IRI (RFC3987) of the namespace definition. Value MUST be in the form of a non-relative IRI.
prefixstringfalseThe prefix to be used for the name.
attributebooleanfalseDeclares 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
wrappedbooleanfalseMAY be used only for an array definition. Signifies whether the array is wrapped (for example, ) or unwrapped (). Default value is false. The definition takes effect only when defined alongside type being 'array' (outside the items). If nodeType is present, this field MUST NOT be present. Deprecated: Use nodeType: 'element' instead of wrapped: true
^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.

KeyValueRequiredDescription
propertyNamestringtrueThe 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.
mappingmap[string]stringfalseAn object to hold mappings between payload values and schema names or URI reference
defaultMappingstringfalseThe 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

KeyValueRequiredDescription
$refstringfalseA simple object to allow referencing other components in the OpenAPI Description, internally and externally.
summarystringfalseA 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.
descriptionstringfalseA 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.

KeyValueRequiredDescription
^/path-itemfalse

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.

KeyValueRequiredDescription
$refstringfalseAllows 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.
summarystringfalseAn optional string summary, intended to apply to all operations in this path.
descriptionstringfalseAn optional string description, intended to apply to all operations in this path. CommonMark syntax MAY be used for rich text representation.
servers[server]falseAn 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.
parametersparametersfalseA 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.
additionalOperationsmap[string]operationfalseA 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).
getoperationfalseA definition of a GET operation on this path.
putoperationfalseA definition of a PUT operation on this path.
postoperationfalseA definition of a POST operation on this path.
deleteoperationfalseA definition of a DELETE operation on this path.
optionsoperationfalseA definition of a OPTIONS operation on this path.
headoperationfalseA definition of a HEAD operation on this path.
patchoperationfalseA definition of a PATCH operation on this path.
traceoperationfalseA definition of a TRACE operation on this path.
queryoperationfalseA definition of a QUERY operation on this path.

operation

Describes a single API operation on a path.

KeyValueRequiredDescription
tags[string]falseA list of tags for API documentation control. Tags can be used for logical grouping of operations by resources or any other qualifier.
summarystringfalseA short summary of what the operation does.
descriptionstringfalseA verbose explanation of the operation behavior. CommonMark syntax MAY be used for rich text representation.
externalDocsexternal-documentationfalseAdditional external documentation for this operation.
operationIdstringfalseUnique 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.
parametersparametersfalseA 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.
requestBodyfalseThe 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.
responsesresponsesfalseThe list of possible responses as they are returned from executing this operation.
callbacksmap[string]falseA 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.
deprecatedbooleanfalseDeclares this operation to be deprecated. Consumers SHOULD refrain from usage of the declared operation. Default value is false.
security[map[string][string]]falseA 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]falseAn 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-actionProxyActionConfigfalseDefines 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:

ValueDescription
ProxyRESTfulActionConfigProxy configuration to the remote RESTful service
ProxyGraphQLActionConfigConfigurations for proxying request to the remote GraphQL server

ProxyGraphQLActionConfig

ProxyGraphQLActionConfig represents a proxy action config for GraphQL.

KeyValueRequiredDescription
typegraphqltrueType of the proxy action which is always graphql.
requestProxyGraphQLRequestConfigfalseConfigurations for the GraphQL proxy request.
responseProxyCustomGraphQLResponseConfigfalseConfigurations for evaluating graphql responses.

ProxyCustomGraphQLResponseConfig

ProxyCustomGraphQLResponseConfig represents configurations for the proxy response.

KeyValueRequiredDescription
httpErrorCodeintegerfalseThe 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.
httpErrorsfalseEvaluation rules to map GraphQL errors to desired HTTP status codes.
bodyTemplateTransformerConfigfalseConfigurations for transforming response data.

Evaluation rules to map GraphQL errors to desired HTTP status codes.

KeyValueRequiredDescription
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.

KeyValueRequiredDescription
urlstringfalseOverrides the request URL. Use the original request path if empty.
methodGET / POSTfalseIndicate the request method. The default method is POST.
headersmap[string]FieldMappingEntryStringConfigfalseThe configuration to transform request headers.
querystringtrueGraphQL query to be sent.
variablesmap[string]FieldMappingEntryConfigfalseDefinition of GraphQL variables.
extensionsmap[string]FieldMappingEntryConfigfalseDefinition of GraphQL extensions.

FieldMappingEntryStringConfig

KeyValueRequiredDescription
pathstringfalse
defaultEnvStringfalse

ProxyRESTfulActionConfig

ProxyRESTfulActionConfig represents a proxy action config for REST operation.

KeyValueRequiredDescription
typeresttrueType of the proxy action which is always rest.
requestProxyRESTfulRequestConfigfalseConfigurations for the REST proxy request.
responseProxyCustomRESTfulResponseConfigfalseConfigurations for evaluating REST responses.

ProxyCustomRESTfulResponseConfig

ProxyCustomRESTfulResponseConfig represents configurations for the proxy response.

KeyValueRequiredDescription
contentTypestringfalseContent type of the response to be transformed to.
bodyTemplateTransformerConfigfalseConfigurations for transforming response data.

ProxyRESTfulRequestConfig

ProxyRESTfulRequestConfig represents configurations for the proxy request.

KeyValueRequiredDescription
urlstringfalseOverrides the request URL. Use the original request path if empty.
methodGET / POST / PATCH / PUT / DELETEfalseOverrides the request method. Use the original request method if empty.
parameters[ProxyRESTfulParameterConfig]false
contentTypestringfalseContent type of the body to be transformed to.
bodyTemplateTransformerConfigfalseThe configuration to transform request body.
forwardAllQueryParamsbooleanfalseIf 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:

ValueDescription
TemplateTransformerJMESPathConfigTransform responses using the standard JMESPath template
TemplateTransformerGoTemplateConfigTransform responses using the standard Go template

TemplateTransformerGoTemplateConfig

Transform responses using the standard Go template

KeyValueRequiredDescription
typegotmpltrueTemplate type to be used for transforming response
contentTypestringfalseThe expected content type to be transformed
templatestringtrueTemplate content to be transformed

TemplateTransformerJMESPathConfig

Transform responses using the standard JMESPath template

KeyValueRequiredDescription
typejmespathtrueTemplate type to be used for transforming response
templateFieldMappingConfigtrueTemplate content to be transformed

FieldMappingConfig

Represents a generic field mapping config

One of the following values:

ValueDescription
FieldMappingObjectConfigMapping configurations for object fields
FieldMappingEntryConfigThe mapping configuration for an entry field

FieldMappingEntryConfig

FieldMappingEntryConfig is the entry config to lookup field values with the specified JMES path.

KeyValueRequiredDescription
pathstringfalsePath is a JMESPath expression to find a value in the input data.
defaultEnvAnyfalseDefault value to be used when no value is found when looking up the value using the path.
typefieldtrueType of the field mapping config

FieldMappingObjectConfig

FieldMappingObjectConfig represents configurations for the object field mapping.

KeyValueRequiredDescription
propertiesmap[string]trueProperties of the field mapping object.
typeobjecttrueType of the field mapping config

ProxyRESTfulParameterConfig

ProxyRESTfulParameterConfig represents an object of transformation configurations for a parameter.

KeyValueRequiredDescription
pathstringfalse
defaultEnvAnyfalse
namestringtrueThe name of the parameter.
explodebooleanfalseWhen 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.
allowReservedbooleanfalseWhen this is true, parameter values are serialized using reserved expansion.
inheader / query / cookie / pathtrueThe location of the parameter.
styleintegerfalseDescribes how the parameter value will be serialized depending on the type of the parameter value.

EnvAny

KeyValueRequiredDescription
valuefalseDefault literal value if the env is empty
envstringfalseEnvironment variable to be evaluated

responses

The list of possible responses as they are returned from executing this operation.

KeyValueRequiredDescription
defaultfalse
`^[1-5](?:[0-9]2XX)$`false

external-documentation

Allows referencing an external resource for extended documentation.

KeyValueRequiredDescription
descriptionstringfalse
urlstringtrue

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.

KeyValueRequiredDescription
urlstringtrueA 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-weightintegerfalseDefines the weight of the server endpoint for load balancing. Only take effect if there are many servers.
x-rely-server-headersmap[string]EnvStringfalseDefines custom headers to be injected to the remote server. Merged with the global headers.
x-rely-server-tlsTLSConfigfalseTLS configuration of the server. Used for mTLS authentication.
descriptionstringfalseAn optional string describing the host designated by the URL. CommonMark syntax MAY be used for rich text representation.
namestringfalseAn optional unique string to refer to the host designated by the URL.
variablesmap[string]server-variablefalseA 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.

KeyValueRequiredDescription
enum[string]falseAn enumeration of string values to be used if the substitution options are from a limited set. The array MUST NOT be empty.
defaultstringtrueThe 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.
descriptionstringfalseAn 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.

KeyValueRequiredDescription
titlestringtrueThe title of the API.
summarystringfalseA short summary of the API.
descriptionstringfalseA description of the API. [CommonMark] syntax MAY be used for rich text representation.
termsOfServicestringfalseA URI for the Terms of Service for the API. This MUST be in the form of a URI.
contactcontactfalseThe contact information for the exposed API.
licenselicensefalseThe license information for the exposed API.
versionstringtrueThe 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.

KeyValueRequiredDescription
namestringtrueThe license name used for the API.
identifierstringfalseAn SPDX-Licenses expression for the API. The identifier field is mutually exclusive of the url field.
urlstringfalseA 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.

KeyValueRequiredDescription
namestringfalseThe identifying name of the contact person/organization.
urlstringfalseThe URI for the contact information. This MUST be in the form of a URI.
emailstringfalseThe 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.

KeyValueRequiredDescription
basePathstringfalseBase path of the resource.
httpHTTPClientConfigfalseGlobal settings for the HTTP client.
headersmap[string]EnvStringfalseHeaders define custom headers to be injected to the remote server. Merged with the global headers.
forwardHeadersOpenAPIForwardHeadersConfigfalseForwardHeaders define configurations for headers forwarding
healthCheckHealthCheckConfigfalseHealthCheck define the health check policy for load balancer recovery.

HealthCheckConfig

HealthCheckConfig holds health check configurations for server recovery.

KeyValueRequiredDescription
httpHTTPHealthCheckConfigfalseConfigurations for health check through HTTP protocol.

HTTPHealthCheckConfig

HTTPHealthCheckConfig holds configurations for health checking the server and recovery.

KeyValueRequiredDescription
pathstringtrueHealth check path, e.g, /healthz.
methodGET / POSTfalseHealth check method. Default to GET
bodyfalseRequest body is used if the method is POST.
headersmap[string]EnvStringfalseRequest headers to be sent to health check requests.
intervalintegerfalseHealth check interval in seconds. Disabled if the interval is negative or equals 0. Default to 60 seconds
timeoutintegerfalseTimeout in seconds. Disabled if the timeout is negative or equals 0. Default to 5 seconds
successStatus200 / 201 / 204falseSuccessStatus is expected successful HTTP status. Default to HTTP 200 OK.
successThresholdintegerfalseSuccessThreshold is the minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Minimum value is 1.
failureThresholdintegerfalseFailure 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,.

KeyValueRequiredDescription
request[string]falseDefines header names to be forwarded from the client request.
response[string]falseDefines header names to be forwarded from the response.

HTTPClientConfig

HTTPClientConfig contains configurations to create client.

KeyValueRequiredDescription
timeoutintegerfalseDefault maximum timeout in seconds that is applied for all requests.
transportHTTPTransportConfigfalseTransport stores the http.Transport configuration for the http client.
tlsTLSConfigfalseThe transport layer security (LTS) configuration for the mutualTLS authentication.
retryHTTPRetryConfigfalseRetry policy of client requests.
authenticationHTTPClientAuthConfigfalseAuthentication configuration.

HTTPClientAuthConfig

Define authentication configurations

One of the following values:

ValueDescription
BasicAuthConfigConfiguration for the basic authentication
HTTPAuthConfigConfiguration for the http and API Key authentication
OAuth2ConfigConfiguration for the OAuth2 authentication

OAuth2Config

OAuth2Config contains configurations for OAuth 2.0 with client_credentials type.

KeyValueRequiredDescription
typeoauth2trueType of the oauth2 authenticator.
flowsOAuth2FlowstrueAn object containing configuration information for the flow types supported.
tokenLocationTokenLocationfalseThe location where the auth credential will be injected.

OAuth2Flows

OAuth2Flows contain configuration information for the flow types supported.

KeyValueRequiredDescription
clientCredentialsClientCredentialsOAuthFlowtrueOAuth2 flow for client_credentials

ClientCredentialsOAuthFlow

ClientCredentialsOAuthFlow contains flow configurations for OAuth 2.0 client credential flow.

KeyValueRequiredDescription
tokenUrlEnvStringfalseThe 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.
refreshUrlEnvStringfalseThe 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]falseThe available scopes for the OAuth2 security scheme.
clientIdEnvStringfalseClient ID of the OAuth2 client.
clientSecretEnvStringfalseClient secret of the OAuth2 client.
endpointParamsmap[string]EnvStringfalseOptional query parameters for the endpoint.

HTTPAuthConfig

HTTPAuthConfig contains configurations for http authentication If the scheme is bearer, the authenticator follows OpenAPI 3 specification.

KeyValueRequiredDescription
tokenLocationTokenLocationtrueThe location where the auth credential will be injected.
valueEnvStringtrueValue of the access token.
typehttptrueType of the http authenticator.

TokenLocation

TokenLocation contains the configuration for the location of the access token.

KeyValueRequiredDescription
inheader / query / cookietrueLocation where the api key is in.
namestringtrueName of the field to validate, for example, Authorization header.
schemestringfalseThe 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.

KeyValueRequiredDescription
typebasictrueType of the basic authenticator.
headerstringfalseHeader where the credential will be set.
usernameEnvStringtrueUsername to authenticate.
passwordEnvStringtruePassword to authenticate.

HTTPRetryConfig

HTTPRetryConfig represents retry policy settings.

KeyValueRequiredDescription
maxAttemptsintegerfalseMaximum number of retry attempts.
delayintegerfalseThe initial wait time in milliseconds before a retry is attempted. Must be >0. Defaults to 1 second.
maxDelayintegerfalseThe 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]falseHTTPStatus retries if the remote service returns one of these http status
multipliernumberfalseHow much should the reconnection time grow on subsequent attempts. Must be >=1; 1 = constant interval. Defaults to 1.5.
jitterintegerfalseFor 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.
jitterFactornumberfalseFor 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.

KeyValueRequiredDescription
rootCAFile[EnvString]falseRootCAFile 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]falseRootCAPem is the alternative to rootCAFile. Provide the CA cert contents as a base64-encoded string instead of a filepath.
caFile[EnvString]falseCAFile 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]falseCAPem is alternative to caFile. Provide the CA cert contents as a base64-encoded string instead of a filepath.
certificates[TLSClientCertificate]falseCertificates contains the list of client certificates.
insecureSkipVerifyEnvBoolfalseInsecureSkipVerify you can configure TLS to be enabled but skip verifying the server's certificate chain.
includeSystemCACertsPoolEnvBoolfalseIncludeSystemCACertsPool whether to load the system certificate authorities pool alongside the certificate authority.
minVersionstringfalseMinimum acceptable TLS version.
maxVersionstringfalseMaximum acceptable TLS version.
cipherSuites[string]falseExplicit 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.
serverNameEnvStringfalseServerName 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.

KeyValueRequiredDescription
valuebooleanfalseDefault literal value if the env is empty
envstringfalseEnvironment variable to be evaluated

TLSClientCertificate

TLSClientCertificate represents a cert and key pair certificate.

KeyValueRequiredDescription
certFileEnvStringfalseCertFile is the path to the TLS cert to use for TLS required connections.
certPemEnvStringfalseCertPem is alternative to certFile. Provide the certificate contents as a base64-encoded string instead of a filepath.
keyFileEnvStringfalseKeyFile is the path to the TLS key to use for TLS required connections.
keyPemEnvStringfalseKeyPem is the alternative to keyFile. Provide the key contents as a base64-encoded string instead of a filepath.

EnvString

KeyValueRequiredDescription
valuestringfalseDefault literal value if the env is empty
envstringfalseEnvironment variable to be evaluated

HTTPTransportConfig

HTTPTransportConfig stores the http.Transport configuration for the http client.

KeyValueRequiredDescription
dialerHTTPDialerConfigfalseOptions the http.Dialer to connect to an address
idleConnTimeoutstringfalseIdle connection timeout. The maximum amount of time an idle (keep-alive) connection will remain idle before closing itself. Zero means no limit.
responseHeaderTimeoutstringfalseResponse 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.
tlsHandshakeTimeoutstringfalseTLS handshake timeout is the maximum amount of time to wait for a TLS handshake. Zero means no timeout.
expectContinueTimeoutstringfalseExpect 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.
maxIdleConnsintegerfalse
maxIdleConnsPerHostintegerfalse
maxConnsPerHostintegerfalse
maxResponseHeaderBytesintegerfalse
readBufferSizeintegerfalse
writeBufferSizeintegerfalse
forceAttemptHTTP2booleanfalseForceAttemptHTTP2 controls whether HTTP/2 is enabled when a non-zero Dial, DialTLS, or DialContext func or TLSClientConfig is provided. Default is true.
disableKeepAlivesbooleanfalseDisableKeepAlives, 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.

KeyValueRequiredDescription
timeoutstringfalseThe maximum amount of time a dial will wait for a connect to complete. If Deadline is also set, it may fail earlier.
keepAliveEnabledbooleanfalseKeep-alive probes are enabled by default.
keepAliveIntervalstringfalseKeepAliveInterval is the time between keep-alive probes. If zero, a default value of 15 seconds is used.
keepAliveCountintegerfalse
keepAliveIdlestringfalseKeepAliveIdle 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.
fallbackDelaystringfalseFallbackDelay 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.

KeyValueRequiredDescription
namestringtrueName of the resource
descriptionstringfalseDescription of the resource
instructionstringfalseSystem instruction for the current resource. It's important to the LLM