Ask or search…
K
📬

Notification Schemes

Get Notification schemes

GET /rest/api/{2-3}/notificationscheme
Search returns a paginated list of notification schemes ordered by the display name.
package main
import (
"context"
"fmt"
_ "github.com/ctreminiom/go-atlassian/jira/v2"
"github.com/ctreminiom/go-atlassian/jira/v3"
"github.com/ctreminiom/go-atlassian/pkg/infra/models"
"log"
"os"
)
func main() {
var (
host = os.Getenv("HOST")
mail = os.Getenv("MAIL")
token = os.Getenv("TOKEN")
)
jira, err := v3.New(nil, host)
if err != nil {
return
}
jira.Auth.SetBasicAuth(mail, token)
jira.Auth.SetUserAgent("curl/7.54.0")
options := &models.NotificationSchemeSearchOptions{
NotificationSchemeIDs: []string{"10000"},
ProjectIDs: nil,
OnlyDefault: false,
Expand: nil,
}
notificationSchemes, response, err := jira.NotificationScheme.Search(context.Background(), options, 0, 50)
if err != nil {
if response != nil {
log.Println("Response HTTP Response", response.Bytes.String())
}
log.Fatal(err)
}
for _, notificationScheme := range notificationSchemes.Values {
fmt.Println(notificationScheme)
}
}

Create Notification scheme

POST /rest/api/{2-3}/notificationscheme
Create creates a notification scheme with notifications. You can create up to 1000 notifications per request.
package main
import (
"context"
"fmt"
_ "github.com/ctreminiom/go-atlassian/jira/v2"
"github.com/ctreminiom/go-atlassian/jira/v3"
"github.com/ctreminiom/go-atlassian/pkg/infra/models"
"log"
"os"
)
func main() {
var (
host = os.Getenv("HOST")
mail = os.Getenv("MAIL")
token = os.Getenv("TOKEN")
)
jira, err := v3.New(nil, host)
if err != nil {
return
}
jira.Auth.SetBasicAuth(mail, token)
jira.Auth.SetUserAgent("curl/7.54.0")
payload := &models.NotificationSchemePayloadScheme{
Description: "Notification Scheme #2",
Name: "Notification Scheme Description sample",
Events: []*models.NotificationSchemePayloadEventScheme{
{
Event: &models.NotificationSchemeEventTypeScheme{
ID: "1",
},
Notifications: []*models.NotificationSchemeEventNotificationScheme{
{
NotificationType: "Group",
Parameter: "jira-administrators",
},
},
},
},
}
notificationScheme, response, err := jira.NotificationScheme.Create(context.Background(), payload)
if err != nil {
if response != nil {
log.Println("Response HTTP Response", response.Bytes.String())
}
log.Fatal(err)
}
fmt.Println(notificationScheme.Id)
}

Get Project notification schemes

GET /rest/api/{2-3}/notificationscheme/project
Projects returns a paginated mapping of project that have notification scheme assigned. You can provide either one or multiple notification scheme IDs or project IDs to filter by.
If you don't provide any, this will return a list of all mappings. Note that only company-managed (classic) projects are supported. This is because team-managed projects don't have a concept of a default notification scheme. The mappings are ordered by projectId.
package main
import (
"context"
"fmt"
_ "github.com/ctreminiom/go-atlassian/jira/v2"
"github.com/ctreminiom/go-atlassian/jira/v3"
"log"
"os"
)
func main() {
var (
host = os.Getenv("HOST")
mail = os.Getenv("MAIL")
token = os.Getenv("TOKEN")
)
jira, err := v3.New(nil, host)
if err != nil {
return
}
jira.Auth.SetBasicAuth(mail, token)
jira.Auth.SetUserAgent("curl/7.54.0")
mapping, response, err := jira.NotificationScheme.Projects(context.Background(), nil, nil, 0, 50)
if err != nil {
if response != nil {
log.Println("Response HTTP Response", response.Bytes.String())
}
log.Fatal(err)
}
for _, element := range mapping.Values {
fmt.Println(element.NotificationSchemeId, element.ProjectId)
}
}

Get Notification scheme

GET /rest/api/{2-3}/notificationscheme/{id}
Get returns a notification scheme, including the list of events and the recipients who will receive notifications for those events.
package main
import (
"context"
_ "github.com/ctreminiom/go-atlassian/jira/v2"
"github.com/ctreminiom/go-atlassian/jira/v3"
"github.com/ctreminiom/go-atlassian/pkg/infra/models"
"log"
"os"
)
func main() {
var (
host = os.Getenv("HOST")
mail = os.Getenv("MAIL")
token = os.Getenv("TOKEN")
)
jira, err := v3.New(nil, host)
if err != nil {
return
}
jira.Auth.SetBasicAuth(mail, token)
jira.Auth.SetUserAgent("curl/7.54.0")
payload := &models.NotificationSchemePayloadScheme{
Description: "description update sample",
Name: "new notification scheme name",
}
response, err := jira.NotificationScheme.Update(context.Background(), "10002", payload)
if err != nil {
if response != nil {
log.Println("Response HTTP Response", response.Bytes.String())
}
log.Fatal(err)
}
}

