Skip to content

Commit

Permalink
docs(spec): v3.0.0-next-major-spec.11 release (asyncapi#1720)
Browse files Browse the repository at this point in the history
  • Loading branch information
asyncapi-bot authored May 29, 2023
1 parent 8c4146e commit 7d2c4bb
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 59 deletions.
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# ATTENTION: Work in progress

This version is not yet ready to be used. We're currently working on it. If you want to join the effort and participate in the development of the next major version of AsyncAPI, head over to the [GitHub Issue that we use for tracking 3.0 development progress](https://github.com/asyncapi/spec/issues/691).
This version is not yet ready to be used. We're currently working on it. If you want to join the effort and participate in the development of the next major version of AsyncAPI, head over to [GitHub Issue that we use for tracking 3.0 development progress](https://github.com/asyncapi/spec/issues/691).

# AsyncAPI Specification

#### Disclaimer
#### Attribution

Part of this content has been taken from the great work done by the folks at the [OpenAPI Initiative](https://openapis.org). Mainly because **it's a great work** and we want to keep as much compatibility as possible with the [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification).
Part of this content has been taken from the great work done by the folks at the [OpenAPI Initiative](https://openapis.org).

#### Version 3.0.0

Expand Down Expand Up @@ -714,7 +714,7 @@ Holds a dictionary with all the [operations](#operationObject) this application

Field Pattern | Type | Description
---|:---:|---
<a name="operationsObjectOperation"></a>{operationId} | [Operation Object](#channelObject) \| [Reference Object](#referenceObject) | The operation this application MUST implement. The field name (`operationId`) MUST be a string used to identify the operation in the document where it is defined, and its 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.
<a name="operationsObjectOperation"></a>{operationId} | [Operation Object](#operationObject) \| [Reference Object](#referenceObject) | The operation this application MUST implement. The field name (`operationId`) MUST be a string used to identify the operation in the document where it is defined, and its 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.

##### Operations Object Example

Expand Down Expand Up @@ -959,48 +959,34 @@ location: $message.header#/replyTo

#### <a name="parametersObject"></a>Parameters Object

Describes a map of parameters included in a channel name.
Describes a map of parameters included in a channel address.

This map MUST contain all the parameters used in the parent channel name.
This map MUST contain all the parameters used in the parent channel address.

##### Patterned Fields

Field Pattern | Type | Description
---|:---:|---
<a name="parametersObjectName"></a>`^[A-Za-z0-9_\-]+$` | [Parameter Object](#parameterObject) &#124; [Reference Object](#referenceObject) | The key represents the name of the parameter. It MUST match the parameter name used in the parent channel name.
<a name="parametersObjectName"></a>`^[A-Za-z0-9_\-]+$` | [Parameter Object](#parameterObject) &#124; [Reference Object](#referenceObject) | The key represents the name of the parameter. It MUST match the parameter name used in the parent channel address.

##### Parameters Object Example

```json
{
"user/{userId}/signup": {
"parameters": {
"userId": {
"description": "Id of the user.",
"schema": {
"type": "string"
}
}
},
"subscribe": {
"message": {
"$ref": "#/components/messages/userSignedUp"
}
"address": "user/{userId}/signedup",
"parameters": {
"userId": {
"description": "Id of the user."
}
}
}
```

```yaml
user/{userId}/signup:
parameters:
userId:
description: Id of the user.
schema:
type: string
subscribe:
message:
$ref: "#/components/messages/userSignedUp"
address: user/{userId}/signedup
parameters:
userId:
description: Id of the user.
```


Expand All @@ -1009,52 +995,40 @@ user/{userId}/signup:

#### <a name="parameterObject"></a>Parameter Object

Describes a parameter included in a channel name.
Describes a parameter included in a channel address.

##### Fixed Fields

Field Name | Type | Description
---|:---:|---
<a name="parameterObjectDescription"></a>description | `string` | A verbose explanation of the parameter. [CommonMark syntax](https://spec.commonmark.org/) can be used for rich text representation.
<a name="parameterObjectSchema"></a>schema | [Schema Object](#schemaObject) \| [Reference Object](#referenceObject) | Definition of the parameter.
location | `string` | A [runtime expression](#runtimeExpression) that specifies the location of the parameter value. Even when a definition for the target field exists, it MUST NOT be used to validate this parameter but, instead, the `schema` property MUST be used.
<a name="parameterObjectEnum"></a>enum | [`string`] | An enumeration of string values to be used if the substitution options are from a limited set.
<a name="parameterObjectDefault"></a>default | `string` | The default value to use for substitution, and to send, if an alternate value is _not_ supplied.
<a name="parameterObjectDescription"></a>description | `string` | An optional description for the parameter. [CommonMark syntax](https://spec.commonmark.org/) MAY be used for rich text representation.
<a name="parameterObjectExamples"></a>examples | [`string`] | An array of examples of the parameter value.
<a name="parameterObjectLocation"></a>location | `string` | A [runtime expression](#runtimeExpression) that specifies the location of the parameter value.

This object MAY be extended with [Specification Extensions](#specificationExtensions).

##### Parameter Object Example

```json
{
"user/{userId}/signup": {
"parameters": {
"userId": {
"description": "Id of the user.",
"schema": {
"type": "string"
},
"location": "$message.payload#/user/id"
}
},
"subscribe": {
"message": {
"$ref": "#/components/messages/userSignedUp"
}
"address": "user/{userId}/signedup",
"parameters": {
"userId": {
"description": "Id of the user.",
"location": "$message.payload#/user/id"
}
}
}
```

```yaml
user/{userId}/signup:
parameters:
userId:
description: Id of the user.
schema:
type: string
location: $message.payload#/user/id
subscribe:
message:
$ref: "#/components/messages/userSignedUp"
address: user/{userId}/signedup
parameters:
userId:
description: Id of the user.
location: $message.payload#/user/id
```


Expand Down Expand Up @@ -2608,4 +2582,4 @@ binary | `string` | `binary` | any sequence of octets
boolean | `boolean` | | |
date | `string` | `date` | As defined by `full-date` - [RFC3339](https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6)
dateTime | `string` | `date-time` | As defined by `date-time` - [RFC3339](https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6)
password | `string` | `password` | Used to hint UIs the input needs to be obscured.
password | `string` | `password` | Used to hint UIs the input needs to be obscured.
2 changes: 1 addition & 1 deletion public/_redirects
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ https://www.asyncapi.io/* https://www.asyncapi.com/:splat 301!
# LATEST-SPEC-REDIRECTION:END

# SPEC-REDIRECTION:START
/docs/reference/specification/3.0.0-next-major-spec.10 /docs/reference/specification/v3.0.0-next-major-spec.10 302!
/docs/reference/specification/3.0.0-next-major-spec.11 /docs/reference/specification/v3.0.0-next-major-spec.11 302!
/docs/reference/specification/2.6.0 /docs/reference/specification/v2.6.0 302!
/docs/reference/specification/2.5.0 /docs/reference/specification/v2.5.0 302!
/docs/reference/specification/2.4.0 /docs/reference/specification/v2.4.0 302!
Expand Down

0 comments on commit 7d2c4bb

Please sign in to comment.