OBJECT

WebSubHubNode

WebSubHubNodes implement the W3C WebSub Hub feature. They accept echo.websub messages that contain content that requires publishing to subscribers.

link GraphQL Schema definition

  • type WebSubHubNode implements Node {
  • # The config, in JSON object format (i.e. - dict, map).
  • config: AWSJSON
  • # When and who created.
  • created: AtBy!
  • # The lease duration to apply to subscription requests
  • # that do not specify hub.lease_seconds. Must be greater
  • # than or equal to 300 (the minimum lease seconds allowed
  • # by the hub).
  • defaultLeaseSeconds: Int!
  • # The number of times to attempt delivery to a subscription.
  • # If not provided, the subscriptions will attempt to deliver
  • # a message for 7 days.
  • deliveryRetries: Int
  • # A human-readable description.
  • description: String
  • # The WebSubHub endpoint to give to subscribers. Accepts POST calls
  • # using the WebSub protocol for subscriptions.
  • endpoint: AWSURL!
  • # A Python code string that contains a single top-level function definition.
  • #
  • # This function must have the signature (*, context, request, **kwargs) and return
  • # None or a tuple containing
  • #
  • # an AuthCredentials and BaseUser (or subclasses).
  • #
  • # Mutually exclusive with managedApiAuthenticator.
  • #
  • #
  • # For WebSubHubNodes, the BaseUser subclass returned MUST implement the identity
  • # property
  • #
  • # (this is used to identify the subscriber).
  • inlineApiAuthenticator: String
  • # When and who modified.
  • lastModified: AtBy!
  • # The logging level.
  • loggingLevel: LogLevel
  • # The managedApiAuthenticator. Mutually exclusive with the
  • # inlineApiAuthenticator.
  • #
  • #
  • # For WebSubHubNodes, the BaseUser subclass returned MUST implement the identity
  • # property
  • #
  • # (this is used to identify the subscriber).
  • managedApiAuthenticator: ApiAuthenticatorFunction
  • # The maximum lease duration for a subscription. Must
  • # be greater than or equal to defaultLeaseSeconds.
  • maxLeaseSeconds: Int!
  • # The name.
  • name: String!
  • # A list of the Edges messages are received on.
  • receiveEdges: [Edge]
  • # The MessageType that this Node is capable of receiving.
  • receiveMessageType: MessageType
  • # The list of Python requirements, in pip format.
  • requirements: [String!]
  • # A list of the Edges messages are sent on.
  • sendEdges: [Edge]
  • # The MessageType that this Node is capable of sending.
  • sendMessageType: MessageType
  • # The WebSub signature algorithm used by hub subscriptions
  • # when the subscription provides a secret.
  • signatureAlgorithm: WebSubSignatureAlgorithm!
  • # Is the Node stopped; null == false.
  • stopped: Boolean
  • # The security requirements the hub is enforcing on subscription
  • # requests.
  • subscriptionSecurity: WebSubSubscriptionSecurity
  • # The Tenant.
  • tenant: Tenant!
  • # Deletes this Node and all of its Edges and Subscriptions.
  • Delete: Boolean!
  • # Lists the changes.
  • #
  • # Arguments
  • # endDateTime: The end date/time (inclusive) to list changes for
  • # in ISO8601 format. Defaults to now.
  • # exclusiveStartKey: The lastEvaluatedKey from a previous
  • # ChangeResult. Used when paginating.
  • # limit: Used for limiting the number of results when paginating.
  • # Defaults to "all".
  • # sortAscending: True for ascending results, False for descending
  • # result. Defaults to True.
  • # startDateTime: The start date/time (inclusive) to list changes
  • # for in ISO8601 format. Defaults to the beginning of time.
  • ListChanges(
  • endDateTime: AWSDateTime,
  • exclusiveStartKey: AWSJSON,
  • limit: Int,
  • sortAscending: Boolean,
  • startDateTime: AWSDateTime
  • ): ChangeResult!
  • # Lists log events that are emitted by the inlineProcessor/managedProcessor
  • #
  • # Arguments
  • # endDateTime: The end date/time, inclusive, to list the log
  • # events to. Defaults to now.
  • # filterPattern: The filter pattern to apply, in AWS Cloudwatch
  • # Logs filter pattern format (
  • # https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html
  • # ).
  • # limit: The number of log events to return. Maximum 10,000.
  • # nextToken: The nextToken returned from a previous call to
  • # ListLogEvents.
  • # startDateTime: The start date/time, inclusive, to list the log
  • # events from. Defaults to the beginning of time.
  • ListLogEvents(
  • endDateTime: AWSDateTime,
  • filterPattern: String,
  • limit: Int,
  • nextToken: String,
  • startDateTime: AWSDateTime
  • ): LogEventResults!
  • # Lists WebHubSubscriptionNodes (aka - subscriptions) that this WebSubHubNode
  • #
  • # is managing. You may filter these results by providing callback, topic an/or
  • #
  • # subscriber in any combination (note that callback and topic will return at
  • #
  • # most one result when used together; callback alone SHOULD return a singular
  • # result,
  • #
  • # but that is not enforced by the WebSub standard).
  • #
  • #
  • # callback, subscriber and topic are and'ed together if present
  • #
  • # Arguments
  • # callback: Filter by subscriber callback URL
  • # exclusiveStartKey: The lastEvaluatedKey from a previous result.
  • # limit: The maximum number of items to return.
  • # subscriber: Filter by subscriber
  • # topic: Filter by topic URL
  • ListSubscriptions(
  • callback: AWSURL,
  • exclusiveStartKey: AWSJSON,
  • limit: Int,
  • subscriber: String,
  • topic: AWSURL
  • ): WebSubSubscriptionNodeResult!
  • # Starts a stopped Node. Has no effect on an already running Node.
  • Start: Boolean!
  • # Stops a running Node. Has no effect on an already stopped Node.
  • Stop: Boolean!
  • # Updates the Node and returns it.
  • #
  • # Arguments
  • # config: The config, in JSON object format (i.e. - dict, map).
  • # defaultLeaseSeconds: The lease duration to apply to
  • # subscription requests
  • # that do not specify hub.lease_seconds. Must be greater
  • # than or equal to 300 (the minimum lease seconds allowed
  • # by the hub). Changes will only apply to new subscriptions.
  • # deliveryRetries: The number of times to attempt delivery to a
  • # subscription.
  • # If not provided, the subscriptions will attempt to deliver
  • # a message for 7 days. Changes will only apply to new subscriptions.
  • # description: A human-readable description.
  • # inlineApiAuthenticator: A Python code string that contains a
  • # single top-level function definition.
  • #
  • # This function must have the signature (*, context, request, **kwargs) and return
  • # None or a tuple containing
  • #
  • # an AuthCredentials and BaseUser (or subclasses).
  • #
  • # Mutually exclusive with managedApiAuthenticator.
  • #
  • #
  • # For WebSubHubNodes, the BaseUser subclass returned MUST implement the identity
  • # property
  • #
  • # (this is used to identify the subscriber).
  • # loggingLevel: The logging level.
  • # managedApiAuthenticator: The managedApiAuthenticator. Mutually
  • # exclusive with the inlineApiAuthenticator.
  • #
  • #
  • # For WebSubHubNodes, the BaseUser subclass returned MUST implement the identity
  • # property
  • #
  • # (this is used to identify the subscriber).
  • # maxLeaseSeconds: The maximum lease duration for a subscription.
  • # Must
  • # be greater than or equal to defaultLeaseSeconds. Changes will
  • # only apply to new subscriptions.
  • # requirements: The list of Python requirements, in pip format.
  • # signatureAlgorithm: The WebSub signature algorithm used by hub
  • # subscriptions
  • # when the subscription provides a secret. Changes will apply
  • # to all existing and new subscriptions.
  • # subscriptionSecurity: The security requirements the hub is
  • # enforcing on subscription
  • # requests. Changes will only apply to new subscription requests.
  • Update(
  • config: AWSJSON,
  • defaultLeaseSeconds: Int,
  • deliveryRetries: Int,
  • description: String,
  • inlineApiAuthenticator: String,
  • loggingLevel: LogLevel,
  • managedApiAuthenticator: String,
  • maxLeaseSeconds: Int,
  • requirements: [String!],
  • signatureAlgorithm: WebSubSignatureAlgorithm,
  • subscriptionSecurity: WebSubSubscriptionSecurity
  • ): WebSubHubNode!
  • # Validates the supplied code against the supplied message.
  • #
  • # Arguments
  • # code: The code to validate.
  • # request: The request to use for validation. This is a JSON
  • # representation of a starlette Request object.
  • # loggingLevel: The loggingLevel to use during the validation.
  • # Defaults to INFO.
  • Validate(code: String!, request: AWSJSON!, loggingLevel: LogLevel): ValidationResult!
  • }