Reference documentation and code samples for the Cloud Pub/Sub API class Google::Cloud::PubSub::Subscription::PushConfig.
Configuration for a push delivery endpoint.
Inherits
- Object
Examples
Create a push config:
require "google/cloud/pubsub" pubsub = Google::Cloud::PubSub.new topic = pubsub.topic "my-topic" push_config = Google::Cloud::PubSub::Subscription::PushConfig.new endpoint: "http://example.net/callback" push_config.set_oidc_token "service-account@example.net", "audience-header-value" sub = topic.subscribe "my-subscription", push_config: push_config
Read a push config:
require "google/cloud/pubsub" pubsub = Google::Cloud::PubSub.new sub = pubsub.subscription "my-topic-sub" sub.push_config.endpoint #=> "http://example.com/callback" sub.push_config.authentication.email #=> "user@example.com" sub.push_config.authentication.audience #=> "client-12345"
Update a push config:
require "google/cloud/pubsub" pubsub = Google::Cloud::PubSub.new sub = pubsub.subscription "my-subscription" sub.push_config do |pc| pc.endpoint = "http://example.net/callback" pc.set_oidc_token "user@example.net", "client-67890" end
Methods
#authentication
def authentication() -> OidcToken, nil
The authentication method used by push endpoints to verify the source of push requests.
-
(OidcToken, nil) — An OIDC JWT token if specified,
nil
otherwise.
#authentication=
def authentication=(new_auth)
Sets the authentication method used by push endpoints to verify the source of push requests.
- new_auth (OidcToken, nil) — An authentication value.
#endpoint
def endpoint() -> String
A URL locating the endpoint to which messages should be pushed. For example, a Webhook endpoint might use
https://example.com/push
.
- (String)
#endpoint=
def endpoint=(new_endpoint)
Sets the URL locating the endpoint to which messages should be pushed. For example, a Webhook endpoint might
use https://example.com/push
.
- new_endpoint (String, nil) — New URL value
#initialize
def initialize(endpoint: nil, email: nil, audience: nil) -> PushConfig
Creates a new push configuration.
-
endpoint (String) (defaults to: nil) — A URL locating the endpoint to which messages should be pushed. For
example, a Webhook endpoint might use
https://example.com/push
. -
email (String) (defaults to: nil) — The service account email to be used for generating the OIDC token.
The caller must have the
iam.serviceAccounts.actAs
permission for the service account. -
audience (String) (defaults to: nil) — The audience to be used when generating OIDC token. The audience claim identifies
the recipients that the JWT is intended for. The audience value is a single case-sensitive string. Having
multiple values (array) for the audience field is not supported. More info about the OIDC JWT token
audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3 Note: if not specified, the
endpoint
URL will be used.
- (PushConfig) — a new instance of PushConfig
- (ArgumentError)
#oidc_token?
def oidc_token?() -> Boolean
Checks whether authentication is an OidcToken.
- (Boolean)
#set_oidc_token
def set_oidc_token(email, audience)
Sets the authentication method to use an OidcToken.
- email (String) — Service account email.
- audience (String) — Audience to be used.
#version
def version() -> String
The format of the pushed message. This attribute indicates the version of the data expected by the endpoint. This controls the shape of the pushed message (i.e., its fields and metadata). The endpoint version is based on the version of the Pub/Sub API.
If not present during the Subscription creation, it will default to the version of the API used to make such call.
The possible values for this attribute are:
v1beta1
: uses the push format defined in the v1beta1 Pub/Sub API.v1
orv1beta2
: uses the push format defined in the v1 Pub/Sub API.
- (String)
#version=
def version=(new_version)
Sets the format of the pushed message.
The possible values for this attribute are:
v1beta1
: uses the push format defined in the v1beta1 Pub/Sub API.v1
orv1beta2
: uses the push format defined in the v1 Pub/Sub API.
- new_version (String, nil) — The new version value.