Ask or search…
K
Comment on page
⛹♂

Groups

Get a group by ID

GET /scim/directory/{directoryId}/Groups/{id}
Get a group from a directory by group ID.
package main
import (
"context"
"fmt"
"github.com/ctreminiom/go-atlassian/admin"
"log"
"os"
)
func main() {
//ATLASSIAN_ADMIN_TOKEN
var scimApiKey = os.Getenv("ATLASSIAN_SCIM_API_KEY")
cloudAdmin, err := admin.New(nil)
if err != nil {
log.Fatal(err)
}
cloudAdmin.Auth.SetBearerToken(scimApiKey)
cloudAdmin.Auth.SetUserAgent("curl/7.54.0")
var (
directoryID = "bcdde508-ee40-4df2-89cc-d3f6292c5971"
groupID = "e18da5e4-ba2e-4039-9046-30000af6c0b7"
)
group, response, err := cloudAdmin.SCIM.Group.Get(context.Background(), directoryID, groupID)
if err != nil {
if response != nil {
log.Println("Response HTTP Response", string(response.BodyAsBytes))
}
log.Fatal(err)
}
log.Println("Response HTTP Code", response.StatusCode)
log.Println("HTTP Endpoint Used", response.Endpoint)
log.Println(group)
fmt.Println(string(response.BodyAsBytes))
}

Update a group by ID

PUT /scim/directory/{directoryId}/Groups/{id}
Update a group in a directory by group ID.
package main
import (
"context"
"github.com/ctreminiom/go-atlassian/admin"
"log"
"os"
)
func main() {
//ATLASSIAN_ADMIN_TOKEN
var scimApiKey = os.Getenv("ATLASSIAN_SCIM_API_KEY")
cloudAdmin, err := admin.New(nil)
if err != nil {
log.Fatal(err)
}
cloudAdmin.Auth.SetBearerToken(scimApiKey)
cloudAdmin.Auth.SetUserAgent("curl/7.54.0")
var (
directoryID = "bcdde508-ee40-4df2-89cc-d3f6292c5971"
groupID = "e18da5e4-ba2e-4039-9046-30000af6c0b7"
newGroupName = "scim-jira-users-updated"
)
group, response, err := cloudAdmin.SCIM.Group.Update(context.Background(), directoryID, groupID, newGroupName)
if err != nil {
if response != nil {
log.Println("Response HTTP Response", string(response.BodyAsBytes))
}
log.Fatal(err)
}
log.Println("Response HTTP Code", response.StatusCode)
log.Println("HTTP Endpoint Used", response.Endpoint)
log.Println(group)
}

Delete a group by ID

DELETE /scim/directory/{directoryId}/Groups/{id}
Delete a group from a directory. An attempt to delete a non-existent group fails with a 404 (Resource Not found) error.
package main
import (
"context"
"github.com/ctreminiom/go-atlassian/admin"
"log"
"os"
)
func main() {
//ATLASSIAN_ADMIN_TOKEN
var scimApiKey = os.Getenv("ATLASSIAN_SCIM_API_KEY")
cloudAdmin, err := admin.New(nil)
if err != nil {
log.Fatal(err)
}
cloudAdmin.Auth.SetBearerToken(scimApiKey)
cloudAdmin.Auth.SetUserAgent("curl/7.54.0")
var (
directoryID = "bcdde508-ee40-4df2-89cc-d3f6292c5971"
groupID = "e18da5e4-ba2e-4039-9046-30000af6c0b7"
)
response, err := cloudAdmin.SCIM.Group.Delete(context.Background(), directoryID, groupID)
if err != nil {
if response != nil {
log.Println("Response HTTP Response", string(response.BodyAsBytes))
}
log.Fatal(err)
}
log.Println("Response HTTP Code", response.StatusCode)
log.Println("HTTP Endpoint Used", response.Endpoint)
}

Update a group by ID (PATCH)

