func (client *ClientImpl) ListSubscriptions(ctx context.Context, args ListSubscriptionsArgs) (*[]NotificationSubscription, error) {
	queryParams := url.Values{}
	if args.TargetId != nil {
		queryParams.Add("targetId", (*args.TargetId).String())
	}
	if args.Ids != nil {
		listAsString := strings.Join((*args.Ids)[:], ",")
		queryParams.Add("ids", listAsString)
	}
	if args.QueryFlags != nil {
		queryParams.Add("queryFlags", string(*args.QueryFlags))
	}
	locationId, _ := uuid.Parse("70f911d6-abac-488c-85b3-a206bf57e165")
	resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", nil, queryParams, nil, "", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue []NotificationSubscription
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
	return &responseValue, err
}
Get a list of notification subscriptions, either by subscription IDs or by all subscriptions for a given user or group.
package notification
import (
	"bytes"
	"context"
	"encoding/json"
	"github.com/google/uuid"
	"github.com/microsoft/azure-devops-go-api/azuredevops"
	"net/http"
	"net/url"
	"strings"
)
type Client interface {
	CreateSubscription(context.Context, CreateSubscriptionArgs) (*NotificationSubscription, error)
	DeleteSubscription(context.Context, DeleteSubscriptionArgs) error
	GetEventType(context.Context, GetEventTypeArgs) (*NotificationEventType, error)
	GetSettings(context.Context, GetSettingsArgs) (*NotificationAdminSettings, error)
	GetSubscriber(context.Context, GetSubscriberArgs) (*NotificationSubscriber, error)
	GetSubscription(context.Context, GetSubscriptionArgs) (*NotificationSubscription, error)
	GetSubscriptionDiagnostics(context.Context, GetSubscriptionDiagnosticsArgs) (*SubscriptionDiagnostics, error)
	GetSubscriptionTemplates(context.Context, GetSubscriptionTemplatesArgs) (*[]NotificationSubscriptionTemplate, error)
	ListEventTypes(context.Context, ListEventTypesArgs) (*[]NotificationEventType, error)
	ListLogs(context.Context, ListLogsArgs) (*[]INotificationDiagnosticLog, error)
	ListSubscriptions(context.Context, ListSubscriptionsArgs) (*[]NotificationSubscription, error)
	QuerySubscriptions(context.Context, QuerySubscriptionsArgs) (*[]NotificationSubscription, error)
	UpdateSettings(context.Context, UpdateSettingsArgs) (*NotificationAdminSettings, error)
	UpdateSubscriber(context.Context, UpdateSubscriberArgs) (*NotificationSubscriber, error)
	UpdateSubscription(context.Context, UpdateSubscriptionArgs) (*NotificationSubscription, error)
	UpdateSubscriptionDiagnostics(context.Context, UpdateSubscriptionDiagnosticsArgs) (*SubscriptionDiagnostics, error)
	UpdateSubscriptionUserSettings(context.Context, UpdateSubscriptionUserSettingsArgs) (*SubscriptionUserSettings, error)
}
type ClientImpl struct {
	Client azuredevops.Client
}
func NewClient(ctx context.Context, connection *azuredevops.Connection) Client {
	client := connection.GetClientByUrl(connection.BaseUrl)
	return &ClientImpl{
		Client: *client,
	}
}
func (client *ClientImpl) CreateSubscription(ctx context.Context, args CreateSubscriptionArgs) (*NotificationSubscription, error) {
	if args.CreateParameters == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.CreateParameters"}
	}
	body, marshalErr := json.Marshal(*args.CreateParameters)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("70f911d6-abac-488c-85b3-a206bf57e165")
	resp, err := client.Client.Send(ctx, http.MethodPost, locationId, "5.1", nil, nil, bytes.NewReader(body), "application/json", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue NotificationSubscription
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreateSubscriptionArgs struct {
	CreateParameters *NotificationSubscriptionCreateParameters
}
func (client *ClientImpl) DeleteSubscription(ctx context.Context, args DeleteSubscriptionArgs) error {
	routeValues := make(map[string]string)
	if args.SubscriptionId == nil || *args.SubscriptionId == "" {
		return &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.SubscriptionId"}
	}
	routeValues["subscriptionId"] = *args.SubscriptionId
	locationId, _ := uuid.Parse("70f911d6-abac-488c-85b3-a206bf57e165")
	_, err := client.Client.Send(ctx, http.MethodDelete, locationId, "5.1", routeValues, nil, nil, "", "application/json", nil)
	if err != nil {
		return err
	}
	return nil
}
type DeleteSubscriptionArgs struct {
	SubscriptionId *string
}
func (client *ClientImpl) GetEventType(ctx context.Context, args GetEventTypeArgs) (*NotificationEventType, error) {
	routeValues := make(map[string]string)
	if args.EventType == nil || *args.EventType == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.EventType"}
	}
	routeValues["eventType"] = *args.EventType
	locationId, _ := uuid.Parse("cc84fb5f-6247-4c7a-aeae-e5a3c3fddb21")
	resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, nil, nil, "", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue NotificationEventType
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type GetEventTypeArgs struct {
	EventType *string
}
func (client *ClientImpl) GetSettings(ctx context.Context, args GetSettingsArgs) (*NotificationAdminSettings, error) {
	locationId, _ := uuid.Parse("cbe076d8-2803-45ff-8d8d-44653686ea2a")
	resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", nil, nil, nil, "", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue NotificationAdminSettings
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type GetSettingsArgs struct {
}
func (client *ClientImpl) GetSubscriber(ctx context.Context, args GetSubscriberArgs) (*NotificationSubscriber, error) {
	routeValues := make(map[string]string)
	if args.SubscriberId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.SubscriberId"}
	}
	routeValues["subscriberId"] = (*args.SubscriberId).String()
	locationId, _ := uuid.Parse("4d5caff1-25ba-430b-b808-7a1f352cc197")
	resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, nil, nil, "", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue NotificationSubscriber
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type GetSubscriberArgs struct {
	SubscriberId *uuid.UUID
}
func (client *ClientImpl) GetSubscription(ctx context.Context, args GetSubscriptionArgs) (*NotificationSubscription, error) {
	routeValues := make(map[string]string)
	if args.SubscriptionId == nil || *args.SubscriptionId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.SubscriptionId"}
	}
	routeValues["subscriptionId"] = *args.SubscriptionId
	queryParams := url.Values{}
	if args.QueryFlags != nil {
		queryParams.Add("queryFlags", string(*args.QueryFlags))
	}
	locationId, _ := uuid.Parse("70f911d6-abac-488c-85b3-a206bf57e165")
	resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, queryParams, nil, "", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue NotificationSubscription
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type GetSubscriptionArgs struct {
	SubscriptionId *string
	QueryFlags *SubscriptionQueryFlags
}
func (client *ClientImpl) GetSubscriptionDiagnostics(ctx context.Context, args GetSubscriptionDiagnosticsArgs) (*SubscriptionDiagnostics, error) {
	routeValues := make(map[string]string)
	if args.SubscriptionId == nil || *args.SubscriptionId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.SubscriptionId"}
	}
	routeValues["subscriptionId"] = *args.SubscriptionId
	locationId, _ := uuid.Parse("20f1929d-4be7-4c2e-a74e-d47640ff3418")
	resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, nil, nil, "", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue SubscriptionDiagnostics
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type GetSubscriptionDiagnosticsArgs struct {
	SubscriptionId *string
}
func (client *ClientImpl) GetSubscriptionTemplates(ctx context.Context, args GetSubscriptionTemplatesArgs) (*[]NotificationSubscriptionTemplate, error) {
	locationId, _ := uuid.Parse("fa5d24ba-7484-4f3d-888d-4ec6b1974082")
	resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", nil, nil, nil, "", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue []NotificationSubscriptionTemplate
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
	return &responseValue, err
}
type GetSubscriptionTemplatesArgs struct {
}
func (client *ClientImpl) ListEventTypes(ctx context.Context, args ListEventTypesArgs) (*[]NotificationEventType, error) {
	queryParams := url.Values{}
	if args.PublisherId != nil {
		queryParams.Add("publisherId", *args.PublisherId)
	}
	locationId, _ := uuid.Parse("cc84fb5f-6247-4c7a-aeae-e5a3c3fddb21")
	resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", nil, queryParams, nil, "", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue []NotificationEventType
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
	return &responseValue, err
}
type ListEventTypesArgs struct {
	PublisherId *string
}
func (client *ClientImpl) ListLogs(ctx context.Context, args ListLogsArgs) (*[]INotificationDiagnosticLog, error) {
	routeValues := make(map[string]string)
	if args.Source == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.Source"}
	}
	routeValues["source"] = (*args.Source).String()
	if args.EntryId != nil {
		routeValues["entryId"] = (*args.EntryId).String()
	}
	queryParams := url.Values{}
	if args.StartTime != nil {
		queryParams.Add("startTime", (*args.StartTime).AsQueryParameter())
	}
	if args.EndTime != nil {
		queryParams.Add("endTime", (*args.EndTime).AsQueryParameter())
	}
	locationId, _ := uuid.Parse("991842f3-eb16-4aea-ac81-81353ef2b75c")
	resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, queryParams, nil, "", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue []INotificationDiagnosticLog
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
	return &responseValue, err
}
type ListLogsArgs struct {
	Source *uuid.UUID
	EntryId *uuid.UUID
	StartTime *azuredevops.Time
	EndTime *azuredevops.Time
}