diff --git a/msgraph/conditionalaccesspolicy_test.go b/msgraph/conditionalaccesspolicy_test.go index 18a05dbf..1b775d8f 100644 --- a/msgraph/conditionalaccesspolicy_test.go +++ b/msgraph/conditionalaccesspolicy_test.go @@ -36,10 +36,20 @@ func TestConditionalAccessPolicyClient(t *testing.T) { IncludeApplications: &[]string{testAppId}, }, Users: &msgraph.ConditionalAccessUsers{ - IncludeUsers: &[]string{"All"}, - ExcludeUsers: &[]string{*testUser.ID(), "GuestsOrExternalUsers"}, + ExcludeUsers: &[]string{*testUser.ID()}, IncludeGroups: &[]string{*testIncGroup.ID()}, ExcludeGroups: &[]string{*testExcGroup.ID()}, + IncludeGuestsOrExternalUsers: &msgraph.ConditionalAccessGuestsOrExternalUsers{ + GuestOrExternalUserTypes: &[]msgraph.ConditionalAccessGuestOrExternalUserType{ + msgraph.ConditionalAccessGuestOrExternalUserTypeB2bCollaborationGuest, + msgraph.ConditionalAccessGuestOrExternalUserTypeB2bCollaborationMember, + msgraph.ConditionalAccessGuestOrExternalUserTypeB2bDirectConnectUser, + }, + ExternalTenants: &msgraph.ConditionalAccessExternalTenants{ + MembershipKind: utils.StringPtr(msgraph.ConditionalAccessExternalTenantsMembershipKindAll), + Members: nil, + }, + }, }, Locations: &msgraph.ConditionalAccessLocations{ IncludeLocations: &[]string{"All"}, @@ -55,7 +65,9 @@ func TestConditionalAccessPolicyClient(t *testing.T) { }, }) - updatePolicy := msgraph.ConditionalAccessPolicy{ + testConditionalAccessPolicysClient_Get(t, c, *policy.ID) + + testConditionalAccessPolicysClient_Update(t, c, msgraph.ConditionalAccessPolicy{ ID: policy.ID, DisplayName: utils.StringPtr(fmt.Sprintf("test-policy-updated-%s", c.RandomString)), Conditions: &msgraph.ConditionalAccessConditionSet{ @@ -78,11 +90,19 @@ func TestConditionalAccessPolicyClient(t *testing.T) { Operator: utils.StringPtr("OR"), BuiltInControls: &[]string{"block"}, }, - } - testConditionalAccessPolicysClient_Update(t, c, updatePolicy) + SessionControls: &msgraph.ConditionalAccessSessionControls{ + SignInFrequency: &msgraph.SignInFrequencySessionControl{ + AuthenticationType: utils.StringPtr(msgraph.ConditionalAccessAuthenticationTypePrimaryAndSecondaryAuthentication), + FrequencyInterval: utils.StringPtr(msgraph.ConditionalAccessFrequencyIntervalTimeBased), + IsEnabled: utils.BoolPtr(true), + Type: utils.StringPtr(msgraph.ConditionalAccessFrequencyTypeHours), + Value: utils.Int32Ptr(6), + }, + }, + }) - testConditionalAccessPolicysClient_List(t, c) testConditionalAccessPolicysClient_Get(t, c, *policy.ID) + testConditionalAccessPolicysClient_List(t, c) testConditionalAccessPolicysClient_Delete(t, c, *policy.ID) testGroup_Delete(t, c, testIncGroup) diff --git a/msgraph/models.go b/msgraph/models.go index 11c16520..751ebc94 100644 --- a/msgraph/models.go +++ b/msgraph/models.go @@ -628,7 +628,7 @@ type ConditionalAccessConditionSet struct { Applications *ConditionalAccessApplications `json:"applications,omitempty"` ClientApplications *ConditionalAccessClientApplications `json:"clientApplications,omitempty"` ClientAppTypes *[]ConditionalAccessClientAppType `json:"clientAppTypes,omitempty"` - Devices *ConditionalAccessDevices `json:"devices,omitempty"` + Devices *ConditionalAccessDevices `json:"devices"` DeviceStates *ConditionalAccessDeviceStates `json:"deviceStates,omitempty"` Locations *ConditionalAccessLocations `json:"locations"` Platforms *ConditionalAccessPlatforms `json:"platforms"` @@ -711,7 +711,6 @@ type ConditionalAccessGuestsOrExternalUsers struct { type ConditionalAccessExternalTenants struct { MembershipKind *ConditionalAccessExternalTenantsMembershipKind `json:"membershipKind,omitempty"` Members *[]string `json:"members,omitempty"` - } func (c ConditionalAccessGuestsOrExternalUsers) MarshalJSON() ([]byte, error) { @@ -1641,9 +1640,11 @@ type SignInActivity struct { } type SignInFrequencySessionControl struct { - IsEnabled *bool `json:"isEnabled,omitempty"` - Type *string `json:"type,omitempty"` - Value *int32 `json:"value,omitempty"` + AuthenticationType *ConditionalAccessAuthenticationType `json:"authenticationType,omitempty"` + FrequencyInterval *ConditionalAccessFrequencyInterval `json:"frequencyInterval,omitempty"` + IsEnabled *bool `json:"isEnabled,omitempty"` + Type *string `json:"type,omitempty"` + Value *int32 `json:"value,omitempty"` } type SignInReport struct { diff --git a/msgraph/valuetypes.go b/msgraph/valuetypes.go index 5e37c5a8..e89657c1 100644 --- a/msgraph/valuetypes.go +++ b/msgraph/valuetypes.go @@ -319,6 +319,14 @@ const ( CredentialUsageSummaryPeriod1 CredentialUsageSummaryPeriod = "D1" ) +type ConditionalAccessAuthenticationType = string + +const ( + ConditionalAccessAuthenticationTypePrimaryAndSecondaryAuthentication ConditionalAccessAuthenticationType = "primaryAndSecondaryAuthentication" + ConditionalAccessAuthenticationTypeSecondaryAuthentication ConditionalAccessAuthenticationType = "secondaryAuthentication" + ConditionalAccessAuthenticationTypeUnknownFutureValue ConditionalAccessAuthenticationType = "unknownFutureValue" +) + type ConditionalAccessClientAppType = string const ( @@ -372,6 +380,21 @@ const ( ConditionalAccessFilterModeInclude ConditionalAccessFilterMode = "include" ) +type ConditionalAccessFrequencyInterval = string + +const ( + ConditionalAccessFrequencyIntervalTimeBased ConditionalAccessFrequencyInterval = "timeBased" + ConditionalAccessFrequencyIntervalEveryTime ConditionalAccessFrequencyInterval = "everyTime" + ConditionalAccessFrequencyIntervalUnknownFutureValue ConditionalAccessFrequencyInterval = "unknownFutureValue" +) + +type ConditionalAccessFrequencyType = string + +const ( + ConditionalAccessFrequencyTypeDays ConditionalAccessFrequencyType = "days" + ConditionalAccessFrequencyTypeHours ConditionalAccessFrequencyType = "hours" +) + type ConditionalAccessGrantControl = string const (