Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: proposed set of bindings for AWS - SNS and SQS #84

Merged
merged 92 commits into from
Jul 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
b64dcf6
Add conventions for bindings
iancooper Jul 9, 2021
cc91daa
Merge branch 'master' of https://github.com/iancooper/bindings
iancooper Sep 15, 2021
c322a0b
Create bindings for AWS messaging infrastructure
iancooper Sep 15, 2021
0d2956a
Missing ttags; typos
iancooper Sep 16, 2021
6e6bbb3
Introduce name property for SNS channel binding object
ssemyonov Feb 8, 2022
af5fa86
Remove confusing unnecessary statement
ssemyonov Feb 8, 2022
325291c
Merge pull request #7 from ssemyonov/aws-bindings
iancooper Feb 9, 2022
6f939c6
Merge branch 'master' into aws-bindings
iancooper Feb 9, 2022
d5493f4
Remove DLQ requirement
dpwdec Mar 21, 2023
f97af36
Update statement wording
dpwdec Mar 21, 2023
94443a0
Update FIFO property to boolean
dpwdec Mar 21, 2023
cada568
Add ARN for SNS
dpwdec Mar 21, 2023
471e92a
Make redrive policy consistent with other uses
dpwdec Mar 21, 2023
0c8a141
Merge pull request #9 from dpwdec/aws-bindings-expand
iancooper Apr 11, 2023
f82ac68
Merge branch 'master' into aws-bindings
iancooper Apr 11, 2023
57d67ed
awsbindings: alter queue type type
dpwdec Apr 18, 2023
1139f7a
awsbindings: update FIFO queue to match AWS specs
dpwdec Apr 18, 2023
c7a202a
awsbindings: correct dropped separator
dpwdec Apr 18, 2023
1690fe5
awsbindings: fix typo on delay wording
dpwdec Apr 18, 2023
1d33e72
awsbindings: Add SNS channel schema
dpwdec Apr 18, 2023
cfa8115
awsbindings: Add temp file to populate dir
dpwdec Apr 18, 2023
192c7ce
Merge branch 'aws-bindings-schemas' of github.com:dpwdec/bindings int…
dpwdec Apr 18, 2023
27829d9
awsbindings: Add SNS operation binding
dpwdec Apr 18, 2023
08d2ba2
awsbindings: Delete temp
dpwdec Apr 18, 2023
401ec78
awsbindings: Add SQS channel schema
dpwdec Apr 19, 2023
61cc69a
awsbindings: Add SQS operation schema
dpwdec Apr 19, 2023
eaa8bec
awsbindings: Generalise queue type description
dpwdec Apr 19, 2023
a7d982f
awsbindings: Disambiguate queue and DLQ description
dpwdec Apr 19, 2023
0f75115
awsbindings: Add queue and DLQ descriptions
dpwdec Apr 19, 2023
162d72c
awsbindings: Extract default from description
dpwdec Apr 19, 2023
6c495ba
awsbindings: Match FIFO queue description to spec with default
dpwdec Apr 19, 2023
a71f798
awsbindings: Encode DD def, min & max in schema
dpwdec Apr 19, 2023
d7ad6c2
awsbindings: Extract VT bounds to schema
dpwdec Apr 19, 2023
677e095
awsbindings: Make seconds explicit
dpwdec Apr 19, 2023
9fbc3e6
awsbindings: Correct default for VT
dpwdec Apr 19, 2023
807dc5c
awsbindings: Improve rmt description
dpwdec Apr 19, 2023
8c3a1fe
awsbindings: Add default and description to rmwt
dpwdec Apr 19, 2023
f5dbc92
awsbindings: Bring MRP in line with AWS standards
dpwdec Apr 19, 2023
fb4c786
awsbindings: Match MRP schema to spec
dpwdec Apr 19, 2023
8533ae3
awsbindings: Match casing to AWS standards
dpwdec Apr 19, 2023
d05406d
awsbindings: Match DLQ description
dpwdec Apr 19, 2023
d0f3921
awsbindings: Match DLQ description in schema
dpwdec Apr 19, 2023
d3367a3
awsbindings: Correct redrive MRC description
dpwdec Apr 19, 2023
414eb68
awsbindings: Match schema to spec for MRC
dpwdec Apr 19, 2023
bfbcdd0
awsbindings: Correct typo on statements
dpwdec Apr 19, 2023
4a6aa9f
awsbindings: Match typo corrections in schema
dpwdec Apr 19, 2023
d775f18
awsbindings: Fix SQS permission typo
dpwdec Apr 19, 2023
d2d9da5
awsbindings: Match typo fix in bindings
dpwdec Apr 19, 2023
a4b440e
awsbindings: Replace ops subobjects with updated
dpwdec Apr 19, 2023
504dc1e
awsbindings: Replace ops version description and default
dpwdec Apr 19, 2023
08a5bfd
awsbindings: Update binding version with default
dpwdec Apr 19, 2023
f11a17d
awsbindings: Update binding version with default
dpwdec Apr 19, 2023
ce32e23
awsbindings: Fix typo
dpwdec Apr 19, 2023
31d0df8
awsbindings: Fix schema typo
dpwdec Apr 19, 2023
9cc5f83
awsbindings: Add requirement for consumers to match spec
dpwdec Apr 19, 2023
4e946c5
awsbindings: Move misplaced consumer description
dpwdec Apr 19, 2023
d78083c
awsbindings: Add missing question mark
dpwdec Apr 19, 2023
c988dbd
awsbindings: Keep ref and descriptor consistent
dpwdec Apr 19, 2023
e9d2979
awsbindings: Make redrive policy casing consistent
dpwdec Apr 20, 2023
2699386
awsbindings: Correct MRC description
dpwdec Apr 20, 2023
4bb2c4f
awsbindings: Fix DLQ descriptions
dpwdec Apr 20, 2023
df95b2f
awsbindings: Fix spacing
dpwdec Apr 20, 2023
1dedbbe
awsbindings: Fix casing
dpwdec Apr 20, 2023
2912e3b
awsbindings: Fix casing on spec
dpwdec Apr 20, 2023
87c0756
Merge pull request #10 from dpwdec/aws-bindings-schemas
iancooper Apr 25, 2023
2417fff
Merge branch 'master' into aws-bindings
iancooper Apr 25, 2023
bd26fa4
change SNS type property to ordering
dpwdec May 15, 2023
f5b6060
update consumer protocol description
dpwdec May 15, 2023
a9fbb73
correct fifo requirement
dpwdec May 15, 2023
8c637f4
address deduplication wording
dpwdec May 15, 2023
0f947a6
fix statements list link
dpwdec May 15, 2023
343fe18
add example for sns operation
dpwdec May 15, 2023
bd462c5
remove trailing comma
dpwdec May 15, 2023
891a4ec
add SQS channel example
dpwdec May 15, 2023
45a5181
add examples
dpwdec May 15, 2023
c6df5d8
Merge pull request #12 from dpwdec/aws-bindings-improvements-2
iancooper May 15, 2023
279a08c
make binding definitions extensible
dpwdec May 18, 2023
5491c71
correct binding examples
dpwdec May 19, 2023
3e13191
add dpwdec as sns/sqs codeowner
dpwdec May 19, 2023
604f8ff
fix example
dpwdec May 19, 2023
32f6e8c
Merge pull request #14 from dpwdec/aws-bindings-improvements-3
iancooper May 19, 2023
bf3d591
remove queue ref
dpwdec Jun 8, 2023
3f3dc89
Merge pull request #15 from dpwdec/aws-binding-improvements-4
iancooper Jun 8, 2023
49dc0b2
reword descriptions to be declarative
dpwdec Jun 12, 2023
916ce97
Merge pull request #16 from dpwdec/aws-bindings-improvements-5
iancooper Jun 13, 2023
9b4d174
Delete .DS_Store
dpwdec Jun 28, 2023
3fa08af
Merge pull request #18 from dpwdec/patch-1
iancooper Jun 28, 2023
7d089e6
feat: migrate conventions to PR #211
dpwdec Jul 3, 2023
25c0134
Merge pull request #19 from dpwdec/aws-bindings-improvements-6
iancooper Jul 3, 2023
38a9a3c
Merge branch 'master' into aws-bindings
derberg Jul 17, 2023
edf0563
feat: update CODEOWNERS to include iancooper
dpwdec Jul 18, 2023
b780cca
Merge pull request #20 from dpwdec/aws-bindings-improvements-7
iancooper Jul 19, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,6 @@
/googlepubsub/ @whitlockjc
/solace/ @damaru-inc @CameronRushton
/pulsar/ @VisualBean
/sns/ @dpwdec @iancooper
/sqs/ @dpwdec @iancooper
*.json @KhudaDad414
273 changes: 269 additions & 4 deletions sns/README.md

