Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EntitlementManagement - Add Types, move catalogs and packages to 1.0 Stable #133

Merged
merged 11 commits into from
Jan 17, 2022
6 changes: 5 additions & 1 deletion msgraph/accesspackage.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ type AccessPackageClient struct {

func NewAccessPackageClient(tenantId string) *AccessPackageClient {
return &AccessPackageClient{
BaseClient: NewClient(VersionBeta, tenantId),
BaseClient: NewClient(Version10, tenantId),
}
}

Expand Down Expand Up @@ -83,6 +83,10 @@ func (c *AccessPackageClient) Create(ctx context.Context, accessPackage AccessPa
return nil, status, fmt.Errorf("json.Unmarshal(): %v", err)
}

newAccessPackage.Catalog = &AccessPackageCatalog{
ID: accessPackage.Catalog.ID,
} //Stable API doesn't return this

kaovd marked this conversation as resolved.
Show resolved Hide resolved
return &newAccessPackage, status, nil
}

Expand Down
13 changes: 7 additions & 6 deletions msgraph/accesspackage_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,12 @@ func TestAccessPackageClient(t *testing.T) {

// Create AP
accessPackage := testAccessPackageClient_Create(t, c, msgraph.AccessPackage{
DisplayName: utils.StringPtr(fmt.Sprintf("test-accesspackage-%s", c.RandomString)),
CatalogId: accessPackageCatalog.ID,
Description: utils.StringPtr("Test Access Package"),
IsHidden: utils.BoolPtr(false),
IsRoleScopesVisible: utils.BoolPtr(false),
DisplayName: utils.StringPtr(fmt.Sprintf("test-accesspackage-%s", c.RandomString)),
Catalog: &msgraph.AccessPackageCatalog{
ID: accessPackageCatalog.ID,
},
Description: utils.StringPtr("Test Access Package"),
IsHidden: utils.BoolPtr(false),
})

// Update test
Expand Down Expand Up @@ -111,7 +112,7 @@ func testapCatalog_Create(t *testing.T, c *test.Test) (accessPackageCatalog *msg
accessPackageCatalog, _, err := c.AccessPackageCatalogClient.Create(c.Context, msgraph.AccessPackageCatalog{
DisplayName: utils.StringPtr(fmt.Sprintf("test-catalog-%s", c.RandomString)),
CatalogType: msgraph.AccessPackageCatalogTypeUserManaged,
CatalogStatus: msgraph.AccessPackageCatalogStatusPublished,
State: msgraph.AccessPackageCatalogStatePublished,
Description: utils.StringPtr("Test Access Catalog"),
IsExternallyVisible: utils.BoolPtr(false),
})
Expand Down
85 changes: 78 additions & 7 deletions msgraph/accesspackageassignmentpolicy_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,17 @@ func TestAccessPackageAssignmentPolicyClient(t *testing.T) {
Description: utils.StringPtr("Test AP Policy Assignment Description"),
//AccessReviewSettings: utils.BoolPtr()
RequestorSettings: &msgraph.RequestorSettings{
//ScopeType: msgraph.RequestorSettingsScopeTypeSpecificDirectorySubjects,
ScopeType: msgraph.RequestorSettingsScopeTypeNoSubjects,
AcceptRequests: utils.BoolPtr(true),
//AllowedRequestors: &msgraph.UserSet{}
// AllowedRequestors: &[]msgraph.UserSet{
// {
// ODataType: utils.StringPtr(odata.TypeGroupMembers),
// IsBackup: utils.BoolPtr(false),
// ID: utils.StringPtr("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"),
// Description: utils.StringPtr("Sample users group"),
// },
// },
},
RequestApprovalSettings: &msgraph.ApprovalSettings{
IsApprovalRequired: utils.BoolPtr(false),
Expand All @@ -38,6 +46,68 @@ func TestAccessPackageAssignmentPolicyClient(t *testing.T) {
ApprovalMode: msgraph.ApprovalModeNoApproval,
//ApprovalStages: &msgraph.ApprovalStages{},
},
Questions: &[]msgraph.AccessPackageQuestion{
{
ODataType: utils.StringPtr(odata.TypeAccessPackageTextInputQuestion),
IsRequired: utils.BoolPtr(false),
Sequence: utils.Int32Ptr(1),
Text: &msgraph.AccessPackageLocalizedContent{
DefaultText: utils.StringPtr("Test"),
LocalizedTexts: &[]msgraph.AccessPackageLocalizedTexts{
{
Text: utils.StringPtr("abc"),
LanguageCode: utils.StringPtr("en"),
},
},
},
},
{
ODataType: utils.StringPtr(odata.TypeAccessPackageMultipleChoiceQuestion),
IsRequired: utils.BoolPtr(false),
Sequence: utils.Int32Ptr(2),
Text: &msgraph.AccessPackageLocalizedContent{
DefaultText: utils.StringPtr("Test"),
LocalizedTexts: &[]msgraph.AccessPackageLocalizedTexts{
{
Text: utils.StringPtr("abc 2"),
LanguageCode: utils.StringPtr("gb"),
},
},
},
Choices: &[]msgraph.AccessPackageMultipleChoiceQuestions{
// Choice 1 containing a list of languages
{
ActualValue: utils.StringPtr("CHOICE1"),
DisplayValue: &msgraph.AccessPackageLocalizedContent{
DefaultText: utils.StringPtr("One"),
LocalizedTexts: &[]msgraph.AccessPackageLocalizedTexts{
{
Text: utils.StringPtr("Choice 1"),
LanguageCode: utils.StringPtr("gb"),
},
},
},
},
// Choice 2 containing a list of languages, etc.
{
ActualValue: utils.StringPtr("CHOICE2"),
DisplayValue: &msgraph.AccessPackageLocalizedContent{
DefaultText: utils.StringPtr("Two"),
LocalizedTexts: &[]msgraph.AccessPackageLocalizedTexts{
{
Text: utils.StringPtr("Choice 2"),
LanguageCode: utils.StringPtr("gb"),
},
{
Text: utils.StringPtr("Zwei"),
LanguageCode: utils.StringPtr("de"),
},
},
},
},
},
},
},
})

testAccessPackageAssignmentPolicyClient_Get(t, c, *accessPackageAssignmentPolicy.ID)
Expand Down Expand Up @@ -128,11 +198,12 @@ func testAccessPackageAssignmentPolicyClient_Delete(t *testing.T, c *test.Test,

func testAccessPackage_Create(t *testing.T, c *test.Test, accessPackageCatalog *msgraph.AccessPackageCatalog) (accessPackage *msgraph.AccessPackage) {
accessPackage, _, err := c.AccessPackageClient.Create(c.Context, msgraph.AccessPackage{
DisplayName: utils.StringPtr(fmt.Sprintf("test-accesspackage-%s", c.RandomString)),
CatalogId: accessPackageCatalog.ID,
Description: utils.StringPtr("Test Access Package"),
IsHidden: utils.BoolPtr(false),
IsRoleScopesVisible: utils.BoolPtr(false),
DisplayName: utils.StringPtr(fmt.Sprintf("test-accesspackage-%s", c.RandomString)),
Catalog: &msgraph.AccessPackageCatalog{
ID: accessPackageCatalog.ID,
},
Description: utils.StringPtr("Test Access Package"),
IsHidden: utils.BoolPtr(false),
})

if err != nil {
Expand All @@ -154,7 +225,7 @@ func testAccessPackageCatalog_Create(t *testing.T, c *test.Test) (accessPackageC
accessPackageCatalog, _, err := c.AccessPackageCatalogClient.Create(c.Context, msgraph.AccessPackageCatalog{
DisplayName: utils.StringPtr(fmt.Sprintf("test-catalog-%s", c.RandomString)),
CatalogType: msgraph.AccessPackageCatalogTypeUserManaged,
CatalogStatus: msgraph.AccessPackageCatalogStatusPublished,
State: msgraph.AccessPackageCatalogStatePublished,
Description: utils.StringPtr("Test Access Catalog"),
IsExternallyVisible: utils.BoolPtr(false),
})
Expand Down
12 changes: 6 additions & 6 deletions msgraph/accesspackagecatalog.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ type AccessPackageCatalogClient struct {

func NewAccessPackageCatalogClient(tenantId string) *AccessPackageCatalogClient {
return &AccessPackageCatalogClient{
BaseClient: NewClient(VersionBeta, tenantId),
BaseClient: NewClient(Version10, tenantId),
}
}

Expand All @@ -28,7 +28,7 @@ func (c *AccessPackageCatalogClient) List(ctx context.Context, query odata.Query
OData: query,
ValidStatusCodes: []int{http.StatusOK},
Uri: Uri{
Entity: "/identityGovernance/entitlementManagement/accessPackageCatalogs",
Entity: "/identityGovernance/entitlementManagement/catalogs",
HasTenantId: true,
},
})
Expand Down Expand Up @@ -64,7 +64,7 @@ func (c *AccessPackageCatalogClient) Create(ctx context.Context, accessPackageCa
Body: body,
ValidStatusCodes: []int{http.StatusCreated},
Uri: Uri{
Entity: "/identityGovernance/entitlementManagement/accessPackageCatalogs",
Entity: "/identityGovernance/entitlementManagement/catalogs",
HasTenantId: true,
},
})
Expand Down Expand Up @@ -93,7 +93,7 @@ func (c *AccessPackageCatalogClient) Get(ctx context.Context, id string, query o
OData: query,
ValidStatusCodes: []int{http.StatusOK},
Uri: Uri{
Entity: fmt.Sprintf("/identityGovernance/entitlementManagement/accessPackageCatalogs/%s", id),
Entity: fmt.Sprintf("/identityGovernance/entitlementManagement/catalogs/%s", id),
HasTenantId: true,
},
})
Expand Down Expand Up @@ -133,7 +133,7 @@ func (c *AccessPackageCatalogClient) Update(ctx context.Context, accessPackageCa
ConsistencyFailureFunc: RetryOn404ConsistencyFailureFunc,
ValidStatusCodes: []int{http.StatusNoContent},
Uri: Uri{
Entity: fmt.Sprintf("/identityGovernance/entitlementManagement/accessPackageCatalogs/%s", *accessPackageCatalog.ID),
Entity: fmt.Sprintf("/identityGovernance/entitlementManagement/catalogs/%s", *accessPackageCatalog.ID),
HasTenantId: true,
},
})
Expand All @@ -150,7 +150,7 @@ func (c *AccessPackageCatalogClient) Delete(ctx context.Context, id string) (int
ConsistencyFailureFunc: RetryOn404ConsistencyFailureFunc,
ValidStatusCodes: []int{http.StatusNoContent},
Uri: Uri{
Entity: fmt.Sprintf("/identityGovernance/entitlementManagement/accessPackageCatalogs/%s", id),
Entity: fmt.Sprintf("/identityGovernance/entitlementManagement/catalogs/%s", id),
HasTenantId: true,
},
})
Expand Down
2 changes: 1 addition & 1 deletion msgraph/accesspackagecatalog_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ func TestAccessPackageCatalogClient(t *testing.T) {
accessPackageCatalog := testAccessPackageCatalogClient_Create(t, c, msgraph.AccessPackageCatalog{
DisplayName: utils.StringPtr(fmt.Sprintf("test-catalog-%s", c.RandomString)),
CatalogType: msgraph.AccessPackageCatalogTypeUserManaged,
CatalogStatus: msgraph.AccessPackageCatalogStatusPublished,
State: msgraph.AccessPackageCatalogStatePublished,
Description: utils.StringPtr("Test Access Catalog"),
IsExternallyVisible: utils.BoolPtr(false),
})
Expand Down
15 changes: 8 additions & 7 deletions msgraph/accesspackageresourcerequest_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,17 @@ func TestAccessPackageResourceRequestClient(t *testing.T) {

// Create access package
accessPackage := testAccessPackageResourceRequestAP_Create(t, c, msgraph.AccessPackage{
DisplayName: utils.StringPtr(fmt.Sprintf("test-accesspackage-%s", c.RandomString)),
CatalogId: accessPackageCatalog.ID,
Description: utils.StringPtr("Test Access Package"),
IsHidden: utils.BoolPtr(false),
IsRoleScopesVisible: utils.BoolPtr(false),
DisplayName: utils.StringPtr(fmt.Sprintf("test-accesspackage-%s", c.RandomString)),
Catalog: &msgraph.AccessPackageCatalog{
ID: accessPackageCatalog.ID,
},
Description: utils.StringPtr("Test Access Package"),
IsHidden: utils.BoolPtr(false),
})

// Create resource request and poll for ID
accessPackageResourceRequest := testAccessPackageResourceRequestClient_Create(t, c, msgraph.AccessPackageResourceRequest{
CatalogId: accessPackage.CatalogId,
CatalogId: accessPackage.Catalog.ID,
RequestType: utils.StringPtr("AdminAdd"),
AccessPackageResource: &msgraph.AccessPackageResource{
OriginId: aadGroup.ID,
Expand Down Expand Up @@ -145,7 +146,7 @@ func testAccessPackageResourceRequestCatalog_Create(t *testing.T, c *test.Test)
accessPackageCatalog, _, err := c.AccessPackageCatalogClient.Create(c.Context, msgraph.AccessPackageCatalog{
DisplayName: utils.StringPtr(fmt.Sprintf("test-catalog-%s", c.RandomString)),
CatalogType: msgraph.AccessPackageCatalogTypeUserManaged,
CatalogStatus: msgraph.AccessPackageCatalogStatusPublished,
State: msgraph.AccessPackageCatalogStatePublished,
Description: utils.StringPtr("Test Access Catalog"),
IsExternallyVisible: utils.BoolPtr(false),
})
Expand Down
15 changes: 8 additions & 7 deletions msgraph/accesspackageresourcerolescope_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,17 @@ func TestAccessPackageResourceRoleScopeClient(t *testing.T) {

// Create access package
accessPackage := testAccessPackageResourceRoleScopeAP_Create(t, c, msgraph.AccessPackage{
DisplayName: utils.StringPtr(fmt.Sprintf("test-accesspackage-%s", c.RandomString)),
CatalogId: accessPackageCatalog.ID,
Description: utils.StringPtr("Test Access Package"),
IsHidden: utils.BoolPtr(false),
IsRoleScopesVisible: utils.BoolPtr(false),
DisplayName: utils.StringPtr(fmt.Sprintf("test-accesspackage-%s", c.RandomString)),
Catalog: &msgraph.AccessPackageCatalog{
ID: accessPackageCatalog.ID,
},
Description: utils.StringPtr("Test Access Package"),
IsHidden: utils.BoolPtr(false),
})

// Create Resource Request and poll for ID
accessPackageResourceRequest := testAccessPackageResourceRoleScopeResourceRequest_Create(t, c, msgraph.AccessPackageResourceRequest{
CatalogId: accessPackage.CatalogId,
CatalogId: accessPackage.Catalog.ID,
RequestType: utils.StringPtr("AdminAdd"),
AccessPackageResource: &msgraph.AccessPackageResource{
OriginId: aadGroup.ID,
Expand Down Expand Up @@ -210,7 +211,7 @@ func testAccessPackageResourceRoleScopeCatalog_Create(t *testing.T, c *test.Test
accessPackageCatalog, _, err := c.AccessPackageCatalogClient.Create(c.Context, msgraph.AccessPackageCatalog{
DisplayName: utils.StringPtr(fmt.Sprintf("test-catalog-%s", c.RandomString)),
CatalogType: msgraph.AccessPackageCatalogTypeUserManaged,
CatalogStatus: msgraph.AccessPackageCatalogStatusPublished,
State: msgraph.AccessPackageCatalogStatePublished,
Description: utils.StringPtr("Test Access Catalog"),
IsExternallyVisible: utils.BoolPtr(false),
})
Expand Down
59 changes: 32 additions & 27 deletions msgraph/models.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,13 @@ import (
)

type AccessPackage struct {
ID *string `json:"id,omitempty"`
CatalogId *string `json:"catalogId,omitempty"`
CreatedBy *string `json:"createdBy,omitempty"`
CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
Description *string `json:"description,omitempty"`
DisplayName *string `json:"displayName,omitempty"`
IsHidden *bool `json:"isHidden,omitempty"`
IsRoleScopesVisible *bool `json:"isRoleScopesVisible,omitempty"`
ModifiedBy *string `json:"modifiedBy,omitempty"`
ModifiedDateTime *time.Time `json:"modifiedDateTime,omitempty"`
ID *string `json:"id,omitempty"`
Catalog *AccessPackageCatalog `json:"catalog,omitempty"`
CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
Description *string `json:"description,omitempty"`
DisplayName *string `json:"displayName,omitempty"`
IsHidden *bool `json:"isHidden,omitempty"`
ModifiedDateTime *time.Time `json:"modifiedDateTime,omitempty"`
}

type AccessPackageAssignmentPolicy struct {
Expand All @@ -44,16 +41,14 @@ type AccessPackageAssignmentPolicy struct {
}

type AccessPackageCatalog struct {
ID *string `json:"id,omitempty"`
CatalogStatus AccessPackageCatalogStatus `json:"catalogStatus,omitempty"`
CatalogType AccessPackageCatalogType `json:"catalogType,omitempty"`
CreatedBy *string `json:"createdBy,omitempty"`
CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
Description *string `json:"description,omitempty"`
DisplayName *string `json:"displayName,omitempty"`
IsExternallyVisible *bool `json:"isExternallyVisible,omitempty"`
ModifiedBy *string `json:"modifiedBy,omitempty"`
ModifiedDateTime *time.Time `json:"modifiedDateTime,omitempty"`
ID *string `json:"id,omitempty"`
State AccessPackageCatalogState `json:"state,omitempty"`
kaovd marked this conversation as resolved.
Show resolved Hide resolved
CatalogType AccessPackageCatalogType `json:"catalogType,omitempty"`
CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
Description *string `json:"description,omitempty"`
DisplayName *string `json:"displayName,omitempty"`
IsExternallyVisible *bool `json:"isExternallyVisible,omitempty"`
ModifiedDateTime *time.Time `json:"modifiedDateTime,omitempty"`
}

type AccessPackageLocalizedContent struct {
Expand All @@ -67,10 +62,19 @@ type AccessPackageLocalizedTexts struct {
}

type AccessPackageQuestion struct {
ID *string `json:"id,omitempty"`
IsRequired *bool `json:"isRequired,omitempty"`
Sequence *int32 `json:"sequence,omitempty"`
Text *AccessPackageLocalizedContent `json:"text,omitempty"`
ODataType *odata.Type `json:"@odata.type,omitempty"`
ID *string `json:"id,omitempty"`
IsRequired *bool `json:"isRequired,omitempty"`
Sequence *int32 `json:"sequence,omitempty"`
Text *AccessPackageLocalizedContent `json:"text,omitempty"`
Choices *[]AccessPackageMultipleChoiceQuestions `json:"choices,omitempty"`
IsSingleLineQuestion *bool `json:"isSingleLineQuestion,omitempty"`
}

type AccessPackageMultipleChoiceQuestions struct {
ODataType *odata.Type `json:"@odata.type,omitempty"`
ActualValue *string `json:"actualValue,string"`
DisplayValue *AccessPackageLocalizedContent `json:"displayValue,omitempty"`
}

type AccessPackageResource struct {
Expand Down Expand Up @@ -1497,9 +1501,10 @@ type UserRegistrationMethodSummary struct {
}

type UserSet struct {
IsBackup *bool `json:"isBackup,omitempty"`
ID *string `json:"id,omitempty"` // Either user or group ID
Description *string `json:"description,omitempty"`
ODataType *odata.Type `json:"@odata.type,omitempty"`
IsBackup *bool `json:"isBackup,omitempty"`
ID *string `json:"id,omitempty"` // Either user or group ID
Description *string `json:"description,omitempty"`
}

type UserCredentialUsageDetails struct {
Expand Down
5 changes: 3 additions & 2 deletions msgraph/valuetypes.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,11 @@ func (s StringNullWhenEmpty) MarshalJSON() ([]byte, error) {
return json.Marshal(string(s))
}

type AccessPackageCatalogStatus = string
type AccessPackageCatalogState = string
kaovd marked this conversation as resolved.
Show resolved Hide resolved

const (
AccessPackageCatalogStatusPublished AccessPackageCatalogStatus = "Published"
AccessPackageCatalogStatePublished AccessPackageCatalogState = "published"
AccessPackageCatalogStateUnpublished AccessPackageCatalogState = "unpublished"
)

type AccessPackageCatalogType = string
Expand Down
Loading