From 47642a7c79075d35076e8710df9926626baa715b Mon Sep 17 00:00:00 2001 From: Damian Pedra Date: Wed, 6 Mar 2024 17:52:55 -0300 Subject: [PATCH 1/8] Publish 47.0.0-SNAPSHOT --- transform/dependencies.properties | 4 ++-- versions.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/transform/dependencies.properties b/transform/dependencies.properties index 90c52db..17a7775 100644 --- a/transform/dependencies.properties +++ b/transform/dependencies.properties @@ -1,4 +1,4 @@ # Leave here for the publication process to detect if amf-transform has to be published! # Because we publish a version of amf-transform for each version of amf-client publish. -amf.apicontract=5.4.9 -amf.rdf=6.4.9 +amf.apicontract=5.5.0-SNAPSHOT +amf.rdf=6.5.0-SNAPSHOT diff --git a/versions.yaml b/versions.yaml index 9476a85..c7795de 100644 --- a/versions.yaml +++ b/versions.yaml @@ -1,2 +1,2 @@ -amf.vocabulary: 46.0.0 -amf.transform: 2.30.0 +amf.vocabulary: 47.0.0-SNAPSHOT +amf.transform: 2.31.0-SNAPSHOT From 1ffad00c75e356788b1f0910072348f3de44a340 Mon Sep 17 00:00:00 2001 From: arielmirra Date: Thu, 4 Apr 2024 14:41:22 -0300 Subject: [PATCH 2/8] publish 47.0.0-RC.0 --- Jenkinsfile | 2 ++ transform/dependencies.properties | 4 ++-- versions.yaml | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 50a5d54..96f15aa 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -62,6 +62,7 @@ pipeline { anyOf { branch 'master' branch 'develop' + branch 'release/*' } } steps { @@ -80,6 +81,7 @@ pipeline { anyOf { branch 'master' branch 'develop' + branch 'release/*' } } steps { diff --git a/transform/dependencies.properties b/transform/dependencies.properties index 17a7775..54659b2 100644 --- a/transform/dependencies.properties +++ b/transform/dependencies.properties @@ -1,4 +1,4 @@ # Leave here for the publication process to detect if amf-transform has to be published! # Because we publish a version of amf-transform for each version of amf-client publish. -amf.apicontract=5.5.0-SNAPSHOT -amf.rdf=6.5.0-SNAPSHOT +amf.apicontract=5.5.0-RC.0 +amf.rdf=6.5.0-RC.1 diff --git a/versions.yaml b/versions.yaml index c7795de..f82c0e0 100644 --- a/versions.yaml +++ b/versions.yaml @@ -1,2 +1,2 @@ -amf.vocabulary: 47.0.0-SNAPSHOT -amf.transform: 2.31.0-SNAPSHOT +amf.vocabulary: 47.0.0-RC.0 +amf.transform: 2.31.0-RC.0 From 70100459e51e18daebc24d61c5fd7f9f2abfc964 Mon Sep 17 00:00:00 2001 From: arielmirra Date: Thu, 4 Apr 2024 17:00:11 -0300 Subject: [PATCH 3/8] add new async 2.x interfaces --- .../dialects/canonical_webapi_spec.yaml | 230 ++++++++++++++++++ .../resources/vocabularies/api_binding.yaml | 144 +++++++++++ 2 files changed, 374 insertions(+) diff --git a/vocabulary/src/main/resources/dialects/canonical_webapi_spec.yaml b/vocabulary/src/main/resources/dialects/canonical_webapi_spec.yaml index 4a2174f..bff8b00 100644 --- a/vocabulary/src/main/resources/dialects/canonical_webapi_spec.yaml +++ b/vocabulary/src/main/resources/dialects/canonical_webapi_spec.yaml @@ -1203,6 +1203,97 @@ nodeMappings: range: DomainElementUnion + GooglePubSubChannelBinding: + classTerm: apiBinding.GooglePubSubChannelBinding + extends: ChannelBinding + mapping: + labels: + propertyTerm: apiBinding.labels + range: ObjectNode + messageRetentionDuration: + propertyTerm: apiBinding.messageRetentionDuration + range: string + messageStoragePolicy: + propertyTerm: apiBinding.messageStoragePolicy + range: GooglePubSubMessageStoragePolicy + schemaSettings: + propertyTerm: apiBinding.schemaSettings + range: GooglePubSubSchemaSettings + topic: + propertyTerm: apiBinding.topic + range: string + bindingVersion: + propertyTerm: apiBinding.bindingVersion + range: string + + + GooglePubSubMessageBinding: + classTerm: apiBinding.GooglePubSubMessageBinding + extends: MessageBinding + mapping: + attributes: + propertyTerm: apiBinding.attribute + range: ObjectNode + orderingKey: + propertyTerm: apiBinding.orderingKey + range: string + schema: + propertyTerm: apiBinding.schemaDefinition + range: GooglePubSubSchemaDefinition + bindingVersion: + propertyTerm: apiBinding.bindingVersion + range: string + + + GooglePubSubMessageStoragePolicy: + classTerm: apiBinding.GooglePubSubMessageStoragePolicy + mapping: + allowedPersistenceRegions: + propertyTerm: apiBinding.allowedPersistenceRegions + range: string + allowMultiple: true + designAnnotations: + propertyTerm: doc.designAnnotation + range: DomainExtension + allowMultiple: true + + + GooglePubSubSchemaDefinition: + classTerm: apiBinding.GooglePubSubSchemaDefinition + mapping: + name: + propertyTerm: apiBinding.name + range: string + type: + propertyTerm: apiBinding.type + range: string + designAnnotations: + propertyTerm: doc.designAnnotation + range: DomainExtension + allowMultiple: true + + + GooglePubSubSchemaSettings: + classTerm: apiBinding.GooglePubSubSchemaSettings + mapping: + encoding: + propertyTerm: apiBinding.encoding + range: string + firstRevisionId: + propertyTerm: apiBinding.firstRevisionId + range: string + lastRevisionId: + propertyTerm: apiBinding.lastRevisionId + range: string + name: + propertyTerm: apiBinding.name + range: string + designAnnotations: + propertyTerm: doc.designAnnotation + range: DomainExtension + allowMultiple: true + + HttpAPIKeySettings: classTerm: security.HttpApiKeySettings extends: Settings @@ -2193,6 +2284,64 @@ nodeMappings: allowMultiple: true + PulsarChannelBinding: + classTerm: apiBinding.PulsarChannelBinding + extends: ChannelBinding + mapping: + namespace: + propertyTerm: apiBinding.namespace + range: string + persistence: + propertyTerm: apiBinding.persistence + range: string + compaction: + propertyTerm: apiBinding.compaction + range: integer + geo-replication: + propertyTerm: apiBinding.geo-replication + range: string + allowMultiple: true + retention: + propertyTerm: apiBinding.retention + range: PulsarChannelRetention + ttl: + propertyTerm: apiBinding.ttl + range: integer + deduplication: + propertyTerm: apiBinding.deduplication + range: boolean + bindingVersion: + propertyTerm: apiBinding.bindingVersion + range: string + + + PulsarChannelRetention: + classTerm: apiBinding.PulsarChannelRetention + mapping: + time: + propertyTerm: apiBinding.time + range: integer + size: + propertyTerm: apiBinding.size + range: integer + designAnnotations: + propertyTerm: doc.designAnnotation + range: DomainExtension + allowMultiple: true + + + PulsarServerBinding: + classTerm: apiBinding.PulsarServerBinding + extends: ServerBinding + mapping: + tenant: + propertyTerm: apiBinding.tenant + range: string + bindingVersion: + propertyTerm: apiBinding.bindingVersion + range: string + + RecursiveShape: classTerm: raml-shapes.RecursiveShape extends: Shape @@ -2779,6 +2928,87 @@ nodeMappings: range: ShapePayload + SolaceOperationBinding: + classTerm: apiBinding.SolaceOperationBinding + extends: OperationBinding + mapping: + destinations: + propertyTerm: apiBinding.destinations + range: SolaceOperationDestination + allowMultiple: true + bindingVersion: + propertyTerm: apiBinding.bindingVersion + range: string + + + SolaceOperationDestination: + classTerm: apiBinding.SolaceOperationDestination + mapping: + destinationType: + propertyTerm: apiBinding.destinationType + range: string + deliveryMode: + propertyTerm: apiBinding.deliveryMode + range: string + queue: + propertyTerm: apiBinding.queue + range: SolaceOperationQueue + topic: + propertyTerm: apiBinding.topic + range: SolaceOperationTopic + designAnnotations: + propertyTerm: doc.designAnnotation + range: DomainExtension + allowMultiple: true + + + SolaceOperationQueue: + classTerm: apiBinding.SolaceOperationQueue + mapping: + topicSubscriptions: + propertyTerm: apiBinding.topicSubscriptions + range: string + allowMultiple: true + accessType: + propertyTerm: apiBinding.accessType + range: string + maxMsgSpoolSize: + propertyTerm: apiBinding.maxMsgSpoolSize + range: string + maxTtl: + propertyTerm: apiBinding.maxTtl + range: string + designAnnotations: + propertyTerm: doc.designAnnotation + range: DomainExtension + allowMultiple: true + + + SolaceOperationTopic: + classTerm: apiBinding.SolaceOperationTopic + mapping: + topicSubscriptions: + propertyTerm: apiBinding.topicSubscriptions + range: string + allowMultiple: true + designAnnotations: + propertyTerm: doc.designAnnotation + range: DomainExtension + allowMultiple: true + + + SolaceServerBinding: + classTerm: apiBinding.SolaceServerBinding + extends: ServerBinding + mapping: + msgVpn: + propertyTerm: apiBinding.msgVpn + range: string + bindingVersion: + propertyTerm: apiBinding.bindingVersion + range: string + + Tag: classTerm: apiContract.Tag mapping: diff --git a/vocabulary/src/main/resources/vocabularies/api_binding.yaml b/vocabulary/src/main/resources/vocabularies/api_binding.yaml index ece242c..b537a40 100644 --- a/vocabulary/src/main/resources/vocabularies/api_binding.yaml +++ b/vocabulary/src/main/resources/vocabularies/api_binding.yaml @@ -3,6 +3,7 @@ vocabulary: apiBinding base: http://a.ml/vocabularies/apiBinding# usage: API binding vocabulary uses: + data: data_model.yaml shacl: external/shacl.yaml classTerms: Amqp091ChannelBinding: @@ -35,6 +36,18 @@ classTerms: - ChannelBinding - OperationBinding - MessageBinding + GooglePubSubChannelBinding: + displayName: GooglePubSubChannelBinding + extends: ChannelBinding + GooglePubSubMessageBinding: + displayName: GooglePubSubMessageBinding + extends: MessageBinding + GooglePubSubMessageStoragePolicy: + displayName: GooglePubSubMessageStoragePolicy + GooglePubSubSchemaDefinition: + displayName: GooglePubSubSchemaDefinition + GooglePubSubSchemaSettings: + displayName: GooglePubSubSchemaSettings HttpMessageBinding: displayName: HttpMessageBinding extends: MessageBinding @@ -81,18 +94,50 @@ classTerms: displayName: OperationBinding OperationBindings: displayName: OperationBindings + PulsarChannelBinding: + displayName: PulsarChannelBinding + extends: ChannelBinding + PulsarChannelRetention: + displayName: PulsarChannelRetention + PulsarServerBinding: + displayName: PulsarServerBinding + extends: ServerBinding ServerBinding: displayName: ServerBinding ServerBindings: displayName: ServerBindings + SolaceOperationBinding: + displayName: SolaceOperationBinding + extends: OperationBinding + SolaceOperationDestination: + displayName: SolaceOperationDestination + SolaceOperationQueue: + displayName: SolaceOperationQueue + SolaceOperationTopic: + displayName: SolaceOperationTopic + SolaceServerBinding: + displayName: SolaceServerBinding + extends: ServerBinding WebSocketsChannelBinding: displayName: WebSocketsChannelBinding extends: ChannelBinding propertyTerms: + accessType: + displayName: accessType + description: "'exclusive' or 'nonexclusive'. Only applicable when destinationType is 'queue'." + range: string ack: displayName: ack description: Whether the consumer should ack the message or not range: boolean + allowedPersistenceRegions: + displayName: allowedPersistenceRegions + description: A list of IDs of GCP regions where messages that are published to the topic may be persisted in storage + range: string + attribute: + displayName: attributes + description: Attributes for this message + range: data.Object autoDelete: displayName: autoDelete description: Whether the exchange should be deleted when the last queue is unbound from it @@ -133,10 +178,18 @@ propertyTerms: displayName: clientId description: Schema that defines the id of the consumer inside a consumer group range: shacl.Shape + compaction: + displayName: compaction + description: Topic compaction threshold given in Megabytes. + range: integer contentEncoding: displayName: contentEncoding description: MIME encoding for the message content range: string + deduplication: + displayName: deduplication + description: Message deduplication. When true, it ensures that each message produced on Pulsar topics is persisted to disk only once. + range: boolean deliveryMode: displayName: deliveryMode description: Delivery mode of the message @@ -149,6 +202,9 @@ propertyTerms: displayName: destinationType description: The type of destination (either exchange or queue or fifo-queue). range: string + destinations: + displayName: destinations + range: SolaceOperationDestination durable: displayName: durable description: Whether the exchange should survive broker restarts or not @@ -157,6 +213,10 @@ propertyTerms: displayName: durablePermitted description: Defines if the subscription may be durable. range: boolean + encoding: + displayName: encoding + description: "The encoding of the message " + range: string exchange: displayName: exchange description: Defines the exchange properties @@ -173,6 +233,14 @@ propertyTerms: displayName: expiry description: This is a period of time expressed in milliseconds and set by the application that puts the message. range: integer + firstRevisionId: + displayName: firstRevisionId + description: The minimum (inclusive) revision allowed for validating messages + range: string + geo-replication: + displayName: geo-replication + description: A list of clusters the topic is replicated to. + range: string groupId: displayName: groupId description: Schema that defines the id of the consumer group @@ -197,10 +265,18 @@ propertyTerms: displayName: keepAlive description: Interval in seconds of the longest period of time the broker and the client can endure without sending a message range: integer + labels: + displayName: labels + description: "An object of key-value pairs " + range: data.Object lastMsgRetained: displayName: lastMsgRetained description: Defines if the last message published will be made available to new subscriptions. range: boolean + lastRevisionId: + displayName: lastRevisionId + description: The maximum (inclusive) revision allowed for validating messages + range: string lastWill: displayName: lastWill description: Last Will and Testament configuration @@ -213,6 +289,14 @@ propertyTerms: displayName: maxMsgLength description: The maximum length of the physical message (in bytes) accepted by the Topic or Queue. Messages produced that are greater in size than this value may fail to be delivered. range: integer + maxMsgSpoolSize: + displayName: maxMsgSpoolSize + description: The maximum amount of message spool that the given queue may use. Only applicable when destinationType is 'queue'. + range: string + maxTtl: + displayName: maxTtl + description: The maximum TTL to apply to messages to be spooled. Only applicable when destinationType is 'queue'. + range: string message: displayName: message description: Message used to notify other clients about an ungracefully disconnected client. @@ -221,6 +305,14 @@ propertyTerms: displayName: key description: Schema that defines the message key range: shacl.Shape + messageRetentionDuration: + displayName: messageRetentionDuration + description: Indicates the minimum duration to retain a message after it is published to the topic + range: string + messageStoragePolicy: + displayName: messageStoragePolicy + description: Policy constraining the set of Google Cloud Platform regions where messages published to the topic may be stored + range: GooglePubSubMessageStoragePolicy messageType: displayName: messageType description: Application-specific message type @@ -229,10 +321,22 @@ propertyTerms: displayName: method description: The HTTP method to use when establishing the connection range: string + msgVpn: + displayName: msgVpn + description: The Virtual Private Network name on the Solace broker. + range: string multiEndpointServer: displayName: multiEndpointServer description: If multiEndpointServer is true then multiple connections can be workload balanced and applications should not make assumptions as to where messages are processed. Where message ordering, or affinity to specific message resources is necessary, a single endpoint (multiEndpointServer = false) may be required. range: boolean + name: + displayName: name + description: Name of the schema that messages published should be validated against + range: string + namespace: + displayName: namespace + description: The namespace the channel is associated with. + range: string objectName: displayName: objectName description: The name of the IBM MQ topic object. @@ -241,6 +345,14 @@ propertyTerms: displayName: type description: Type of operation range: string + orderingKey: + displayName: orderingKey + description: If non-empty, identifies related messages for which publish order should be respected + range: string + persistence: + displayName: persistence + description: Persistence of the topic in Pulsar. It MUST be either persistent or non-persistent. + range: string priority: displayName: priority description: A priority for the message @@ -265,10 +377,34 @@ propertyTerms: displayName: retain description: Whether the broker should retain the Last Will and Testament message or not range: boolean + retention: + displayName: retention + description: Topic retention policy. + range: PulsarChannelRetention + schemaDefinition: + displayName: schema + description: Define Schema + range: GooglePubSubSchemaDefinition + schemaSettings: + displayName: schemaSettings + description: Settings for validating messages published against a schema + range: GooglePubSubSchemaSettings + size: + displayName: size + description: Size given in MegaBytes. Defaults to 0 + range: integer string: displayName: string description: The value of the IBM MQ topic string to be used. range: string + tenant: + displayName: tenant + description: The pulsar tenant. If omitted, "public" MUST be assumed. + range: string + time: + displayName: time + description: Time given in Minutes. Defaults to 0 + range: integer timestamp: displayName: timestamp description: Whether the message should include a timestamp or not @@ -277,6 +413,14 @@ propertyTerms: displayName: topic description: The topic where the Last Will and Testament message will be sent range: string + topicSubscriptions: + displayName: topicSubscriptions + description: A list of topics that the client subscribes to, only applicable when destinationType is 'topic'. If none is given, the client subscribes to the topic as represented by the channel name. + range: string + ttl: + displayName: ttl + description: Message time-to-live in seconds. + range: integer type: displayName: type description: Binding for a corresponding known type From ab4ce2a69a59e984de8607adacdeb1b6a1a59a65 Mon Sep 17 00:00:00 2001 From: arielmirra Date: Fri, 5 Apr 2024 12:19:19 -0300 Subject: [PATCH 4/8] adopt amf 5.5.0-RC.1 --- transform/dependencies.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/transform/dependencies.properties b/transform/dependencies.properties index 54659b2..f799d55 100644 --- a/transform/dependencies.properties +++ b/transform/dependencies.properties @@ -1,4 +1,4 @@ # Leave here for the publication process to detect if amf-transform has to be published! # Because we publish a version of amf-transform for each version of amf-client publish. -amf.apicontract=5.5.0-RC.0 +amf.apicontract=5.5.0-RC.1 amf.rdf=6.5.0-RC.1 From ba849e1bd0feec8d553f55855792e092de2b1c0b Mon Sep 17 00:00:00 2001 From: Loose Date: Mon, 8 Apr 2024 11:21:42 -0300 Subject: [PATCH 5/8] W-14916894 - Adopt amf 5.5.0-RC.2 --- transform/dependencies.properties | 2 +- versions.yaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/transform/dependencies.properties b/transform/dependencies.properties index f799d55..3fdf38f 100644 --- a/transform/dependencies.properties +++ b/transform/dependencies.properties @@ -1,4 +1,4 @@ # Leave here for the publication process to detect if amf-transform has to be published! # Because we publish a version of amf-transform for each version of amf-client publish. -amf.apicontract=5.5.0-RC.1 +amf.apicontract=5.5.0-RC.2 amf.rdf=6.5.0-RC.1 diff --git a/versions.yaml b/versions.yaml index f82c0e0..88e09a4 100644 --- a/versions.yaml +++ b/versions.yaml @@ -1,2 +1,2 @@ -amf.vocabulary: 47.0.0-RC.0 -amf.transform: 2.31.0-RC.0 +amf.vocabulary: 47.0.0-RC.1 +amf.transform: 2.31.0-RC.1 From 860838be77301918bf1c1bf9962cfedfe0354008 Mon Sep 17 00:00:00 2001 From: arielmirra Date: Mon, 8 Apr 2024 18:38:28 -0300 Subject: [PATCH 6/8] adopt amf 5.5.0-RC.3 --- transform/dependencies.properties | 2 +- versions.yaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/transform/dependencies.properties b/transform/dependencies.properties index 3fdf38f..f59240a 100644 --- a/transform/dependencies.properties +++ b/transform/dependencies.properties @@ -1,4 +1,4 @@ # Leave here for the publication process to detect if amf-transform has to be published! # Because we publish a version of amf-transform for each version of amf-client publish. -amf.apicontract=5.5.0-RC.2 +amf.apicontract=5.5.0-RC.3 amf.rdf=6.5.0-RC.1 diff --git a/versions.yaml b/versions.yaml index 88e09a4..bc1a8fd 100644 --- a/versions.yaml +++ b/versions.yaml @@ -1,2 +1,2 @@ -amf.vocabulary: 47.0.0-RC.1 -amf.transform: 2.31.0-RC.1 +amf.vocabulary: 47.0.0-RC.2 +amf.transform: 2.31.0-RC.2 From e2ea1a4638c84f1f00e726c34b3fd98595ef645c Mon Sep 17 00:00:00 2001 From: arielmirra Date: Thu, 11 Apr 2024 17:08:50 -0300 Subject: [PATCH 7/8] adopt amf 5.5.0-RC.5 --- transform/dependencies.properties | 4 ++-- versions.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/transform/dependencies.properties b/transform/dependencies.properties index f59240a..6aebf72 100644 --- a/transform/dependencies.properties +++ b/transform/dependencies.properties @@ -1,4 +1,4 @@ # Leave here for the publication process to detect if amf-transform has to be published! # Because we publish a version of amf-transform for each version of amf-client publish. -amf.apicontract=5.5.0-RC.3 -amf.rdf=6.5.0-RC.1 +amf.apicontract=5.5.0-RC.5 +amf.rdf=6.5.0-RC.2 diff --git a/versions.yaml b/versions.yaml index bc1a8fd..0345523 100644 --- a/versions.yaml +++ b/versions.yaml @@ -1,2 +1,2 @@ -amf.vocabulary: 47.0.0-RC.2 -amf.transform: 2.31.0-RC.2 +amf.vocabulary: 47.0.0-RC.3 +amf.transform: 2.31.0-RC.3 From 9a066d41ae84f7548c135bd6f23d98013c0eca57 Mon Sep 17 00:00:00 2001 From: arielmirra Date: Fri, 12 Apr 2024 16:20:02 -0300 Subject: [PATCH 8/8] publish vocabulary 47.0.0 and transform 2.31.0 --- Jenkinsfile | 2 -- transform/dependencies.properties | 4 ++-- versions.yaml | 4 ++-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 96f15aa..50a5d54 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -62,7 +62,6 @@ pipeline { anyOf { branch 'master' branch 'develop' - branch 'release/*' } } steps { @@ -81,7 +80,6 @@ pipeline { anyOf { branch 'master' branch 'develop' - branch 'release/*' } } steps { diff --git a/transform/dependencies.properties b/transform/dependencies.properties index 6aebf72..558ab2a 100644 --- a/transform/dependencies.properties +++ b/transform/dependencies.properties @@ -1,4 +1,4 @@ # Leave here for the publication process to detect if amf-transform has to be published! # Because we publish a version of amf-transform for each version of amf-client publish. -amf.apicontract=5.5.0-RC.5 -amf.rdf=6.5.0-RC.2 +amf.apicontract=5.5.0 +amf.rdf=6.5.0 diff --git a/versions.yaml b/versions.yaml index 0345523..ab91eee 100644 --- a/versions.yaml +++ b/versions.yaml @@ -1,2 +1,2 @@ -amf.vocabulary: 47.0.0-RC.3 -amf.transform: 2.31.0-RC.3 +amf.vocabulary: 47.0.0 +amf.transform: 2.31.0