Large diffs are not rendered by default.

Binary file added sns/SNS-HTTP.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added sns/SNS-SQS-Pub-Sub.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
150 changes: 150 additions & 0 deletions sns/json_schemas/channel.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://asyncapi.com/bindings/sns/channel.json",
"title": "Channel Schema",
"description": "This object contains information about the channel representation in SNS.",
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^x-[\\w\\d\\.\\-\\_]+$": {
"$ref": "https://raw.githubusercontent.com/asyncapi/spec-json-schemas/v2.14.0/schemas/2.4.0.json#/definitions/specificationExtension"
}
},
"properties": {
"name": {
"type": "string",
"description": "The name of the topic. Can be different from the channel name to allow flexibility around AWS resource naming limitations."
},
"ordering": {
"$ref": "#/definitions/ordering"
},
"policy": {
"$ref": "#/definitions/policy"
},
"tags": {
"type": "object",
"description": "Key-value pairs that represent AWS tags on the topic."
},
"bindingVersion": {
"type": "string",
"description": "The version of this binding.",
"default": "latest"
}
},
"required": [
"name"
],
"definitions": {
"ordering": {
"type": "object",
"description": "By default, we assume an unordered SNS topic. This field allows configuration of a FIFO SNS Topic.",
"patternProperties": {
"^x-[\\w\\d\\.\\-\\_]+$": {
"$ref": "https://raw.githubusercontent.com/asyncapi/spec-json-schemas/v2.14.0/schemas/2.4.0.json#/definitions/specificationExtension"
}
},
"properties": {
"type": {
"type": "string",
"description": "Defines the type of SNS Topic.",
"enum": [
"standard",
"FIFO"
]
},
"contentBasedDeduplication": {
"type": "boolean",
"description": "True to turn on de-duplication of messages for a channel."
}
},
"required": [
"type"
]
},
"policy": {
"type": "object",
"description": "The security policy for the SNS Topic.",
"patternProperties": {
"^x-[\\w\\d\\.\\-\\_]+$": {
"$ref": "https://raw.githubusercontent.com/asyncapi/spec-json-schemas/v2.14.0/schemas/2.4.0.json#/definitions/specificationExtension"
}
},
"properties": {
"statements": {
"type": "array",
"description": "An array of statement objects, each of which controls a permission for this topic",
"items": {
"$ref": "#/definitions/statement"
}
}
},
"required": [
"statements"
]
},
"statement": {
"type": "object",
"patternProperties": {
"^x-[\\w\\d\\.\\-\\_]+$": {
"$ref": "https://raw.githubusercontent.com/asyncapi/spec-json-schemas/v2.14.0/schemas/2.4.0.json#/definitions/specificationExtension"
}
},
"properties": {
"effect": {
"type": "string",
"enum": [
"Allow",
"Deny"
]
},
"principal": {
"description": "The AWS account or resource ARN that this statement applies to.",
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"action": {
"description": "The SNS permission being allowed or denied e.g. sns:Publish",
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
}
},
"required": [
"effect",
"principal",
"action"
]
}
},
"examples": [
{
"name": "my-sns-topic",
"policy": {
"statements": [
{
"effect": "Allow",
"principal": "*",
"action": "SNS:Publish"
}
]
}
}
]
}
Loading