PATCH /scim/directory/{directoryId}/Groups/{id}
Update a group's information in a directory by groupId via PATCH. You can use this API to manage group membership.
Note: Renaming groups after they've synced to your Atlassian organization isn't supported in this release of the User Provisioning API. To rename a group, create a new group with the desired name, update membership, and then delete the old group.
package main
import (
"context"
"github.com/ctreminiom/go-atlassian/admin"
"github.com/ctreminiom/go-atlassian/pkg/infra/models"
"log"
"os"
)
func main() {
//ATLASSIAN_ADMIN_TOKEN
var scimApiKey = os.Getenv("ATLASSIAN_SCIM_API_KEY")
cloudAdmin, err := admin.New(nil)
if err != nil {
log.Fatal(err)
}
cloudAdmin.Auth.SetBearerToken(scimApiKey)
cloudAdmin.Auth.SetUserAgent("curl/7.54.0")
var (
directoryID = "bcdde508-ee40-4df2-89cc-d3f6292c5971"
groupID = "e18da5e4-ba2e-4039-9046-30000af6c0b7"
accountID = "635cdb2f-e72c-4122-bfd3-3aa6c7f02f96"
)
payload := &models.SCIMGroupPathScheme{
Schemas: []string{"urn:ietf:params:scim:api:messages:2.0:PatchOp"},
Operations: []*models.SCIMGroupOperationScheme{
{
Op: "add",
Path: "members",
Value: []*models.SCIMGroupOperationValueScheme{
{
Value: accountID,
Display: "Example Display Name",
},
},
},
},
}
group, response, err := cloudAdmin.SCIM.Group.Path(context.Background(), directoryID, groupID, payload)
if err != nil {
if response != nil {
log.Println("Response HTTP Response", response.Bytes.String())
}
log.Fatal(err)
}
log.Println("Response HTTP Code", response.Code)
log.Println("HTTP Endpoint Used", response.Endpoint)
log.Println(group.ID, group.DisplayName)
for _, member := range group.Members {
log.Println(member)
}
}

Get groups

GET /scim/directory/{directoryId}/Groups
Get groups from a directory. Filtering is supported with a single exact match (eq) against the displayName attribute. Pagination is supported. Sorting is not supported.
package main
import (
"context"
"github.com/ctreminiom/go-atlassian/admin"
"log"
"os"
)
func main() {
//ATLASSIAN_ADMIN_TOKEN
var scimApiKey = os.Getenv("ATLASSIAN_SCIM_API_KEY")
cloudAdmin, err := admin.New(nil)
if err != nil {
log.Fatal(err)
}
cloudAdmin.Auth.SetBearerToken(scimApiKey)
cloudAdmin.Auth.SetUserAgent("curl/7.54.0")
var directoryID = "bcdde508-ee40-4df2-89cc-d3f6292c5971"
groups, response, err := cloudAdmin.SCIM.Group.Gets(context.Background(), directoryID, "", 0, 50)
if err != nil {
if response != nil {
log.Println("Response HTTP Response", string(response.BodyAsBytes))
}
log.Fatal(err)
}
log.Println("Response HTTP Code", response.StatusCode)
log.Println("HTTP Endpoint Used", response.Endpoint)
for _, group := range groups.Resources {
log.Println(group)
}
}

Create a group

POST /scim/directory/{directoryId}/Groups
Create a group in a directory. An attempt to create a group with an existing name fails with a 409 (Conflict) error.
package main
import (
"context"
"github.com/ctreminiom/go-atlassian/admin"
"log"
"os"
)
func main() {
//ATLASSIAN_ADMIN_TOKEN
var scimApiKey = os.Getenv("ATLASSIAN_SCIM_API_KEY")
cloudAdmin, err := admin.New(nil)
if err != nil {
log.Fatal(err)
}
cloudAdmin.Auth.SetBearerToken(scimApiKey)
cloudAdmin.Auth.SetUserAgent("curl/7.54.0")
var (
directoryID = "bcdde508-ee40-4df2-89cc-d3f6292c5971"
newGroupName = "scim-jira-users"
)
group, response, err := cloudAdmin.SCIM.Group.Create(context.Background(), directoryID, newGroupName)
if err != nil {
if response != nil {
log.Println("Response HTTP Response", string(response.BodyAsBytes))
}
log.Fatal(err)
}
log.Println("Response HTTP Code", response.StatusCode)
log.Println("HTTP Endpoint Used", response.Endpoint)
log.Printf("The group %v has been created and it contains the ID %v", group.DisplayName, group.ID)
}
Last modified 5mo ago