Documentation
¶
Overview ¶
Package notification provides support for interacting with HSDP Notification services
Index ¶
- Constants
- Variables
- type Client
- type Config
- type ConfirmRequest
- type Event
- type GetOptions
- type OptionFunc
- type Producer
- type ProducerService
- func (p *ProducerService) CreateProducer(producer Producer) (*Producer, *Response, error)
- func (p *ProducerService) DeleteProducer(producer Producer) (bool, *Response, error)
- func (p *ProducerService) GetProducer(id string) (*Producer, *Response, error)
- func (p *ProducerService) GetProducers(opt *GetOptions, options ...OptionFunc) ([]Producer, *Response, error)
- type PublishRequest
- type PublishResponse
- type Response
- type Subscriber
- type SubscriberService
- func (p *SubscriberService) CreateSubscriber(subscriber Subscriber) (*Subscriber, *Response, error)
- func (p *SubscriberService) DeleteSubscriber(subscriber Subscriber) (bool, *Response, error)
- func (p *SubscriberService) GetSubscriber(id string) (*Subscriber, *Response, error)
- func (p *SubscriberService) GetSubscribers(opt *GetOptions, options ...OptionFunc) ([]Subscriber, *Response, error)
- type Subscription
- type SubscriptionService
- func (p *SubscriptionService) ConfirmSubscription(confirm ConfirmRequest) (*Subscription, *Response, error)
- func (p *SubscriptionService) CreateSubscription(subscription Subscription) (*Subscription, *Response, error)
- func (p *SubscriptionService) DeleteSubscription(subscription Subscription) (bool, *Response, error)
- func (p *SubscriptionService) GetSubscription(id string) (*Subscription, *Response, error)
- func (p *SubscriptionService) GetSubscriptions(opt *GetOptions, options ...OptionFunc) ([]Subscription, *Response, error)
- type Topic
- type TopicService
- func (p *TopicService) CreateTopic(topic Topic) (*Topic, *Response, error)
- func (p *TopicService) DeleteTopic(topic Topic) (bool, *Response, error)
- func (p *TopicService) GetTopic(id string) (*Topic, *Response, error)
- func (p *TopicService) GetTopics(opt *GetOptions, options ...OptionFunc) ([]Topic, *Response, error)
- func (p *TopicService) UpdateTopic(topic Topic) (*Topic, *Response, error)
Constants ¶
const (
APIVersion = "2"
)
Variables ¶
var ( ErrNotificationURLCannotBeEmpty = errors.New("base Notification URL cannot be empty") ErrEmptyResult = errors.New("empty result") )
Errors
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// User agent used when communicating with the HSDP Notification API
UserAgent string
Producer *ProducerService
Subscription *SubscriptionService
Subscriber *SubscriberService
Topic *TopicService
// contains filtered or unexported fields
}
A Client manages communication with HSDP Notification API
func NewClient ¶
NewClient returns a new HSDP Notification API client. A configured IAM client must be provided as the underlying API requires an IAM token
func (*Client) Publish ¶
func (c *Client) Publish(request PublishRequest) (*PublishResponse, *Response, error)
Publish publishes a message to a topic
func (*Client) SetNotificationURL ¶
SetNotificationURL sets the Notification URL for API requests
func (*Client) TokenRefresh ¶
TokenRefresh forces a refresh of the IAM access token
type Config ¶
type Config struct {
Region string
Environment string
OrganizationID string
NotificationURL string
Type string
TimeZone string
DebugLog io.Writer
Retry int
}
Config contains the configuration of a client
type ConfirmRequest ¶
type Event ¶ added in v0.39.1
type Event struct {
Type string `json:"Type"`
MessageID string `json:"MessageId"`
Token string `json:"Token"`
TopicARN string `json:"TopicArn"`
Message string `json:"Message"`
Subject string `json:"Subject,omitempty"`
SubscribeURL string `json:"SubscribeURL,omitempty"`
Timestamp time.Time `json:"Timestamp"`
SignatureVersion string `json:"SignatureVersion"`
Signature string `json:"Signature"`
SigningCertURL string `json:"SigningCertURL"`
}
Event is an Amazon SNS HTTP message on which HSDP Notification is currently based on
type GetOptions ¶
type GetOptions struct {
ID *string `url:"_id,omitempty"`
ManagedOrganizationID *string `url:"managedOrganizationId,omitempty"`
ManagedOrganization *string `url:"managedOrganization,omitempty"`
ProducerProductName *string `url:"producerProductName,omitempty"`
ProducerServiceName *string `url:"producerServiceName,omitempty"`
Scope *string `url:"scope,omitempty"`
Name *string `url:"name,omitempty"`
ProducerID *string `url:"producerId,omitempty"`
}
GetOptions describes the fields on which you can search for producers
type OptionFunc ¶
OptionFunc is the function signature function for options
type Producer ¶
type Producer struct {
ID string `json:"_id,omitempty"`
ResourceType string `json:"resourceType,omitempty"`
ManagingOrganizationID string `json:"managingOrganizationId" validate:"required"`
ManagingOrganization string `json:"managingOrganization,omitempty"`
ProducerProductName string `json:"producerProductName" validate:"required"`
ProducerServiceName string `json:"producerServiceName" validate:"required"`
ProducerServiceInstanceName string `json:"producerServiceInstanceName,omitempty" validate:"required"`
ProducerServiceBaseURL string `json:"producerServiceBaseUrl" validate:"required"`
ProducerServicePathURL string `json:"producerServicePathUrl" validate:"required"`
Description string `json:"description,omitempty"`
}
type ProducerService ¶
type ProducerService struct {
// contains filtered or unexported fields
}
func (*ProducerService) CreateProducer ¶
func (p *ProducerService) CreateProducer(producer Producer) (*Producer, *Response, error)
func (*ProducerService) DeleteProducer ¶
func (p *ProducerService) DeleteProducer(producer Producer) (bool, *Response, error)
func (*ProducerService) GetProducer ¶
func (p *ProducerService) GetProducer(id string) (*Producer, *Response, error)
func (*ProducerService) GetProducers ¶
func (p *ProducerService) GetProducers(opt *GetOptions, options ...OptionFunc) ([]Producer, *Response, error)
type PublishRequest ¶
type PublishResponse ¶
type Response ¶
Response is a HSDP IAM API response. This wraps the standard http.Response returned from HSDP IAM and provides convenient access to things like errors
type Subscriber ¶
type Subscriber struct {
ID string `json:"_id,omitempty"`
ResourceType string `json:"resourceType,omitempty"`
ManagingOrganizationID string `json:"managingOrganizationId" validate:"required"`
ManagingOrganization string `json:"managingOrganization,omitempty"`
SubscriberProductName string `json:"subscriberProductName" validate:"required"`
SubscriberServicename string `json:"subscriberServiceName" validate:"required"`
SubscriberServiceinstanceName string `json:"subscriberServiceInstanceName,omitempty"`
SubscriberServiceBaseURL string `json:"subscriberServiceBaseUrl" validate:"required"`
SubscriberServicePathURL string `json:"subscriberServicePathUrl" validate:"required"`
Description string `json:"description,omitempty"`
}
type SubscriberService ¶
type SubscriberService struct {
// contains filtered or unexported fields
}
func (*SubscriberService) CreateSubscriber ¶
func (p *SubscriberService) CreateSubscriber(subscriber Subscriber) (*Subscriber, *Response, error)
func (*SubscriberService) DeleteSubscriber ¶
func (p *SubscriberService) DeleteSubscriber(subscriber Subscriber) (bool, *Response, error)
func (*SubscriberService) GetSubscriber ¶
func (p *SubscriberService) GetSubscriber(id string) (*Subscriber, *Response, error)
func (*SubscriberService) GetSubscribers ¶
func (p *SubscriberService) GetSubscribers(opt *GetOptions, options ...OptionFunc) ([]Subscriber, *Response, error)
type Subscription ¶
type Subscription struct {
ID string `json:"_id,omitempty"`
ResourceType string `json:"resourceType,omitempty"`
TopicID string `json:"topicId" validate:"required"`
SubscriberID string `json:"subscriberId" validate:"required"`
SubscriptionEndpoint string `json:"subscriptionEndpoint" validate:"required"`
SubscriptionARN string `json:"subscriptionArn,omitempty"`
}
type SubscriptionService ¶
type SubscriptionService struct {
// contains filtered or unexported fields
}
func (*SubscriptionService) ConfirmSubscription ¶
func (p *SubscriptionService) ConfirmSubscription(confirm ConfirmRequest) (*Subscription, *Response, error)
func (*SubscriptionService) CreateSubscription ¶
func (p *SubscriptionService) CreateSubscription(subscription Subscription) (*Subscription, *Response, error)
func (*SubscriptionService) DeleteSubscription ¶
func (p *SubscriptionService) DeleteSubscription(subscription Subscription) (bool, *Response, error)
func (*SubscriptionService) GetSubscription ¶
func (p *SubscriptionService) GetSubscription(id string) (*Subscription, *Response, error)
func (*SubscriptionService) GetSubscriptions ¶
func (p *SubscriptionService) GetSubscriptions(opt *GetOptions, options ...OptionFunc) ([]Subscription, *Response, error)
type Topic ¶
type Topic struct {
ID string `json:"_id,omitempty"`
ResourceType string `json:"resourceType,omitempty"`
Name string `json:"name" validate:"required"`
ProducerID string `json:"producerId" validate:"required"`
Scope string `json:"scope" validate:"required"`
AllowedScopes []string `json:"allowedScopes,omitempty"`
IsAuditable bool `json:"isAuditable,omitempty"`
Description string `json:"description,omitempty"`
}
type TopicService ¶
type TopicService struct {
// contains filtered or unexported fields
}
func (*TopicService) CreateTopic ¶
func (p *TopicService) CreateTopic(topic Topic) (*Topic, *Response, error)
func (*TopicService) DeleteTopic ¶
func (p *TopicService) DeleteTopic(topic Topic) (bool, *Response, error)
func (*TopicService) GetTopic ¶
func (p *TopicService) GetTopic(id string) (*Topic, *Response, error)
func (*TopicService) GetTopics ¶
func (p *TopicService) GetTopics(opt *GetOptions, options ...OptionFunc) ([]Topic, *Response, error)
func (*TopicService) UpdateTopic ¶
func (p *TopicService) UpdateTopic(topic Topic) (*Topic, *Response, error)