Update Notification scheme

PUT /rest/api/{2-3}/notificationscheme/{id}
Update updates a notification scheme.
package main
import (
"context"
"fmt"
_ "github.com/ctreminiom/go-atlassian/jira/v2"
"github.com/ctreminiom/go-atlassian/jira/v3"
"log"
"os"
)
func main() {
var (
host = os.Getenv("HOST")
mail = os.Getenv("MAIL")
token = os.Getenv("TOKEN")
)
jira, err := v3.New(nil, host)
if err != nil {
return
}
jira.Auth.SetBasicAuth(mail, token)
jira.Auth.SetUserAgent("curl/7.54.0")
notificationScheme, response, err := jira.NotificationScheme.Get(context.Background(), "10000", []string{"all"})
if err != nil {
if response != nil {
log.Println("Response HTTP Response", response.Bytes.String())
}
log.Fatal(err)
}
fmt.Println(notificationScheme.Self)
fmt.Println(notificationScheme.Name)
fmt.Println(notificationScheme.ID)
fmt.Println(notificationScheme.Description)
fmt.Println(notificationScheme.Scope)
fmt.Println(notificationScheme.NotificationSchemeEvents)
}

Delete Notification scheme

DELETE /rest/api/{2-3}/notificationscheme/{notificationSchemeId}
Delete deletes a notification scheme.
package main
import (
"context"
_ "github.com/ctreminiom/go-atlassian/jira/v2"
"github.com/ctreminiom/go-atlassian/jira/v3"
"log"
"os"
)
func main() {
var (
host = os.Getenv("HOST")
mail = os.Getenv("MAIL")
token = os.Getenv("TOKEN")
)
jira, err := v3.New(nil, host)
if err != nil {
return
}
jira.Auth.SetBasicAuth(mail, token)
jira.Auth.SetUserAgent("curl/7.54.0")
response, err := jira.NotificationScheme.Delete(context.Background(), "10002")
if err != nil {
if response != nil {
log.Println("Response HTTP Response", response.Bytes.String())
}
log.Fatal(err)
}
}

Append Notifications to scheme

PUT /rest/api/{2-3}/notificationscheme/{id}/notification
Append adds notifications to a notification scheme. You can add up to 1000 notifications per request.
package main
import (
"context"
_ "github.com/ctreminiom/go-atlassian/jira/v2"
"github.com/ctreminiom/go-atlassian/jira/v3"
"github.com/ctreminiom/go-atlassian/pkg/infra/models"
"log"
"os"
)
func main() {
var (
host = os.Getenv("HOST")
mail = os.Getenv("MAIL")
token = os.Getenv("TOKEN")
)
jira, err := v3.New(nil, host)
if err != nil {
return
}
jira.Auth.SetBasicAuth(mail, token)
jira.Auth.SetUserAgent("curl/7.54.0")
payload := &models.NotificationSchemeEventsPayloadScheme{
NotificationSchemeEvents: []*models.NotificationSchemePayloadEventScheme{
{
Event: &models.NotificationSchemeEventTypeScheme{
ID: "1",
},
Notifications: []*models.NotificationSchemeEventNotificationScheme{
{
NotificationType: "Group",
Parameter: "jira-administrators",
},
},
},
},
}
response, err := jira.NotificationScheme.Append(context.Background(), "10002", payload)
if err != nil {
if response != nil {
log.Println("Response HTTP Response", response.Bytes.String())
}
log.Fatal(err)
}
}

Remove Notifications to scheme

DELETE /rest/api/{2-3}/notificationscheme/{notificationSchemeId}/notification/{notificationId}
Remove removes a notification from a notification scheme.
package main
import (
"context"
_ "github.com/ctreminiom/go-atlassian/jira/v2"
"github.com/ctreminiom/go-atlassian/jira/v3"
"log"
"os"
)
func main() {
var (
host = os.Getenv("HOST")
mail = os.Getenv("MAIL")
token = os.Getenv("TOKEN")
)
jira, err := v3.New(nil, host)
if err != nil {
return
}
jira.Auth.SetBasicAuth(mail, token)
jira.Auth.SetUserAgent("curl/7.54.0")
response, err := jira.NotificationScheme.Remove(context.Background(), "10002", "10000")
if err != nil {
if response != nil {
log.Println("Response HTTP Response", response.Bytes.String())
}
log.Fatal(err)
}
}