├── UI
└── web-app
│ ├── .node-version
│ ├── public
│ ├── index.css
│ ├── robots.txt
│ ├── favicon.ico
│ ├── logo192.png
│ ├── logo512.png
│ ├── gmmlogo192.png
│ └── gmmlogo192-2.png
│ ├── src
│ ├── react-app-env.d.ts
│ ├── components
│ │ ├── ContentContainer
│ │ │ └── index.ts
│ │ ├── HyperlinkSetting
│ │ │ └── index.ts
│ │ ├── Banner
│ │ │ └── index.ts
│ │ ├── Loader
│ │ │ └── index.ts
│ │ ├── Owner
│ │ │ ├── index.ts
│ │ │ └── Owner.styles.ts
│ │ ├── Page
│ │ │ ├── index.ts
│ │ │ └── Page.styles.ts
│ │ ├── HRFilter
│ │ │ └── index.ts
│ │ ├── JobsList
│ │ │ └── index.ts
│ │ ├── AppFooter
│ │ │ └── index.ts
│ │ ├── AppHeader
│ │ │ ├── index.ts
│ │ │ └── AppHeader.test.tsx
│ │ ├── Confirmation
│ │ │ └── index.ts
│ │ ├── PageHeader
│ │ │ └── index.ts
│ │ ├── PagingBar
│ │ │ └── index.ts
│ │ ├── WelcomeName
│ │ │ └── index.ts
│ │ ├── AdvancedQuery
│ │ │ └── index.ts
│ │ ├── HRQuerySource
│ │ │ └── index.ts
│ │ ├── PageSection
│ │ │ ├── index.ts
│ │ │ └── PageSection.styles.ts
│ │ ├── PageVersion
│ │ │ └── index.ts
│ │ ├── OnboardingStep
│ │ │ └── index.ts
│ │ ├── GroupQuerySource
│ │ │ └── index.ts
│ │ ├── JobsListFilter
│ │ │ └── index.ts
│ │ ├── RunConfiguration
│ │ │ └── index.ts
│ │ ├── SelectDestination
│ │ │ └── index.ts
│ │ ├── PrivacyPolicyLink
│ │ │ └── index.ts
│ │ ├── AdvancedViewSourcePart
│ │ │ └── index.ts
│ │ ├── SourcePart
│ │ │ └── index.ts
│ │ └── MembershipConfiguration
│ │ │ └── index.ts
│ ├── services
│ │ ├── index.ts
│ │ ├── localization
│ │ │ ├── index.ts
│ │ │ ├── defaults.ts
│ │ │ └── ILocalizationService.ts
│ │ ├── auth
│ │ │ ├── TokenType.ts
│ │ │ ├── index.ts
│ │ │ └── IAuthenticationService.ts
│ │ └── Services.ts
│ ├── store
│ │ └── index.tsx
│ ├── testing
│ │ └── index.ts
│ ├── App
│ │ └── index.ts
│ ├── apis
│ │ ├── jobs
│ │ │ ├── index.ts
│ │ │ └── IJobsApi.ts
│ │ ├── roles
│ │ │ ├── index.ts
│ │ │ └── IRolesApi.ts
│ │ ├── settings
│ │ │ ├── index.ts
│ │ │ └── ISettingsApi.ts
│ │ ├── entities
│ │ │ ├── GraphResponseEntity.ts
│ │ │ ├── GraphUserEntity.ts
│ │ │ ├── UserEntity.ts
│ │ │ ├── ODataQueryOptions.ts
│ │ │ └── index.ts
│ │ ├── ApiOptions.ts
│ │ ├── sqlMembershipSources
│ │ │ └── index.ts
│ │ ├── index.ts
│ │ ├── Apis.ts
│ │ └── IGMMApi.ts
│ ├── models
│ │ ├── Page.ts
│ │ ├── GetJobDetailsRequest.ts
│ │ ├── SqlMembershipSource.ts
│ │ ├── SyncJobQuery.ts
│ │ ├── SettingKey.ts
│ │ ├── SqlMembershipAttributeValue.ts
│ │ ├── PagingOptions.ts
│ │ ├── Setting.ts
│ │ ├── OnboardingSteps.ts
│ │ ├── PostJobResponse.ts
│ │ ├── PatchJobResponse.ts
│ │ ├── IFilterPart.ts
│ │ ├── PeoplePickerPersona.ts
│ │ ├── RemoveGMMResponse.ts
│ │ ├── GetAttributeValuesRequest.ts
│ │ ├── ISourcePart.ts
│ │ ├── User.ts
│ │ ├── SqlMembershipAttribute.ts
│ │ ├── Group.ts
│ │ ├── Destination.ts
│ │ ├── GetJobsRequest.ts
│ │ ├── DestinationPickerPersona.ts
│ │ ├── ODataQueryOptions.ts
│ │ ├── SourcePartType.ts
│ │ ├── GroupOnboardingStatus.ts
│ │ ├── PatchJobRequest.ts
│ │ ├── GetAttributeValuesResponse.ts
│ │ ├── GetOrgLeaderDetailsRequest.ts
│ │ ├── GetOrgLeaderDetailsResponse.ts
│ │ ├── JobDetails.ts
│ │ └── NewJob.ts
│ ├── pages
│ │ ├── JobDetails
│ │ │ └── index.ts
│ │ ├── ManageMembership
│ │ │ └── index.ts
│ │ ├── AdminConfig
│ │ │ └── index.ts
│ │ ├── index.ts
│ │ └── OwnerPage.tsx
│ ├── setupTests.ts
│ └── index.css
│ ├── .prettierrc.json
│ ├── .env
│ ├── swa-cli.config.json
│ └── .gitignore
├── .sscignore
├── Service
└── GroupMembershipManagement
│ ├── Hosts
│ ├── DestinationAttributesUpdater
│ │ ├── Function
│ │ │ ├── local.settings.json
│ │ │ └── host.json
│ │ ├── Infrastructure
│ │ │ ├── compute
│ │ │ │ ├── parameters
│ │ │ │ │ ├── parameters.ua.json
│ │ │ │ │ ├── parameters.int.json
│ │ │ │ │ └── parameters.prodv2.json
│ │ │ │ └── keyVaultReader.bicep
│ │ │ └── data
│ │ │ │ ├── parameters
│ │ │ │ ├── parameters.int.json
│ │ │ │ ├── parameters.ua.json
│ │ │ │ └── parameters.prodv2.json
│ │ │ │ └── keyVaultSecretsSecure.bicep
│ │ └── Services.Contracts
│ │ │ └── Services.Contracts.csproj
│ ├── JobTrigger
│ │ ├── Function
│ │ │ ├── host.json
│ │ │ ├── Activity
│ │ │ │ ├── JobUpdater
│ │ │ │ │ └── JobUpdaterRequest.cs
│ │ │ │ └── TelemetryTracker
│ │ │ │ │ └── TelemetryTrackerRequest.cs
│ │ │ └── Entities
│ │ │ │ └── JsonSchemaProvider.cs
│ │ ├── Infrastructure
│ │ │ ├── data
│ │ │ │ ├── parameters
│ │ │ │ │ ├── parameters.int.json
│ │ │ │ │ ├── parameters.ua.json
│ │ │ │ │ └── parameters.prodv2.json
│ │ │ │ └── keyVaultSecretsSecure.bicep
│ │ │ └── compute
│ │ │ │ ├── parameters
│ │ │ │ ├── parameters.int.json
│ │ │ │ ├── parameters.ua.json
│ │ │ │ └── parameters.prodv2.json
│ │ │ │ └── keyVaultReader.bicep
│ │ └── Services.Contracts
│ │ │ └── Services.Contracts.csproj
│ ├── NonProdService
│ │ ├── Function
│ │ │ ├── host.json
│ │ │ ├── Activity
│ │ │ │ ├── GroupUpdater
│ │ │ │ │ └── RequestType.cs
│ │ │ │ ├── TenantUserCount
│ │ │ │ │ └── TenantUserCountRequest.cs
│ │ │ │ ├── LoadTestingSyncJobRetriever
│ │ │ │ │ ├── LoadTestingSyncJobRetrieverRequest.cs
│ │ │ │ │ └── LoadTestingSyncJobRetrieverResponse.cs
│ │ │ │ ├── TenantUserReader
│ │ │ │ │ └── TenantUserReaderRequest.cs
│ │ │ │ └── LoadTestingGroupCalculator
│ │ │ │ │ └── LoadTestingGroupCalculatorResponse.cs
│ │ │ ├── LoadTestingPrepSubOrchestrator
│ │ │ │ ├── LoadTestingPrepSubOrchestratorRequest.cs
│ │ │ │ └── LoadTestingPrepSubOrchestratorOptions.cs
│ │ │ └── IntegrationTestingPrepSubOrchestrator
│ │ │ │ └── IntegrationTestingPrepSubOrchestratorRequest.cs
│ │ ├── Documentation
│ │ │ └── APIPermissionsNonProd.png
│ │ ├── Infrastructure
│ │ │ ├── data
│ │ │ │ ├── parameters
│ │ │ │ │ ├── parameters.int.json
│ │ │ │ │ ├── parameters.ua.json
│ │ │ │ │ └── parameters.prodv2.json
│ │ │ │ └── keyVaultSecretsSecure.bicep
│ │ │ └── compute
│ │ │ │ ├── parameters
│ │ │ │ ├── parameters.int.json
│ │ │ │ ├── parameters.prodv2.json
│ │ │ │ └── parameters.ua.json
│ │ │ │ ├── keyVaultSecrets.bicep
│ │ │ │ ├── keyVaultReader.bicep
│ │ │ │ └── keyVaultSecretsSecure.bicep
│ │ ├── Services.Contracts
│ │ │ ├── Services.Contracts.csproj
│ │ │ └── MembershipDifference.cs
│ │ └── Services
│ │ │ └── Services.csproj
│ ├── WebApi
│ │ ├── WebApi.Tests
│ │ │ └── Usings.cs
│ │ ├── WebApi
│ │ │ ├── appsettings.Development.json
│ │ │ ├── .config
│ │ │ │ └── dotnet-tools.json
│ │ │ └── Configuration
│ │ │ │ └── WebAPISettings.cs
│ │ ├── Infrastructure
│ │ │ ├── data
│ │ │ │ └── parameters
│ │ │ │ │ ├── parameters.ua.json
│ │ │ │ │ ├── parameters.int.json
│ │ │ │ │ └── parameters.prodv2.json
│ │ │ └── compute
│ │ │ │ ├── keyVaultReader.bicep
│ │ │ │ └── parameters
│ │ │ │ ├── parameters.int.json
│ │ │ │ ├── parameters.ua.json
│ │ │ │ └── parameters.prodv2.json
│ │ ├── WebApi.Models
│ │ │ ├── WebApiSettings.cs
│ │ │ ├── Requests
│ │ │ │ └── ResolveNotification.cs
│ │ │ ├── Responses
│ │ │ │ ├── GetJobsModel.cs
│ │ │ │ ├── GetDestinationsModel.cs
│ │ │ │ └── GetAttributeValuesModel.cs
│ │ │ ├── DTOs
│ │ │ │ └── LogMessage.cs
│ │ │ └── WebApi.Models.csproj
│ │ ├── Services.Messages.Contracts
│ │ │ ├── Services.Messages.Contracts.csproj
│ │ │ ├── Requests
│ │ │ │ └── RequestBase.cs
│ │ │ ├── Responses
│ │ │ │ └── ResponseBase.cs
│ │ │ └── MessageBase.cs
│ │ ├── Services.Messages
│ │ │ ├── Responses
│ │ │ │ ├── NullResponse.cs
│ │ │ │ ├── GetSettingResponse.cs
│ │ │ │ ├── NotificationCardResponse.cs
│ │ │ │ ├── ResolveNotificationResponse.cs
│ │ │ │ ├── GetGroupEndpointsResponse.cs
│ │ │ │ ├── GetGroupOnboardingStatusResponse.cs
│ │ │ │ ├── GetOrgLeaderDetailsResponse.cs
│ │ │ │ ├── GetDefaultSqlMembershipSourceResponse.cs
│ │ │ │ └── GetOrgLeaderResponse.cs
│ │ │ └── Requests
│ │ │ │ ├── GetAllSettingsRequest.cs
│ │ │ │ ├── GetDefaultSqlMembershipSourceRequest.cs
│ │ │ │ ├── GetGroupEndpointsRequest.cs
│ │ │ │ ├── GetDefaultSqlMembershipSourceAttributesRequest.cs
│ │ │ │ └── SearchDestinationsRequest.cs
│ │ └── Services.WebApi.Contracts
│ │ │ ├── IValidator.cs
│ │ │ ├── IRequestHandler.cs
│ │ │ └── ValidationResponse.cs
│ ├── Console
│ │ └── DemoUserSetup
│ │ │ ├── Settings.json
│ │ │ └── data.csv
│ ├── UI
│ │ └── Infrastructure
│ │ │ └── data
│ │ │ └── parameters
│ │ │ ├── parameters.int.json
│ │ │ ├── parameters.prodv2.json
│ │ │ └── parameters.ua.json
│ ├── Notifier
│ │ ├── Infrastructure
│ │ │ ├── compute
│ │ │ │ ├── parameters
│ │ │ │ │ ├── parameters.ua.json
│ │ │ │ │ ├── parameters.int.json
│ │ │ │ │ └── parameters.prodv2.json
│ │ │ │ ├── keyVaultSecrets.bicep
│ │ │ │ ├── keyVaultReader.bicep
│ │ │ │ └── keyVaultSecretsSecure.bicep
│ │ │ └── data
│ │ │ │ ├── parameters
│ │ │ │ ├── parameters.int.json
│ │ │ │ ├── parameters.ua.json
│ │ │ │ └── parameters.prodv2.json
│ │ │ │ └── keyVaultSecretsSecure.bicep
│ │ ├── Function
│ │ │ ├── Requests
│ │ │ │ ├── NotifierRequest.cs
│ │ │ │ └── UpdateNotificationStatusRequest.cs
│ │ │ └── host.json
│ │ └── Services.Notifier.Contracts
│ │ │ └── Services.Notifier.Contracts.csproj
│ ├── AzureMaintenance
│ │ ├── Infrastructure
│ │ │ ├── data
│ │ │ │ ├── parameters
│ │ │ │ │ ├── parameters.ua.json
│ │ │ │ │ ├── parameters.int.json
│ │ │ │ │ └── parameters.prodv2.json
│ │ │ │ └── keyVaultSecretsSecure.bicep
│ │ │ └── compute
│ │ │ │ ├── parameters
│ │ │ │ ├── parameters.int.json
│ │ │ │ ├── parameters.ua.json
│ │ │ │ └── parameters.prodv2.json
│ │ │ │ └── keyVaultReader.bicep
│ │ ├── Function
│ │ │ └── host.json
│ │ ├── Services.Entities
│ │ │ ├── Services.Entities.csproj
│ │ │ └── Contracts
│ │ │ │ └── IReviewAndDeleteRequest.cs
│ │ └── Services
│ │ │ └── Services.csproj
│ ├── AzureUserReader
│ │ ├── Infrastructure
│ │ │ ├── data
│ │ │ │ ├── parameters
│ │ │ │ │ ├── parameters.int.json
│ │ │ │ │ ├── parameters.ua.json
│ │ │ │ │ └── parameters.prodv2.json
│ │ │ │ └── keyVaultSecretsSecure.bicep
│ │ │ └── compute
│ │ │ │ ├── keyVaultReader.bicep
│ │ │ │ ├── keyVaultSecrets.bicep
│ │ │ │ ├── parameters
│ │ │ │ ├── parameters.int.json
│ │ │ │ ├── parameters.prodv2.json
│ │ │ │ └── parameters.ua.json
│ │ │ │ └── keyVaultSecretsSecure.bicep
│ │ ├── Services.Entities
│ │ │ └── Services.Entities.csproj
│ │ ├── Services.Contracts
│ │ │ ├── IBlobClientFactory.cs
│ │ │ └── Services.Contracts.csproj
│ │ └── Function
│ │ │ ├── Requests
│ │ │ └── AzureUserCreatorRequest.cs
│ │ │ └── host.json
│ ├── GraphUpdater
│ │ ├── Infrastructure
│ │ │ ├── compute
│ │ │ │ ├── parameters
│ │ │ │ │ ├── parameters.int.json
│ │ │ │ │ ├── parameters.ua.json
│ │ │ │ │ └── parameters.prodv2.json
│ │ │ │ ├── keyVaultSecrets.bicep
│ │ │ │ ├── keyVaultReader.bicep
│ │ │ │ └── keyVaultSecretsSecure.bicep
│ │ │ └── data
│ │ │ │ ├── parameters
│ │ │ │ ├── parameters.int.json
│ │ │ │ ├── parameters.prodv2.json
│ │ │ │ └── parameters.ua.json
│ │ │ │ └── keyVaultSecretsSecure.bicep
│ │ ├── Function
│ │ │ ├── Activity
│ │ │ │ ├── GroupUpdater
│ │ │ │ │ └── RequestType.cs
│ │ │ │ ├── JobReader
│ │ │ │ │ └── JobReaderRequest.cs
│ │ │ │ ├── GroupNameReader
│ │ │ │ │ └── GroupUpdaterRequest.cs
│ │ │ │ ├── GroupOwnersReader
│ │ │ │ │ └── GroupOwnersReaderRequest.cs
│ │ │ │ ├── FileDownloader
│ │ │ │ │ └── FileDownloaderRequest.cs
│ │ │ │ ├── GroupValidator
│ │ │ │ │ └── GroupValidatorRequest.cs
│ │ │ │ └── TelemetryTracker
│ │ │ │ │ └── TelemetryTrackerRequest.cs
│ │ │ ├── Entities
│ │ │ │ ├── Destination.cs
│ │ │ │ └── GraphUpdaterBatchSize.cs
│ │ │ └── Orchestrator
│ │ │ │ ├── GroupMembershipMessage.cs
│ │ │ │ └── GroupMembershipMessageResponse.cs
│ │ └── Services.Entities
│ │ │ ├── GraphUpdaterStatus.cs
│ │ │ └── MessageInformation.cs
│ ├── JobScheduler
│ │ ├── Infrastructure
│ │ │ ├── compute
│ │ │ │ ├── parameters
│ │ │ │ │ ├── parameters.int.json
│ │ │ │ │ ├── parameters.ua.json
│ │ │ │ │ └── parameters.prodv2.json
│ │ │ │ ├── keyVaultSecrets.bicep
│ │ │ │ └── keyVaultSecretsSecure.bicep
│ │ │ └── data
│ │ │ │ └── parameters
│ │ │ │ ├── parameters.int.json
│ │ │ │ ├── parameters.prodv2.json
│ │ │ │ └── parameters.ua.json
│ │ ├── Function
│ │ │ ├── host.json
│ │ │ ├── Orchestrator
│ │ │ │ └── OrchestratorRequest.cs
│ │ │ ├── Activity
│ │ │ │ ├── CheckJobSchedulerStatus
│ │ │ │ │ └── CheckJobSchedulerStatusRequest.cs
│ │ │ │ ├── GetJobs
│ │ │ │ │ └── GetJobsResponse.cs
│ │ │ │ ├── BatchUpdateJobs
│ │ │ │ │ └── BatchUpdateJobsRequest.cs
│ │ │ │ ├── ResetJobs
│ │ │ │ │ └── ResetJobsRequest.cs
│ │ │ │ └── PostCallback
│ │ │ │ │ └── PostCallbackRequest.cs
│ │ │ └── UpdateJobsSubOrchestrator
│ │ │ │ └── UpdateJobsSubOrchestratorRequest.cs
│ │ ├── Services.Contracts
│ │ │ ├── IApplicationService.cs
│ │ │ ├── Services.Contracts.csproj
│ │ │ └── IRuntimeRetrievalService.cs
│ │ └── Services.Entities
│ │ │ ├── Services.Entities.csproj
│ │ │ └── JobSchedulerConfigString.cs
│ ├── MembershipAggregator
│ │ ├── Infrastructure
│ │ │ ├── data
│ │ │ │ ├── parameters
│ │ │ │ │ ├── parameters.int.json
│ │ │ │ │ ├── parameters.ua.json
│ │ │ │ │ └── parameters.prodv2.json
│ │ │ │ └── keyVaultSecretsSecure.bicep
│ │ │ └── compute
│ │ │ │ ├── parameters
│ │ │ │ ├── parameters.int.json
│ │ │ │ ├── parameters.ua.json
│ │ │ │ └── parameters.prodv2.json
│ │ │ │ ├── keyVaultReader.bicep
│ │ │ │ ├── keyVaultSecrets.bicep
│ │ │ │ └── keyVaultSecretsSecure.bicep
│ │ ├── Services.Entities
│ │ │ ├── Metric.cs
│ │ │ ├── Services.Entities.csproj
│ │ │ └── MembershipDeltaStatus.cs
│ │ ├── Function
│ │ │ └── Activity
│ │ │ │ ├── JobReader
│ │ │ │ └── JobReaderRequest.cs
│ │ │ │ ├── FileDownloader
│ │ │ │ └── FileDownloaderRequest.cs
│ │ │ │ └── Logger
│ │ │ │ └── LoggerRequest.cs
│ │ └── Services.Contracts
│ │ │ └── Services.Contracts.csproj
│ ├── SqlMembershipObtainer
│ │ ├── Infrastructure
│ │ │ ├── data
│ │ │ │ ├── parameters
│ │ │ │ │ ├── parameters.ua.json
│ │ │ │ │ ├── parameters.int.json
│ │ │ │ │ └── parameters.prodv2.json
│ │ │ │ └── keyVaultSecretsSecure.bicep
│ │ │ └── compute
│ │ │ │ └── keyVaultReader.bicep
│ │ ├── Services.Contracts
│ │ │ └── IDataFactoryService.cs
│ │ ├── Function
│ │ │ ├── Activity
│ │ │ │ ├── JobStatusUpdater
│ │ │ │ │ └── JobStatusUpdaterRequest.cs
│ │ │ │ ├── ChildEntitiesFilter
│ │ │ │ │ └── ChildEntitiesFilterRequest.cs
│ │ │ │ └── FeatureFlagReader
│ │ │ │ │ └── FeatureFlagRequest.cs
│ │ │ └── SubOrchestrator
│ │ │ │ └── OrganizationProcessor
│ │ │ │ └── OrganizationProcessorRequest.cs
│ │ └── Services.Tests
│ │ │ └── Helpers
│ │ │ └── OrganizationLevel.cs
│ ├── TeamsChannelUpdater
│ │ ├── Infrastructure
│ │ │ ├── data
│ │ │ │ ├── parameters
│ │ │ │ │ ├── parameters.int.json
│ │ │ │ │ ├── parameters.ua.json
│ │ │ │ │ └── parameters.prodv2.json
│ │ │ │ └── keyVaultSecretsSecure.bicep
│ │ │ └── compute
│ │ │ │ ├── parameters
│ │ │ │ ├── parameters.int.json
│ │ │ │ ├── parameters.prodv2.json
│ │ │ │ └── parameters.ua.json
│ │ │ │ └── keyVaultReader.bicep
│ │ ├── Function
│ │ │ └── Activity
│ │ │ │ ├── TeamsUpdater
│ │ │ │ └── RequestType.cs
│ │ │ │ ├── JobReader
│ │ │ │ └── JobReaderRequest.cs
│ │ │ │ ├── GroupNameReader
│ │ │ │ └── GroupUpdaterRequest.cs
│ │ │ │ ├── GroupOwnersReader
│ │ │ │ └── GroupOwnersReaderRequest.cs
│ │ │ │ └── FileDownloader
│ │ │ │ └── FileDownloaderRequest.cs
│ │ └── Services.TeamsChannelUpdater
│ │ │ └── TeamsChannelUpdaterStatus.cs
│ ├── GroupMembershipObtainer
│ │ ├── Infrastructure
│ │ │ ├── compute
│ │ │ │ ├── parameters
│ │ │ │ │ ├── parameters.ua.json
│ │ │ │ │ ├── parameters.int.json
│ │ │ │ │ └── parameters.prodv2.json
│ │ │ │ └── keyVaultReader.bicep
│ │ │ └── data
│ │ │ │ ├── parameters
│ │ │ │ ├── parameters.int.json
│ │ │ │ ├── parameters.ua.json
│ │ │ │ └── parameters.prodv2.json
│ │ │ │ └── keyVaultSecretsSecure.bicep
│ │ └── Function
│ │ │ ├── Activity
│ │ │ ├── GetUserCount
│ │ │ │ └── GetUserCountRequest.cs
│ │ │ ├── UsersReader
│ │ │ │ └── UsersReaderRequest.cs
│ │ │ ├── FileDeleter
│ │ │ │ └── FileDeleterRequest.cs
│ │ │ ├── MembersReader
│ │ │ │ └── MembersReaderRequest.cs
│ │ │ ├── FileDownloader
│ │ │ │ └── FileDownloaderRequest.cs
│ │ │ ├── DeltaUsersReader
│ │ │ │ └── DeltaUsersReaderRequest.cs
│ │ │ ├── GetTransitiveGroupCount
│ │ │ │ └── GetTransitiveGroupCountRequest.cs
│ │ │ ├── SubsequentUsersReader
│ │ │ │ └── SubsequentUsersReaderRequest.cs
│ │ │ ├── JobStatusUpdater
│ │ │ │ └── JobStatusUpdaterRequest.cs
│ │ │ ├── SubsequentMembersReader
│ │ │ │ └── SubsequentMembersReaderRequest.cs
│ │ │ └── SubsequentDeltaUsersReader
│ │ │ │ └── SubsequentDeltaUsersReaderRequest.cs
│ │ │ ├── SubOrchestrator
│ │ │ ├── UsersReaderResponse.cs
│ │ │ └── SubOrchestratorResponse.cs
│ │ │ └── Request
│ │ │ └── GroupMembershipRequest.cs
│ ├── GroupOwnershipObtainer
│ │ ├── Infrastructure
│ │ │ ├── compute
│ │ │ │ ├── parameters
│ │ │ │ │ ├── parameters.int.json
│ │ │ │ │ ├── parameters.ua.json
│ │ │ │ │ └── parameters.prodv2.json
│ │ │ │ └── keyVaultReader.bicep
│ │ │ └── data
│ │ │ │ ├── parameters
│ │ │ │ ├── parameters.int.json
│ │ │ │ ├── parameters.prodv2.json
│ │ │ │ └── parameters.ua.json
│ │ │ │ └── keyVaultSecretsSecure.bicep
│ │ ├── Services.Entities
│ │ │ ├── Services.Entities.csproj
│ │ │ └── JobsFilterSyncJob.cs
│ │ └── Function
│ │ │ └── Activity
│ │ │ ├── GetJobsSegmented
│ │ │ └── GetJobsSegmentedResponse.cs
│ │ │ ├── JobStatusUpdater
│ │ │ └── JobStatusUpdaterRequest.cs
│ │ │ └── GetGroupOwners
│ │ │ └── GetGroupOwnersRequest.cs
│ ├── PlaceMembershipObtainer
│ │ ├── Infrastructure
│ │ │ ├── compute
│ │ │ │ ├── parameters
│ │ │ │ │ ├── parameters.ua.json
│ │ │ │ │ ├── parameters.int.json
│ │ │ │ │ └── parameters.prodv2.json
│ │ │ │ └── keyVaultReader.bicep
│ │ │ └── data
│ │ │ │ └── parameters
│ │ │ │ ├── parameters.int.json
│ │ │ │ ├── parameters.ua.json
│ │ │ │ └── parameters.prodv2.json
│ │ └── Function
│ │ │ ├── host.json
│ │ │ ├── Activity
│ │ │ ├── UsersReader
│ │ │ │ └── UsersReaderRequest.cs
│ │ │ ├── SubsequentUsersReader
│ │ │ │ └── SubsequentUsersReaderRequest.cs
│ │ │ ├── JobStatusUpdater
│ │ │ │ └── JobStatusUpdaterRequest.cs
│ │ │ └── RoomsReader
│ │ │ │ └── RoomsReaderRequest.cs
│ │ │ └── SubOrchestrator
│ │ │ └── SubOrchestratorRequest.cs
│ ├── TeamsChannelMembershipObtainer
│ │ ├── Infrastructure
│ │ │ ├── data
│ │ │ │ ├── parameters
│ │ │ │ │ ├── parameters.int.json
│ │ │ │ │ ├── parameters.ua.json
│ │ │ │ │ └── parameters.prodv2.json
│ │ │ │ └── keyVaultSecretsSecure.bicep
│ │ │ └── compute
│ │ │ │ ├── parameters
│ │ │ │ ├── parameters.int.json
│ │ │ │ ├── parameters.ua.json
│ │ │ │ └── parameters.prodv2.json
│ │ │ │ ├── keyVaultReader.bicep
│ │ │ │ └── keyVaultSecretsSecure.bicep
│ │ ├── Documentation
│ │ │ └── TeamsChannelTypeDestinationSchema.md
│ │ └── Function
│ │ │ └── Activity
│ │ │ └── JobStatusUpdater
│ │ │ └── JobStatusUpdaterRequest.cs
│ └── SqlMembershipObtainer.Common
│ │ └── SqlMembershipObtainer.Entities
│ │ ├── Person.cs
│ │ └── SqlMembershipObtainer.Entities.csproj
│ ├── global.json
│ ├── Models
│ ├── Models.csproj
│ ├── StorageType.cs
│ ├── BlobStatus.cs
│ ├── ResultStatus.cs
│ ├── IAzureADObject.cs
│ ├── TestGroupType.cs
│ ├── AzureMaintenance
│ │ ├── BlobResult.cs
│ │ └── BackupTable.cs
│ ├── MembershipAction.cs
│ ├── SyncJobGroup.cs
│ ├── QueryType.cs
│ ├── DestinationVerifierResult.cs
│ ├── OnboardingStatus.cs
│ ├── SettingKey.cs
│ ├── SqlMembershipSource.cs
│ ├── ResponseCode.cs
│ ├── Status.cs
│ ├── BlobMetadataResult.cs
│ ├── MembershipHttpRequest.cs
│ ├── CustomAttributes
│ │ └── IgnoreLoggingAttribute.cs
│ ├── SyncJobChange
│ │ ├── SyncJobChangeSource.cs
│ │ └── SyncJobChangeSortingField.cs
│ ├── TeamsDestination.cs
│ ├── LogProperties.cs
│ ├── MembershipAggregatorHttpRequest.cs
│ ├── Page.cs
│ ├── SqlMembershipAttribute.cs
│ ├── DestinationAttributes.cs
│ ├── PlaceInformation.cs
│ ├── UpdateMergeSyncJob.cs
│ └── AdaptiveCards
│ │ └── ThesholdNotificationNotFoundCardData.cs
│ ├── Common.FunctionSetup
│ └── Common.FunctionSetup.csproj
│ ├── Entities
│ └── SyncJobChangeSource.cs
│ ├── Repositories.Contracts
│ ├── InjectConfig
│ │ ├── IDryRunValue.cs
│ │ ├── IDeltaCachingConfig.cs
│ │ ├── IGMMResources.cs
│ │ ├── IStorageAccountSecret.cs
│ │ ├── IThresholdNotificationConfig.cs
│ │ ├── ISyncJobRepoCredentials.cs
│ │ ├── IGraphServiceAttemptsValue.cs
│ │ ├── INotificationRepoCredentials.cs
│ │ ├── IHandleInactiveJobsConfig.cs
│ │ ├── ILogAnalyticsSecret.cs
│ │ ├── IKeyVaultSecret.cs
│ │ └── IJobTriggerConfig.cs
│ ├── IHttpRepository.cs
│ ├── IGMMEmailReceivers.cs
│ ├── IDatabaseMigrationsRepository.cs
│ ├── Http
│ │ ├── IClientSecretCredential.cs
│ │ ├── IHttpAuthenticationProvider.cs
│ │ └── IHttpRequestTokenProvider.cs
│ ├── IServiceBusQueueRepository.cs
│ ├── IAppConfigVerbosity.cs
│ ├── IMailRepository.cs
│ ├── IFeatureFlagRepository.cs
│ ├── IDataFactoryRepository.cs
│ ├── ILocalizationRepository.cs
│ ├── IServiceBusTopicsRepository.cs
│ └── IServiceBusSubscriptionsRepository.cs
│ ├── nuget.config
│ ├── DIConcreteTypes
│ ├── DIConcreteTypes.csproj
│ └── ThresholdNotificationServiceConfig.cs
│ ├── Common.DependencyInjection
│ └── AuthenticationType.cs
│ ├── Services.Contracts
│ └── Services.Contracts.csproj
│ ├── Repositories.SyncJobs.Tests
│ └── Repositories.SyncJobs.Tests.csproj
│ ├── Repositories.Mocks
│ ├── MockSubscription.cs
│ └── MockTopic.cs
│ ├── Repositories.Notifications.Tests
│ └── Repositories.Notifications.Tests.csproj
│ └── Repositories.ServiceBusTopics.Tests
│ └── Repositories.ServiceBusTopics.Tests.csproj
├── Documentation
├── IPIssueSnapshot1.png
├── IPIssueSnapshot2.png
├── TenantThreshold.png
├── Architectural Diagram - External.jpg
├── Architectural Diagram - External.pdf
├── CreateDemoTenant
│ └── Images
│ │ ├── MicrosoftDemosPage.PNG
│ │ ├── O365TenantChoices.PNG
│ │ └── CreateNewTenantPage.PNG
└── SQLServerBackups.md
├── SUPPORT.md
├── CONTRIBUTING.md
└── Infrastructure
├── data
├── keyVaultSecrets.bicep
├── keyVaultSecretsSecure.bicep
├── serviceBusTopic.bicep
└── userAssignedIdentity.bicep
└── adf
└── sql
└── keyVaultSecretsSecure.bicep
/UI/web-app/.node-version:
--------------------------------------------------------------------------------
1 | v14.19.0
--------------------------------------------------------------------------------
/.sscignore:
--------------------------------------------------------------------------------
1 | {
2 | "cfs": ["CFS0001","CFS0013"]
3 | }
--------------------------------------------------------------------------------
/UI/web-app/public/index.css:
--------------------------------------------------------------------------------
1 | html, body {
2 | margin: 0
3 | }
--------------------------------------------------------------------------------
/UI/web-app/src/react-app-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/UI/web-app/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/DestinationAttributesUpdater/Function/local.settings.json:
--------------------------------------------------------------------------------
1 | {
2 |
3 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/global.json:
--------------------------------------------------------------------------------
1 | {
2 | "sdk": {
3 | "version": "6.0.412"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/UI/web-app/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "semi": true,
3 | "singleQuote": true,
4 | "printWidth": 120
5 | }
6 |
--------------------------------------------------------------------------------
/UI/web-app/src/components/ContentContainer/index.ts:
--------------------------------------------------------------------------------
1 | export * from './ContentContainer';
2 | export * from './ContentContainer.types';
--------------------------------------------------------------------------------
/UI/web-app/src/components/HyperlinkSetting/index.ts:
--------------------------------------------------------------------------------
1 | export * from './HyperlinkSetting';
2 | export * from './HyperlinkSetting.types';
--------------------------------------------------------------------------------
/UI/web-app/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoftgraph/group-membership-management/main/UI/web-app/public/favicon.ico
--------------------------------------------------------------------------------
/UI/web-app/public/logo192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoftgraph/group-membership-management/main/UI/web-app/public/logo192.png
--------------------------------------------------------------------------------
/UI/web-app/public/logo512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoftgraph/group-membership-management/main/UI/web-app/public/logo512.png
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobTrigger/Function/host.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "2.0",
3 | "functionTimeout": "00:10:00"
4 | }
--------------------------------------------------------------------------------
/UI/web-app/public/gmmlogo192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoftgraph/group-membership-management/main/UI/web-app/public/gmmlogo192.png
--------------------------------------------------------------------------------
/Documentation/IPIssueSnapshot1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoftgraph/group-membership-management/main/Documentation/IPIssueSnapshot1.png
--------------------------------------------------------------------------------
/Documentation/IPIssueSnapshot2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoftgraph/group-membership-management/main/Documentation/IPIssueSnapshot2.png
--------------------------------------------------------------------------------
/Documentation/TenantThreshold.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoftgraph/group-membership-management/main/Documentation/TenantThreshold.png
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Function/host.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "2.0",
3 | "functionTimeout": "00:10:00"
4 | }
--------------------------------------------------------------------------------
/UI/web-app/public/gmmlogo192-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoftgraph/group-membership-management/main/UI/web-app/public/gmmlogo192-2.png
--------------------------------------------------------------------------------
/UI/web-app/src/services/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './Services';
--------------------------------------------------------------------------------
/UI/web-app/src/store/index.tsx:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './store';
5 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/DestinationAttributesUpdater/Function/host.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "2.0",
3 | "functionTimeout": "00:10:00"
4 | }
--------------------------------------------------------------------------------
/UI/web-app/src/testing/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './renderWithProviders';
--------------------------------------------------------------------------------
/Documentation/Architectural Diagram - External.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoftgraph/group-membership-management/main/Documentation/Architectural Diagram - External.jpg
--------------------------------------------------------------------------------
/Documentation/Architectural Diagram - External.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoftgraph/group-membership-management/main/Documentation/Architectural Diagram - External.pdf
--------------------------------------------------------------------------------
/SUPPORT.md:
--------------------------------------------------------------------------------
1 | For support on the GMM tool installation, set up or use of the tool, please submit an issue on GitHub. A GMM support team member will respond within 5 business days.
--------------------------------------------------------------------------------
/UI/web-app/src/App/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './App';
5 | export * from './App.types';
6 |
--------------------------------------------------------------------------------
/UI/web-app/src/apis/jobs/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './IJobsApi';
5 | export * from './JobsApi';
--------------------------------------------------------------------------------
/UI/web-app/src/apis/roles/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './IRolesApi';
5 | export * from './RolesApi';
--------------------------------------------------------------------------------
/UI/web-app/src/apis/settings/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './ISettingsApi';
5 | export * from './SettingsApi';
--------------------------------------------------------------------------------
/UI/web-app/src/components/Banner/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './Banner';
5 | export * from './Banner.types';
--------------------------------------------------------------------------------
/UI/web-app/src/components/Loader/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './Loader';
5 | export * from './Loader.types';
--------------------------------------------------------------------------------
/UI/web-app/src/components/Owner/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './Owner';
5 | export * from './Owner.types';
6 |
--------------------------------------------------------------------------------
/UI/web-app/src/components/Page/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './Page';
5 | export * from './Page.types';
6 |
--------------------------------------------------------------------------------
/Documentation/CreateDemoTenant/Images/MicrosoftDemosPage.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoftgraph/group-membership-management/main/Documentation/CreateDemoTenant/Images/MicrosoftDemosPage.PNG
--------------------------------------------------------------------------------
/Documentation/CreateDemoTenant/Images/O365TenantChoices.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoftgraph/group-membership-management/main/Documentation/CreateDemoTenant/Images/O365TenantChoices.PNG
--------------------------------------------------------------------------------
/UI/web-app/src/components/HRFilter/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './HRFilter';
5 | export * from './HRFilter.types';
--------------------------------------------------------------------------------
/UI/web-app/src/models/Page.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export type Page = {
5 | items: T[];
6 | totalNumberOfPages: number;
7 | }
--------------------------------------------------------------------------------
/UI/web-app/src/pages/JobDetails/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './JobDetails';
5 | export * from './JobDetails.types';
--------------------------------------------------------------------------------
/UI/web-app/src/services/localization/index.ts:
--------------------------------------------------------------------------------
1 | export * from './defaults';
2 | export * from './ILocalizationService';
3 | export * from './LocalizationService';
4 | export * from './IStrings';
5 |
--------------------------------------------------------------------------------
/Documentation/CreateDemoTenant/Images/CreateNewTenantPage.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoftgraph/group-membership-management/main/Documentation/CreateDemoTenant/Images/CreateNewTenantPage.PNG
--------------------------------------------------------------------------------
/UI/web-app/src/apis/entities/GraphResponseEntity.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export type GraphResponseEntity = {
5 | value: T;
6 | };
--------------------------------------------------------------------------------
/UI/web-app/src/components/JobsList/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './JobsList';
5 | export * from './JobsList.types';
6 |
--------------------------------------------------------------------------------
/UI/web-app/src/apis/entities/GraphUserEntity.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export type GraphUserEntity = {
5 | preferredLanguage: string;
6 | };
--------------------------------------------------------------------------------
/UI/web-app/src/components/AppFooter/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './AppFooter';
5 | export * from './AppFooter.types';
6 |
--------------------------------------------------------------------------------
/UI/web-app/src/components/AppHeader/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './AppHeader';
5 | export * from './AppHeader.types';
6 |
--------------------------------------------------------------------------------
/UI/web-app/src/components/Confirmation/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './Confirmation';
5 | export * from './Confirmation.types';
--------------------------------------------------------------------------------
/UI/web-app/src/components/PageHeader/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './PageHeader';
5 | export * from './PageHeader.types';
6 |
--------------------------------------------------------------------------------
/UI/web-app/src/components/PagingBar/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './PagingBar';
5 | export * from './PagingBar.types';
6 |
--------------------------------------------------------------------------------
/UI/web-app/src/components/WelcomeName/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './WelcomeName';
5 | export * from './WelcomeName.types';
--------------------------------------------------------------------------------
/UI/web-app/src/models/GetJobDetailsRequest.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export interface GetJobDetailsRequest {
5 | syncJobId: string;
6 | }
7 |
--------------------------------------------------------------------------------
/UI/web-app/src/services/auth/TokenType.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export const enum TokenType {
5 | GMM = 'gmm',
6 | Graph = 'graph'
7 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/Models.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/UI/web-app/src/components/AdvancedQuery/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './AdvancedQuery';
5 | export * from './AdvancedQuery.types';
--------------------------------------------------------------------------------
/UI/web-app/src/components/HRQuerySource/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './HRQuerySource';
5 | export * from './HRQuerySource.types';
--------------------------------------------------------------------------------
/UI/web-app/src/components/PageSection/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './PageSection';
5 | export * from './PageSection.types';
6 |
--------------------------------------------------------------------------------
/UI/web-app/src/components/PageVersion/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './PageVersion';
5 | export * from './PageVersion.types';
6 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 | Code contributions are not being accepted at this point, but there are plans to allow code contributions in the near future. We will let you know as soon as we are ready to do so.
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/WebApi.Tests/Usings.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | global using Microsoft.VisualStudio.TestTools.UnitTesting;
--------------------------------------------------------------------------------
/UI/web-app/src/components/OnboardingStep/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './OnboardingStep';
5 | export * from './OnboardingStep.types';
--------------------------------------------------------------------------------
/UI/web-app/src/pages/ManageMembership/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './ManageMembership';
5 | export * from './ManageMembership.types';
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/Console/DemoUserSetup/Settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "ClientId": "",
3 | "TenantId": "",
4 | "TenantName": ".onmicrosoft.com",
5 | "UserCount":
6 | }
--------------------------------------------------------------------------------
/UI/web-app/src/components/GroupQuerySource/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './GroupQuerySource';
5 | export * from './GroupQuerySource.types';
--------------------------------------------------------------------------------
/UI/web-app/src/components/JobsListFilter/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './JobsListFilter';
5 | export * from './JobsListFilter.types';
6 |
--------------------------------------------------------------------------------
/UI/web-app/src/components/RunConfiguration/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './RunConfiguration';
5 | export * from './RunConfiguration.types';
--------------------------------------------------------------------------------
/UI/web-app/src/components/SelectDestination/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './SelectDestination';
5 | export * from './SelectDestination.types';
--------------------------------------------------------------------------------
/UI/web-app/src/apis/ApiOptions.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export type ApiOptions = {
5 | baseUrl: string;
6 | getTokenAsync: () => Promise;
7 | }
8 |
--------------------------------------------------------------------------------
/UI/web-app/src/apis/sqlMembershipSources/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './ISqlMembershipSourcesApi';
5 | export * from './SqlMembershipSourcesApi';
--------------------------------------------------------------------------------
/UI/web-app/src/components/PrivacyPolicyLink/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './PrivacyPolicyLink';
5 | export * from './PrivacyPolicyLink.types';
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/WebApi/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft.AspNetCore": "Warning"
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/UI/web-app/src/apis/entities/UserEntity.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export type UserEntity = {
5 | displayName: string;
6 | mail: string;
7 | id: string;
8 | };
--------------------------------------------------------------------------------
/UI/web-app/src/components/AdvancedViewSourcePart/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './AdvancedViewSourcePart';
5 | export * from './AdvancedViewSourcePart.types';
--------------------------------------------------------------------------------
/UI/web-app/src/models/SqlMembershipSource.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export type SqlMembershipSource = {
5 | name: string;
6 | customLabel: string;
7 | };
8 |
--------------------------------------------------------------------------------
/UI/web-app/src/models/SyncJobQuery.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | import { SourcePartQuery } from "./SourcePartQuery";
5 |
6 | export type SyncJobQuery = SourcePartQuery[];
7 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Common.FunctionSetup/Common.FunctionSetup.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/UI/web-app/src/apis/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './ApiOptions';
5 | export * from './Apis';
6 | export * from './GMMApi';
7 | export * from './GraphApi';
8 |
9 |
--------------------------------------------------------------------------------
/UI/web-app/src/services/auth/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './IAuthenticationService';
5 | export * from './MsalAuthenticationService';
6 | export * from './TokenType';
--------------------------------------------------------------------------------
/UI/web-app/src/components/SourcePart/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './SourcePart';
5 | export * from './SourcePart.types';
6 | export { SourcePart } from './SourcePart';
--------------------------------------------------------------------------------
/UI/web-app/src/models/SettingKey.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export const enum SettingKey {
5 | DashboardUrl = 0,
6 | OutlookWarningUrl = 1,
7 | PrivacyPolicyUrl = 2,
8 | }
9 |
--------------------------------------------------------------------------------
/UI/web-app/src/models/SqlMembershipAttributeValue.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export type SqlMembershipAttributeValue = {
5 | description: string;
6 | code: string;
7 | };
8 |
--------------------------------------------------------------------------------
/UI/web-app/src/pages/AdminConfig/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './AdminConfig';
5 | export * from './AdminConfig.types';
6 | export { AdminConfig } from './AdminConfig';
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/UI/Infrastructure/data/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/UI/Infrastructure/data/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/UI/Infrastructure/data/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
--------------------------------------------------------------------------------
/UI/web-app/src/models/PagingOptions.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export type PagingOptions = {
5 | pageSize?: number;
6 | itemsToSkip?: number;
7 | filter?: string;
8 | orderBy?: string;
9 | }
--------------------------------------------------------------------------------
/UI/web-app/src/models/Setting.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | import { SettingKey } from './SettingKey';
5 |
6 | export type Setting = {
7 | settingKey: SettingKey;
8 | settingValue: string;
9 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Documentation/APIPermissionsNonProd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoftgraph/group-membership-management/main/Service/GroupMembershipManagement/Hosts/NonProdService/Documentation/APIPermissionsNonProd.png
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Infrastructure/data/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobTrigger/Infrastructure/data/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobTrigger/Infrastructure/data/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/Notifier/Infrastructure/compute/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/Notifier/Infrastructure/data/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/Notifier/Infrastructure/data/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Infrastructure/data/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Infrastructure/data/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/UI/web-app/.env:
--------------------------------------------------------------------------------
1 | REACT_APP_AAD_UI_APP_CLIENT_ID=
2 | REACT_APP_AAD_API_APP_CLIENT_ID=
3 | REACT_APP_AAD_APP_TENANT_ID=
4 | REACT_APP_AAD_APP_SERVICE_BASE_URI=
5 | REACT_APP_APPINSIGHTS_CONNECTIONSTRING=
6 | REACT_APP_VERSION_NUMBER=
7 | REACT_APP_ENVIRONMENT_ABBREVIATION=
--------------------------------------------------------------------------------
/UI/web-app/src/models/OnboardingSteps.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export enum OnboardingSteps {
5 | SelectDestination,
6 | RunConfiguration,
7 | MembershipConfiguration,
8 | Confirmation
9 | }
--------------------------------------------------------------------------------
/UI/web-app/src/models/PostJobResponse.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | export interface PostJobResponse {
4 | ok: boolean;
5 | statusCode: number;
6 | errorCode?: string;
7 | newSyncJobId?: string;
8 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureMaintenance/Infrastructure/data/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureUserReader/Infrastructure/data/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureUserReader/Infrastructure/data/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Infrastructure/compute/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Infrastructure/compute/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Infrastructure/data/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Infrastructure/data/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Infrastructure/data/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobScheduler/Infrastructure/compute/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobScheduler/Infrastructure/compute/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobScheduler/Infrastructure/data/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobScheduler/Infrastructure/data/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobScheduler/Infrastructure/data/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobTrigger/Infrastructure/compute/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobTrigger/Infrastructure/compute/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobTrigger/Infrastructure/data/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Infrastructure/data/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Infrastructure/data/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/Notifier/Infrastructure/compute/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/Notifier/Infrastructure/compute/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/Notifier/Infrastructure/data/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/StorageType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Models
5 | {
6 | public enum StorageType
7 | {
8 | Table,
9 | Blob
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/UI/web-app/src/models/PatchJobResponse.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | export interface PatchJobResponse {
4 | ok: boolean;
5 | statusCode: number;
6 | errorCode?: string;
7 | responseData?: string[];
8 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Entities/SyncJobChangeSource.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Entities
5 | {
6 | public enum SyncJobChangeSource
7 | {
8 | WebApp = 0
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureMaintenance/Infrastructure/compute/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureMaintenance/Infrastructure/compute/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureMaintenance/Infrastructure/data/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureMaintenance/Infrastructure/data/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureUserReader/Infrastructure/data/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Infrastructure/compute/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobScheduler/Infrastructure/compute/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobTrigger/Infrastructure/compute/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/MembershipAggregator/Infrastructure/data/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/MembershipAggregator/Infrastructure/data/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Infrastructure/compute/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Infrastructure/compute/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Infrastructure/compute/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Infrastructure/data/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/SqlMembershipObtainer/Infrastructure/data/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelUpdater/Infrastructure/data/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelUpdater/Infrastructure/data/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/UI/web-app/src/models/IFilterPart.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export type IFilterPart = {
5 | attribute: string;
6 | equalityOperator: string;
7 | value: string;
8 | andOr: string;
9 | };
10 |
--------------------------------------------------------------------------------
/UI/web-app/src/models/PeoplePickerPersona.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export type PeoplePickerPersona = {
5 | key: number;
6 | text: string;
7 | secondaryText: string;
8 | id: string;
9 | };
10 |
--------------------------------------------------------------------------------
/UI/web-app/src/models/RemoveGMMResponse.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export interface RemoveGMMResponse {
5 | ok: boolean;
6 | statusCode: number;
7 | errorCode?: string;
8 | responseData?: string[];
9 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureMaintenance/Infrastructure/compute/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupMembershipObtainer/Infrastructure/compute/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupMembershipObtainer/Infrastructure/data/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupMembershipObtainer/Infrastructure/data/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupOwnershipObtainer/Infrastructure/compute/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupOwnershipObtainer/Infrastructure/compute/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupOwnershipObtainer/Infrastructure/data/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupOwnershipObtainer/Infrastructure/data/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupOwnershipObtainer/Infrastructure/data/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/MembershipAggregator/Infrastructure/compute/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/MembershipAggregator/Infrastructure/compute/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/MembershipAggregator/Infrastructure/data/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/PlaceMembershipObtainer/Infrastructure/compute/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/PlaceMembershipObtainer/Infrastructure/data/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/PlaceMembershipObtainer/Infrastructure/data/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/SqlMembershipObtainer/Infrastructure/data/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/SqlMembershipObtainer/Infrastructure/data/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelUpdater/Infrastructure/compute/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelUpdater/Infrastructure/compute/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelUpdater/Infrastructure/compute/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelUpdater/Infrastructure/data/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/WebApi/.config/dotnet-tools.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 1,
3 | "isRoot": true,
4 | "tools": {
5 | "dotnet-ef": {
6 | "version": "7.0.2",
7 | "commands": [
8 | "dotnet-ef"
9 | ]
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/BlobStatus.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Models
5 | {
6 | public enum BlobStatus
7 | {
8 | Found = 0,
9 | NotFound = 1
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/ResultStatus.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Models
5 | {
6 | public enum ResultStatus
7 | {
8 | Success = 0,
9 | Failure = 1
10 | }
11 | }
--------------------------------------------------------------------------------
/UI/web-app/src/apis/entities/ODataQueryOptions.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export type ODataQueryOptions = {
5 | $top?: number;
6 | $skip?: number;
7 | $filter?: string;
8 | $orderBy?: string;
9 | };
10 |
--------------------------------------------------------------------------------
/UI/web-app/src/models/GetAttributeValuesRequest.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export interface GetAttributeValuesRequest {
5 | attribute: string;
6 | type: string | undefined;
7 | hasMapping: boolean | undefined;
8 | }
--------------------------------------------------------------------------------
/UI/web-app/src/models/ISourcePart.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | import { SourcePartQuery } from "./SourcePartQuery";
5 |
6 | export type ISourcePart = {
7 | id: number;
8 | query: SourcePartQuery;
9 | };
10 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/DestinationAttributesUpdater/Infrastructure/compute/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/DestinationAttributesUpdater/Infrastructure/data/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/DestinationAttributesUpdater/Infrastructure/data/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupMembershipObtainer/Infrastructure/compute/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupMembershipObtainer/Infrastructure/compute/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupMembershipObtainer/Infrastructure/data/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupOwnershipObtainer/Infrastructure/compute/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/MembershipAggregator/Infrastructure/compute/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/PlaceMembershipObtainer/Infrastructure/compute/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/PlaceMembershipObtainer/Infrastructure/compute/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/PlaceMembershipObtainer/Infrastructure/data/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelMembershipObtainer/Infrastructure/data/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelMembershipObtainer/Infrastructure/data/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/UI/web-app/src/apis/Apis.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | import { IGMMApi } from './IGMMApi';
5 | import { IGraphApi } from './IGraphApi';
6 |
7 | export type Apis = {
8 | gmmApi: IGMMApi;
9 | graphApi: IGraphApi;
10 | }
--------------------------------------------------------------------------------
/UI/web-app/src/models/User.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export type User = {
5 | id: string;
6 | name: string;
7 | username?: string;
8 | preferredLanguage?: string;
9 | profilePhotoUrl?: string;
10 | };
11 |
--------------------------------------------------------------------------------
/UI/web-app/src/pages/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './AdminConfig';
5 | export * from './JobDetails';
6 | export * from './ManageMembership';
7 | export * from './JobsPage';
8 | export * from './OwnerPage';
9 |
--------------------------------------------------------------------------------
/UI/web-app/src/setupTests.ts:
--------------------------------------------------------------------------------
1 | // jest-dom adds custom jest matchers for asserting on DOM nodes.
2 | // allows you to do things like:
3 | // expect(element).toHaveTextContent(/react/i)
4 | // learn more: https://github.com/testing-library/jest-dom
5 | import '@testing-library/jest-dom';
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/DestinationAttributesUpdater/Infrastructure/compute/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/DestinationAttributesUpdater/Infrastructure/compute/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/DestinationAttributesUpdater/Infrastructure/data/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelMembershipObtainer/Infrastructure/compute/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelMembershipObtainer/Infrastructure/compute/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelMembershipObtainer/Infrastructure/data/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelMembershipObtainer/Infrastructure/compute/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {}
5 | }
6 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/IAzureADObject.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 |
6 | namespace Models
7 | {
8 | public interface IAzureADObject
9 | {
10 | Guid ObjectId { get; }
11 |
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/UI/web-app/src/models/SqlMembershipAttribute.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export type SqlMembershipAttribute = {
5 | name: string;
6 | customLabel: string;
7 | type: string;
8 | hasMapping: boolean;
9 | };
10 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/TestGroupType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Models
5 | {
6 | public enum TestGroupType
7 | {
8 | IntegrationTesting = 0,
9 | LoadTesting = 1
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/UI/web-app/src/models/Group.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | import { IFilterPart } from "./IFilterPart";
5 |
6 | export interface Group {
7 | name: string;
8 | items: IFilterPart[];
9 | children: Group[];
10 | andOr: string;
11 | }
--------------------------------------------------------------------------------
/UI/web-app/src/apis/entities/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './GraphUserEntity';
5 | export * from './JobEntity';
6 | export * from './ODataQueryOptions';
7 | export * from './UserEntity';
8 | export * from './GraphResponseEntity';
--------------------------------------------------------------------------------
/UI/web-app/src/models/Destination.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export interface Destination {
5 | id: string;
6 | name: string;
7 | type: string;
8 | endpoints?: string[] | undefined;
9 | email?: string;
10 | }
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/Console/DemoUserSetup/data.csv:
--------------------------------------------------------------------------------
1 | ImmutableId,Email
2 | 1001,TESTUSERONE
3 | 1002,TESTUSERTWO
4 | 1003,TESTUSERTHREE
5 | 1004,TESTUSERFOUR
6 | 1005,TESTUSERFIVE
7 | 1006,TESTUSERSIX
8 | 1007,TESTUSERSEVEN
9 | 1008,TESTUSEREIGHT
10 | 1009,TESTUSERNINE
11 | 1010,TESTUSERTEN
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/AzureMaintenance/BlobResult.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | namespace Models
4 | {
5 | public class BlobResult : BlobMetadataResult
6 | {
7 | public string Content { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/MembershipAction.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Models
5 | {
6 | public enum MembershipAction
7 | {
8 | None = 0,
9 | Add = 1,
10 | Remove = 2
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/UI/web-app/src/components/MembershipConfiguration/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export * from './MembershipConfiguration';
5 | export * from './MembershipConfiguration.types';
6 | export { MembershipConfiguration } from './MembershipConfiguration';
--------------------------------------------------------------------------------
/UI/web-app/src/models/GetJobsRequest.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | import { PagingOptions } from "./PagingOptions";
5 |
6 | export type GetJobsRequest = {
7 | pagingOptions?: PagingOptions;
8 | name?: string;
9 | owner?: string;
10 | };
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Function/Activity/GroupUpdater/RequestType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | namespace Hosts.GraphUpdater
4 | {
5 | public enum RequestType
6 | {
7 | Add = 0,
8 | Remove = 1
9 | }
10 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/WebApi.Models/WebApiSettings.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace WebApi.Models
5 | {
6 | public class WebApiSettings
7 | {
8 | public string ApiHostname { get; set; }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/SyncJobGroup.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | namespace Models
4 | {
5 | public class SyncJobGroup
6 | {
7 | public SyncJob SyncJob { get; set; }
8 | public string Name { get; set; }
9 | }
10 | }
--------------------------------------------------------------------------------
/UI/web-app/src/models/DestinationPickerPersona.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export type DestinationPickerPersona = {
5 | key: number;
6 | text: string;
7 | secondaryText: string;
8 | id: string;
9 | endpoints?: string[];
10 | };
11 |
--------------------------------------------------------------------------------
/UI/web-app/src/models/ODataQueryOptions.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export type ODataQueryOptions = {
5 | [key: string]: string | number | undefined;
6 | top?: number;
7 | skip?: number;
8 | filter?: string;
9 | orderBy?: string;
10 | };
11 |
--------------------------------------------------------------------------------
/UI/web-app/src/models/SourcePartType.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export enum SourcePartType {
5 | HR = "SqlMembership",
6 | GroupMembership = "GroupMembership",
7 | GroupOwnership = "GroupOwnership",
8 | PlaceMembership = "PlaceMembership",
9 | }
--------------------------------------------------------------------------------
/Infrastructure/data/keyVaultSecrets.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | param keyVaultParameters array
3 |
4 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2019-09-01' = [for item in keyVaultParameters: {
5 | name: '${keyVaultName}/${item.name}'
6 | properties: {
7 | value: item.value
8 | }
9 | }]
10 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Function/Activity/GroupUpdater/RequestType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | namespace Hosts.NonProdService
4 | {
5 | public enum RequestType
6 | {
7 | Add = 0,
8 | Remove = 1
9 | }
10 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/QueryType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Models
5 | {
6 | public enum QueryType
7 | {
8 | Transitive = 0,
9 | Delta = 1,
10 | DeltaLink = 2,
11 | Other = 3
12 | }
13 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/Notifier/Function/Requests/NotifierRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Hosts.Notifier
5 | {
6 | public class NotifierRequest
7 | {
8 | public string RecipientAddresses { get; set; }
9 | }
10 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/WebApi/Configuration/WebAPISettings.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace WebApi.Configuration
5 | {
6 | public class WebAPISettings
7 | {
8 | public string? Sentinel { get; set; }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobScheduler/Function/host.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "2.0",
3 | "logging": {
4 | "applicationInsights": {
5 | "samplingExcludedTypes": "Request",
6 | "samplingSettings": {
7 | "isEnabled": true
8 | }
9 | }
10 | }
11 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/MembershipAggregator/Services.Entities/Metric.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Services.Entities
5 | {
6 | public enum Metric
7 | {
8 | SyncComplete,
9 | SyncJobTimeElapsedSeconds
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/Notifier/Function/host.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "2.0",
3 | "logging": {
4 | "applicationInsights": {
5 | "samplingExcludedTypes": "Request",
6 | "samplingSettings": {
7 | "isEnabled": true
8 | }
9 | }
10 | }
11 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelUpdater/Function/Activity/TeamsUpdater/RequestType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | namespace Hosts.TeamsChannelUpdater
4 | {
5 | public enum RequestType
6 | {
7 | Add = 0,
8 | Remove = 1
9 | }
10 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureMaintenance/Function/host.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "2.0",
3 | "functionTimeout": "00:10:00",
4 | "logging": {
5 | "applicationInsights": {
6 | "samplingExcludedTypes": "Request",
7 | "samplingSettings": {
8 | "isEnabled": true
9 | }
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobScheduler/Function/Orchestrator/OrchestratorRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Hosts.JobScheduler
5 | {
6 | public class OrchestratorRequest
7 | {
8 | public int StartTimeDelayMinutes;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/DestinationVerifierResult.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Models
5 | {
6 | public enum DestinationVerifierResult
7 | {
8 | Success = 0,
9 | NotFound = 1,
10 | NotOwnedByGMM = 2
11 | }
12 | }
--------------------------------------------------------------------------------
/UI/web-app/src/services/localization/defaults.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | import { IStrings } from './IStrings';
5 |
6 | export const defaultLanguage: string = 'en';
7 | export const defaultStrings: IStrings = require(`./i18n/locales/${defaultLanguage}/translations`).strings;
8 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/PlaceMembershipObtainer/Function/host.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "2.0",
3 | "logging": {
4 | "applicationInsights": {
5 | "samplingSettings": {
6 | "isEnabled": true,
7 | "excludedTypes": "Request"
8 | }
9 | }
10 | }
11 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/OnboardingStatus.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Models
5 | {
6 | public enum OnboardingStatus
7 | {
8 | Onboarded,
9 | ReadyForOnboarding,
10 | AppIdNotOwner,
11 | UserNotOwner
12 | }
13 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/InjectConfig/IDryRunValue.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Repositories.Contracts.InjectConfig
5 | {
6 | public interface IDryRunValue
7 | {
8 | bool DryRunEnabled { get; }
9 |
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupOwnershipObtainer/Services.Entities/Services.Entities.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 | enable
6 | enable
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/SettingKey.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Models
5 | {
6 | public enum SettingKey
7 | {
8 | DashboardUrl = 0,
9 | OutlookWarningUrl = 1,
10 | PrivacyPolicyUrl = 2,
11 | UIUrl = 3,
12 | }
13 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/SqlMembershipSource.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Models
5 | {
6 | public class SqlMembershipSource
7 | {
8 | public string Name { get; set; }
9 | public string CustomLabel { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Services.Messages.Contracts/Services.Messages.Contracts.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 | enable
6 | enable
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/WebApi.Models/Requests/ResolveNotification.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace WebApi.Models.Requests
5 | {
6 | public class ResolveNotification
7 | {
8 | public string Resolution { get; set; } = string.Empty;
9 | }
10 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/IHttpRepository.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.]
3 |
4 | using System.Threading.Tasks;
5 |
6 | namespace Repositories.Contracts
7 | {
8 | public interface IHttpRepository
9 | {
10 | Task Fetch(string url);
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/InjectConfig/IDeltaCachingConfig.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | namespace Repositories.Contracts.InjectConfig
4 | {
5 | public interface IDeltaCachingConfig
6 | {
7 | public bool DeltaCacheEnabled { get; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/InjectConfig/IGMMResources.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | namespace Repositories.Contracts.InjectConfig
4 | {
5 | public interface IGMMResources
6 | {
7 | public string LearnMoreAboutGMMUrl { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/UI/web-app/src/models/GroupOnboardingStatus.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export type GroupOnboardingStatus = {
5 | status: OnboardingStatus;
6 | };
7 |
8 | export enum OnboardingStatus {
9 | Onboarded,
10 | ReadyForOnboarding,
11 | AppIdNotOwner,
12 | UserNotOwner
13 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/Notifier/Infrastructure/compute/keyVaultSecrets.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | param keyVaultParameters array
3 |
4 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2019-09-01' = [for item in keyVaultParameters: {
5 | name: '${keyVaultName}/${item.name}'
6 | properties: {
7 | value: item.value
8 | }
9 | }]
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Services.Messages/Responses/NullResponse.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Services.Messages.Contracts.Responses;
5 |
6 | namespace Services.Messages.Responses
7 | {
8 | public class NullResponse : ResponseBase
9 | {
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Services.WebApi.Contracts/IValidator.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Services.WebApi.Contracts
5 | {
6 | public interface IValidator
7 | {
8 | public ValidationResponse Validate(T objectToValidate);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Infrastructure/adf/sql/keyVaultSecretsSecure.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | @secure()
3 | param keyVaultSecrets object
4 |
5 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2021-06-01-preview' = [for secret in keyVaultSecrets.secrets: {
6 | name: '${keyVaultName}/${secret.name}'
7 | properties: {
8 | value: secret.value
9 | }
10 | }]
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Infrastructure/compute/keyVaultSecrets.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | param keyVaultParameters array
3 |
4 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2019-09-01' = [for item in keyVaultParameters: {
5 | name: '${keyVaultName}/${item.name}'
6 | properties: {
7 | value: item.value
8 | }
9 | }]
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobScheduler/Infrastructure/compute/keyVaultSecrets.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | param keyVaultParameters array
3 |
4 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2019-09-01' = [for item in keyVaultParameters: {
5 | name: '${keyVaultName}/${item.name}'
6 | properties: {
7 | value: item.value
8 | }
9 | }]
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobTrigger/Infrastructure/compute/keyVaultReader.bicep:
--------------------------------------------------------------------------------
1 | // Do not use this to return secrets like passwords or API keys
2 | // This is only for returning plain values that are not sensitive
3 | @description('Plain value')
4 | @secure()
5 | param value string
6 | var plainValue = string(value)
7 | output value string = plainValue
8 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Infrastructure/compute/keyVaultSecrets.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | param keyVaultParameters array
3 |
4 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2019-09-01' = [for item in keyVaultParameters: {
5 | name: '${keyVaultName}/${item.name}'
6 | properties: {
7 | value: item.value
8 | }
9 | }]
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/Notifier/Infrastructure/compute/keyVaultReader.bicep:
--------------------------------------------------------------------------------
1 | // Do not use this to return secrets like passwords or API keys
2 | // This is only for returning plain values that are not sensitive
3 | @description('Plain value')
4 | @secure()
5 | param value string
6 | var plainValue = string(value)
7 | output value string = plainValue
8 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Infrastructure/compute/keyVaultReader.bicep:
--------------------------------------------------------------------------------
1 | // Do not use this to return secrets like passwords or API keys
2 | // This is only for returning plain values that are not sensitive
3 | @description('Plain value')
4 | @secure()
5 | param value string
6 | var plainValue = string(value)
7 | output value string = plainValue
8 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/InjectConfig/IStorageAccountSecret.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Repositories.Contracts.InjectConfig
5 | {
6 | public interface IStorageAccountSecret
7 | {
8 | public string ConnectionString { get; set; }
9 | }
10 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureUserReader/Infrastructure/compute/keyVaultReader.bicep:
--------------------------------------------------------------------------------
1 | // Do not use this to return secrets like passwords or API keys
2 | // This is only for returning plain values that are not sensitive
3 | @description('Plain value')
4 | @secure()
5 | param value string
6 | var plainValue = string(value)
7 | output value string = plainValue
8 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureUserReader/Infrastructure/compute/keyVaultSecrets.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | param keyVaultParameters array
3 |
4 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2019-09-01' = [for item in keyVaultParameters: {
5 | name: '${keyVaultName}/${item.name}'
6 | properties: {
7 | value: item.value
8 | }
9 | }]
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Infrastructure/compute/keyVaultReader.bicep:
--------------------------------------------------------------------------------
1 | // Do not use this to return secrets like passwords or API keys
2 | // This is only for returning plain values that are not sensitive
3 | @description('Plain value')
4 | @secure()
5 | param value string
6 | var plainValue = string(value)
7 | output value string = plainValue
8 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Infrastructure/compute/keyVaultReader.bicep:
--------------------------------------------------------------------------------
1 | // Do not use this to return secrets like passwords or API keys
2 | // This is only for returning plain values that are not sensitive
3 | @description('Plain value')
4 | @secure()
5 | param value string
6 | var plainValue = string(value)
7 | output value string = plainValue
8 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/nuget.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/Infrastructure/data/keyVaultSecretsSecure.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | @secure()
3 | param keyVaultSecrets object
4 |
5 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2021-06-01-preview' = [for secret in keyVaultSecrets.secrets: {
6 | name: '${keyVaultName}/${secret.name}'
7 | properties: {
8 | value: secret.value
9 | }
10 | }]
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/DIConcreteTypes/DIConcreteTypes.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureMaintenance/Infrastructure/compute/keyVaultReader.bicep:
--------------------------------------------------------------------------------
1 | // Do not use this to return secrets like passwords or API keys
2 | // This is only for returning plain values that are not sensitive
3 | @description('Plain value')
4 | @secure()
5 | param value string
6 | var plainValue = string(value)
7 | output value string = plainValue
8 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureUserReader/Services.Entities/Services.Entities.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobScheduler/Services.Contracts/IApplicationService.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using System.Threading.Tasks;
5 |
6 | namespace Services.Contracts
7 | {
8 | public interface IApplicationService
9 | {
10 | public Task RunAsync();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobTrigger/Services.Contracts/Services.Contracts.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/MembershipAggregator/Infrastructure/compute/keyVaultReader.bicep:
--------------------------------------------------------------------------------
1 | // Do not use this to return secrets like passwords or API keys
2 | // This is only for returning plain values that are not sensitive
3 | @description('Plain value')
4 | @secure()
5 | param value string
6 | var plainValue = string(value)
7 | output value string = plainValue
8 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/MembershipAggregator/Infrastructure/compute/keyVaultSecrets.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | param keyVaultParameters array
3 |
4 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2019-09-01' = [for item in keyVaultParameters: {
5 | name: '${keyVaultName}/${item.name}'
6 | properties: {
7 | value: item.value
8 | }
9 | }]
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Function/Activity/TenantUserCount/TenantUserCountRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Hosts.NonProdService
6 | {
7 | public class TenantUserCountRequest
8 | {
9 | public Guid RunId { get; set; }
10 | }
11 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelUpdater/Infrastructure/compute/keyVaultReader.bicep:
--------------------------------------------------------------------------------
1 | // Do not use this to return secrets like passwords or API keys
2 | // This is only for returning plain values that are not sensitive
3 | @description('Plain value')
4 | @secure()
5 | param value string
6 | var plainValue = string(value)
7 | output value string = plainValue
8 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelUpdater/Services.TeamsChannelUpdater/TeamsChannelUpdaterStatus.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | namespace Services.TeamsChannelUpdater
4 | {
5 | public enum TeamsChannelUpdaterStatus
6 | {
7 | Ok = 0,
8 | Error = 1
9 | }
10 | }
11 |
12 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Services.Messages/Requests/GetAllSettingsRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Services.Messages.Contracts.Requests;
5 |
6 | namespace Services.Messages.Requests
7 | {
8 | public class GetAllSettingsRequest : RequestBase
9 | {
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Services.WebApi.Contracts/IRequestHandler.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Services.Contracts
5 | {
6 | public interface IRequestHandler
7 | {
8 | Task ExecuteAsync(RequestBase request);
9 | }
10 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/WebApi.Models/Responses/GetJobsModel.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace WebApi.Models.Responses
5 | {
6 | public class GetJobsModel : List
7 | {
8 | public GetJobsModel()
9 | {
10 |
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/IGMMEmailReceivers.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 |
6 | namespace Repositories.Contracts
7 | {
8 | public interface IGMMEmailReceivers
9 | {
10 | public Guid ActionableMessageViewerGroupId { get; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/UI/web-app/src/services/Services.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | import { IAuthenticationService } from './auth';
5 | import { ILocalizationService } from './localization';
6 |
7 | export type Services = {
8 | authenticationService: IAuthenticationService;
9 | localizationService: ILocalizationService;
10 | };
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupMembershipObtainer/Infrastructure/compute/keyVaultReader.bicep:
--------------------------------------------------------------------------------
1 | // Do not use this to return secrets like passwords or API keys
2 | // This is only for returning plain values that are not sensitive
3 | @description('Plain value')
4 | @secure()
5 | param value string
6 | var plainValue = string(value)
7 | output value string = plainValue
8 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupOwnershipObtainer/Infrastructure/compute/keyVaultReader.bicep:
--------------------------------------------------------------------------------
1 | // Do not use this to return secrets like passwords or API keys
2 | // This is only for returning plain values that are not sensitive
3 | @description('Plain value')
4 | @secure()
5 | param value string
6 | var plainValue = string(value)
7 | output value string = plainValue
8 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Services.Contracts/Services.Contracts.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/PlaceMembershipObtainer/Infrastructure/compute/keyVaultReader.bicep:
--------------------------------------------------------------------------------
1 | // Do not use this to return secrets like passwords or API keys
2 | // This is only for returning plain values that are not sensitive
3 | @description('Plain value')
4 | @secure()
5 | param value string
6 | var plainValue = string(value)
7 | output value string = plainValue
8 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/SqlMembershipObtainer/Infrastructure/compute/keyVaultReader.bicep:
--------------------------------------------------------------------------------
1 | // Do not use this to return secrets like passwords or API keys
2 | // This is only for returning plain values that are not sensitive
3 | @description('Plain value')
4 | @secure()
5 | param value string
6 | var plainValue = string(value)
7 | output value string = plainValue
8 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureUserReader/Infrastructure/compute/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "storageAccountSecretName": {
6 | "value": ""
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureUserReader/Infrastructure/compute/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "storageAccountSecretName": {
6 | "value": ""
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureUserReader/Infrastructure/compute/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "storageAccountSecretName": {
6 | "value": ""
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/DestinationAttributesUpdater/Infrastructure/compute/keyVaultReader.bicep:
--------------------------------------------------------------------------------
1 | // Do not use this to return secrets like passwords or API keys
2 | // This is only for returning plain values that are not sensitive
3 | @description('Plain value')
4 | @secure()
5 | param value string
6 | var plainValue = string(value)
7 | output value string = plainValue
8 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobScheduler/Services.Contracts/Services.Contracts.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/Notifier/Services.Notifier.Contracts/Services.Notifier.Contracts.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelMembershipObtainer/Infrastructure/compute/keyVaultReader.bicep:
--------------------------------------------------------------------------------
1 | // Do not use this to return secrets like passwords or API keys
2 | // This is only for returning plain values that are not sensitive
3 | @description('Plain value')
4 | @secure()
5 | param value string
6 | var plainValue = string(value)
7 | output value string = plainValue
8 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/AzureMaintenance/BackupTable.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Models.AzureMaintenance
6 | {
7 | public class BackupTable
8 | {
9 | public string TableName { get; set; }
10 | public DateTime CreatedDate { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/UI/web-app/src/models/PatchJobRequest.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | import { Job } from "./Job";
5 |
6 | export interface PatchJobRequest {
7 | syncJobId: string;
8 | patchOperation: PatchOperation[];
9 | }
10 |
11 | export interface PatchOperation {
12 | op: string;
13 | path: string;
14 | value: any;
15 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Services.Entities/GraphUpdaterStatus.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | namespace Services.Entities
4 | {
5 | public enum GraphUpdaterStatus
6 | {
7 | Ok = 0,
8 | Error = 1,
9 | ThresholdExceeded = 2,
10 | GuestError = 3
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/ResponseCode.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Models
5 | {
6 | public enum ResponseCode
7 | {
8 | Ok = 0,
9 | Error = 1,
10 | IndividualRetry = 2,
11 | IndividualRetryAlreadyExists = 3,
12 | GuestError = 4
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/IDatabaseMigrationsRepository.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using System.Threading.Tasks;
5 |
6 | namespace Repositories.Contracts
7 | {
8 | public interface IDatabaseMigrationsRepository
9 | {
10 | Task MigrateDatabaseAsync();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/UI/web-app/src/apis/settings/ISettingsApi.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | import { Setting } from '../../models';
5 |
6 | export interface ISettingsApi {
7 | fetchSettings(): Promise;
8 | fetchSettingByKey(settingKey: string): Promise;
9 | patchSetting(setting: Setting): Promise;
10 | }
11 |
--------------------------------------------------------------------------------
/UI/web-app/src/models/GetAttributeValuesResponse.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | import { SqlMembershipAttributeValue } from "./SqlMembershipAttributeValue";
5 |
6 | export interface GetAttributeValuesResponse {
7 | values: SqlMembershipAttributeValue[];
8 | attribute: string;
9 | type: string | undefined;
10 | }
--------------------------------------------------------------------------------
/UI/web-app/swa-cli.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://aka.ms/azure/static-web-apps-cli/schema",
3 | "configurations": {
4 | "default": {
5 | "appLocation": ".",
6 | "outputLocation": "build",
7 | "appBuildCommand": "pnpm install && pnpm run build",
8 | "run": "pnpm start",
9 | "appDevserverUrl": "http://localhost:3000"
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupOwnershipObtainer/Services.Entities/JobsFilterSyncJob.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Services.Entities
5 | {
6 | public class JobsFilterSyncJob
7 | {
8 | public string? Query { get; set; }
9 | public Guid TargetOfficeGroupId { get; set; }
10 | }
11 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobScheduler/Function/Activity/CheckJobSchedulerStatus/CheckJobSchedulerStatusRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 |
5 | namespace Hosts.JobScheduler
6 | {
7 | public class CheckJobSchedulerStatusRequest
8 | {
9 | public string StatusUrl { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Services.Messages.Contracts/Requests/RequestBase.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Services.Messages.Contracts.Requests
5 | {
6 | public abstract class RequestBase : MessageBase
7 | {
8 | public RequestBase()
9 | {
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/Status.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 |
6 | namespace Models
7 | {
8 | public class Status
9 | {
10 | public Guid Id { get; set; }
11 | public string Name { get; set; }
12 | public int SortPriority { get; set; }
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/Http/IClientSecretCredential.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Services.Contracts.Http
5 | {
6 | public interface IClientSecretCredential
7 | {
8 | public string ClientId { get; }
9 | public string ClientSecret { get; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/InjectConfig/IThresholdNotificationConfig.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Repositories.Contracts.InjectConfig
5 | {
6 | public interface IThresholdNotificationConfig
7 | {
8 | public bool IsThresholdNotificationEnabled { get; }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Function/Entities/Destination.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 |
6 | namespace GraphUpdater.Entities
7 | {
8 | internal class Destination
9 | {
10 | public string Type { get; set; }
11 | public Guid ObjectId { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobScheduler/Services.Entities/Services.Entities.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/SqlMembershipObtainer.Common/SqlMembershipObtainer.Entities/Person.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | namespace SqlMembershipObtainer.Entities
4 | {
5 | public class Person
6 | {
7 | public PersonEntity PersonEntity { get; set; }
8 | public int Level { get; set; }
9 | }
10 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/WebApi.Models/Responses/GetDestinationsModel.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace WebApi.Models.Responses
5 | {
6 | public class GetDestinationsModel : List
7 | {
8 | public GetDestinationsModel()
9 | {
10 |
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/UI/web-app/src/models/GetOrgLeaderDetailsRequest.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export interface GetOrgLeaderDetailsRequest {
5 | objectId: string;
6 | key: number;
7 | text: string;
8 | partId: number;
9 | }
10 |
11 | export interface GetOrgLeaderDetailsUsingIdRequest {
12 | employeeId: number;
13 | partId: number;
14 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureMaintenance/Services.Entities/Services.Entities.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Services.Messages.Contracts/Responses/ResponseBase.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Services.Messages.Contracts.Responses
5 | {
6 | public abstract class ResponseBase : MessageBase
7 | {
8 | public ResponseBase() : base()
9 | {
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Services.Messages/Requests/GetDefaultSqlMembershipSourceRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Services.Messages.Contracts.Requests;
5 |
6 | namespace Services.Messages.Requests
7 | {
8 | public class GetDefaultSqlMembershipSourceRequest : RequestBase
9 | {
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/UI/web-app/src/components/Page/Page.styles.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | import { type IPageStyleProps, type IPageStyles } from './Page.types';
5 |
6 | export const getStyles = (props: IPageStyleProps): IPageStyles => {
7 | const { className } = props;
8 |
9 | return {
10 | root: [{
11 | }, className]
12 | };
13 | };
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Function/Activity/JobReader/JobReaderRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 |
6 | namespace Hosts.GraphUpdater
7 | {
8 | public class JobReaderRequest
9 | {
10 | public Guid JobId { get; set; }
11 | public Guid RunId { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Function/Activity/LoadTestingSyncJobRetriever/LoadTestingSyncJobRetrieverRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Hosts.NonProdService
6 | {
7 | public class LoadTestingSyncJobRetrieverRequest
8 | {
9 | public Guid RunId { get; set; }
10 | }
11 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/Notifier/Infrastructure/data/keyVaultSecretsSecure.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | @secure()
3 | param keyVaultSecrets object
4 |
5 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2021-06-01-preview' = [for secret in keyVaultSecrets.secrets: {
6 | name: '${keyVaultName}/${secret.name}'
7 | properties: {
8 | value: secret.value
9 | }
10 | }]
11 |
--------------------------------------------------------------------------------
/UI/web-app/src/apis/jobs/IJobsApi.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | import { AxiosResponse } from 'axios';
5 | import { Job, NewJob, Page, PagingOptions } from '../../models';
6 |
7 | export interface IJobsApi {
8 | getAllJobs(pagingOptions?: PagingOptions): Promise>;
9 | postNewJob(job: NewJob): Promise;
10 | }
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Function/Activity/GroupNameReader/GroupUpdaterRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Hosts.GraphUpdater
6 | {
7 | public class GroupNameReaderRequest
8 | {
9 | public Guid RunId { get; set; }
10 | public Guid GroupId { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobTrigger/Function/Activity/JobUpdater/JobUpdaterRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright(c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 |
5 | namespace Hosts.JobTrigger
6 | {
7 | public class JobUpdaterRequest
8 | {
9 | public SyncStatus? Status { get; set; } = null;
10 | public SyncJob SyncJob { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/Notifier/Infrastructure/compute/keyVaultSecretsSecure.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | @secure()
3 | param keyVaultSecrets object
4 |
5 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2021-06-01-preview' = [for secret in keyVaultSecrets.secrets: {
6 | name: '${keyVaultName}/${secret.name}'
7 | properties: {
8 | value: secret.value
9 | }
10 | }]
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/BlobMetadataResult.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System.Collections.Generic;
4 |
5 | namespace Models
6 | {
7 | public class BlobMetadataResult
8 | {
9 | public IDictionary Metadata { get; set; }
10 | public BlobStatus BlobStatus { get; set; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/MembershipHttpRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Models
5 | {
6 | public class MembershipHttpRequest
7 | {
8 | public string FilePath { get; set; }
9 | public SyncJob SyncJob { get; set; }
10 | public int? ProjectedMemberCount { get; set; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/InjectConfig/ISyncJobRepoCredentials.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | namespace Repositories.Contracts.InjectConfig
4 | {
5 | public interface ISyncJobRepoCredentials
6 | {
7 | string ConnectionString { get; }
8 | string TableName { get; }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Common.DependencyInjection/AuthenticationType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Common.DependencyInjection
5 | {
6 | public enum AuthenticationType
7 | {
8 | Unknown = 0,
9 | ClientSecret = 1,
10 | Certificate = 2,
11 | UserAssignedManagedIdentity = 3
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureMaintenance/Infrastructure/data/keyVaultSecretsSecure.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | @secure()
3 | param keyVaultSecrets object
4 |
5 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2021-06-01-preview' = [for secret in keyVaultSecrets.secrets: {
6 | name: '${keyVaultName}/${secret.name}'
7 | properties: {
8 | value: secret.value
9 | }
10 | }]
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureUserReader/Infrastructure/compute/keyVaultSecretsSecure.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | @secure()
3 | param keyVaultSecrets object
4 |
5 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2021-06-01-preview' = [for secret in keyVaultSecrets.secrets: {
6 | name: '${keyVaultName}/${secret.name}'
7 | properties: {
8 | value: secret.value
9 | }
10 | }]
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureUserReader/Infrastructure/data/keyVaultSecretsSecure.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | @secure()
3 | param keyVaultSecrets object
4 |
5 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2021-06-01-preview' = [for secret in keyVaultSecrets.secrets: {
6 | name: '${keyVaultName}/${secret.name}'
7 | properties: {
8 | value: secret.value
9 | }
10 | }]
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Infrastructure/compute/keyVaultSecretsSecure.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | @secure()
3 | param keyVaultSecrets object
4 |
5 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2021-06-01-preview' = [for secret in keyVaultSecrets.secrets: {
6 | name: '${keyVaultName}/${secret.name}'
7 | properties: {
8 | value: secret.value
9 | }
10 | }]
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupOwnershipObtainer/Function/Activity/GetJobsSegmented/GetJobsSegmentedResponse.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Models;
5 |
6 | namespace Hosts.GroupOwnershipObtainer
7 | {
8 | public class GetJobsSegmentedResponse
9 | {
10 | public Page ResponsePage { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobScheduler/Function/Activity/GetJobs/GetJobsResponse.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Models;
5 | using System.Collections.Generic;
6 |
7 | namespace Hosts.JobScheduler
8 | {
9 | public class GetJobsResponse
10 | {
11 | public List JobsSegment { get; set; }
12 | }
13 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobScheduler/Infrastructure/compute/keyVaultSecretsSecure.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | @secure()
3 | param keyVaultSecrets object
4 |
5 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2021-06-01-preview' = [for secret in keyVaultSecrets.secrets: {
6 | name: '${keyVaultName}/${secret.name}'
7 | properties: {
8 | value: secret.value
9 | }
10 | }]
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Infrastructure/compute/keyVaultSecretsSecure.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | @secure()
3 | param keyVaultSecrets object
4 |
5 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2021-06-01-preview' = [for secret in keyVaultSecrets.secrets: {
6 | name: '${keyVaultName}/${secret.name}'
7 | properties: {
8 | value: secret.value
9 | }
10 | }]
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelMembershipObtainer/Documentation/TeamsChannelTypeDestinationSchema.md:
--------------------------------------------------------------------------------
1 | ## TeamsChannelMembership Type Destination Schema
2 |
3 | ```
4 | [
5 | {
6 | "type": "TeamsChannelMembership",
7 | "value":
8 | {
9 | "objectId": "00000000-0000-0000-0000-000000000000",
10 | "channelId": "CHANNEL_ID_STRING"
11 | }
12 | }
13 | ]
14 | ```
15 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelUpdater/Function/Activity/JobReader/JobReaderRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Hosts.TeamsChannelUpdater
6 | {
7 | public class JobReaderRequest
8 | {
9 | public Guid JobId { get; set; }
10 | public Guid RunId { get; set; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelUpdater/Infrastructure/data/keyVaultSecretsSecure.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | @secure()
3 | param keyVaultSecrets object
4 |
5 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2021-06-01-preview' = [for secret in keyVaultSecrets.secrets: {
6 | name: '${keyVaultName}/${secret.name}'
7 | properties: {
8 | value: secret.value
9 | }
10 | }]
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Services.Messages/Requests/GetGroupEndpointsRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Services.Messages.Contracts.Requests;
5 |
6 | namespace Services.Messages.Requests
7 | {
8 | public class GetGroupEndpointsRequest : RequestBase
9 | {
10 | public Guid GroupId { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/WebApi.Models/Responses/GetAttributeValuesModel.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace WebApi.Models.Responses
5 | {
6 | public class GetAttributeValuesModel : List
7 | {
8 | public GetAttributeValuesModel()
9 | {
10 |
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/CustomAttributes/IgnoreLoggingAttribute.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Models.CustomAttributes
6 | {
7 | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property, AllowMultiple = false)]
8 | public class IgnoreLoggingAttribute : Attribute
9 | {
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/SyncJobChange/SyncJobChangeSource.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Models.SyncJobChange
5 | {
6 | public enum SyncJobChangeSource
7 | {
8 | ///
9 | /// Represents a change made through the web app.
10 | ///
11 | WebApp = 0,
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Function/Activity/GroupOwnersReader/GroupOwnersReaderRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Hosts.GraphUpdater
6 | {
7 | public class GroupOwnersReaderRequest
8 | {
9 | public Guid RunId { get; set; }
10 | public Guid GroupId { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Infrastructure/data/keyVaultSecretsSecure.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | @secure()
3 | param keyVaultSecrets object
4 |
5 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2021-06-01-preview' = [for secret in keyVaultSecrets.secrets: {
6 | name: '${keyVaultName}/${secret.name}'
7 | properties: {
8 | value: secret.value
9 | }
10 | }]
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupOwnershipObtainer/Infrastructure/data/keyVaultSecretsSecure.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | @secure()
3 | param keyVaultSecrets object
4 |
5 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2021-06-01-preview' = [for secret in keyVaultSecrets.secrets: {
6 | name: '${keyVaultName}/${secret.name}'
7 | properties: {
8 | value: secret.value
9 | }
10 | }]
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobTrigger/Infrastructure/data/keyVaultSecretsSecure.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | @secure()
3 | param keyVaultSecrets object
4 |
5 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2021-06-01-preview' = [for secret in keyVaultSecrets.secrets: {
6 | name: '${keyVaultName}/${secret.name}'
7 | properties: {
8 | value: secret.value
9 | }
10 | }]
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/MembershipAggregator/Function/Activity/JobReader/JobReaderRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 |
6 | namespace Hosts.MembershipAggregator
7 | {
8 | public class JobReaderRequest
9 | {
10 | public Guid JobId { get; set; }
11 | public Guid RunId { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/MembershipAggregator/Infrastructure/compute/keyVaultSecretsSecure.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | @secure()
3 | param keyVaultSecrets object
4 |
5 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2021-06-01-preview' = [for secret in keyVaultSecrets.secrets: {
6 | name: '${keyVaultName}/${secret.name}'
7 | properties: {
8 | value: secret.value
9 | }
10 | }]
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/MembershipAggregator/Infrastructure/data/keyVaultSecretsSecure.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | @secure()
3 | param keyVaultSecrets object
4 |
5 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2021-06-01-preview' = [for secret in keyVaultSecrets.secrets: {
6 | name: '${keyVaultName}/${secret.name}'
7 | properties: {
8 | value: secret.value
9 | }
10 | }]
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/MembershipAggregator/Services.Entities/Services.Entities.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/PlaceMembershipObtainer/Function/Activity/UsersReader/UsersReaderRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Hosts.PlaceMembershipObtainer
6 | {
7 | public class UsersReaderRequest
8 | {
9 | public Guid RunId { get; set; }
10 | public string Url { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/SqlMembershipObtainer/Infrastructure/data/keyVaultSecretsSecure.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | @secure()
3 | param keyVaultSecrets object
4 |
5 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2021-06-01-preview' = [for secret in keyVaultSecrets.secrets: {
6 | name: '${keyVaultName}/${secret.name}'
7 | properties: {
8 | value: secret.value
9 | }
10 | }]
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Services.Messages/Requests/GetDefaultSqlMembershipSourceAttributesRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Services.Messages.Contracts.Requests;
5 |
6 | namespace Services.Messages.Requests
7 | {
8 | public class GetDefaultSqlMembershipSourceAttributesRequest : RequestBase
9 | {
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Services.Messages/Requests/SearchDestinationsRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Services.Messages.Contracts.Requests;
5 |
6 | namespace Services.Messages.Requests
7 | {
8 | public class SearchDestinationsRequest : RequestBase
9 | {
10 | public string? Query { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/SyncJobChange/SyncJobChangeSortingField.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Models.SyncJobChange
5 | {
6 | public enum SyncJobChangeSortingField
7 | {
8 | ChangeTime,
9 | ChangedByObjectId,
10 | ChangeSource,
11 | ChangeReason,
12 | ChangeDetails
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/TeamsDestination.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 |
6 | namespace Models.TeamsChannel
7 | {
8 | public class TeamsDestination
9 | {
10 | public string Type { get; set; }
11 | public Guid ObjectId { get; set; }
12 | public string ChannelId { get; set; }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Function/Activity/FileDownloader/FileDownloaderRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 |
5 | namespace Hosts.GraphUpdater
6 | {
7 | public class FileDownloaderRequest
8 | {
9 | public string FilePath { get; set; }
10 | public SyncJob SyncJob { get; set; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupMembershipObtainer/Function/Activity/GetUserCount/GetUserCountRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Hosts.GroupMembershipObtainer
6 | {
7 | public class GetUserCountRequest
8 | {
9 | public Guid RunId { get; set; }
10 | public Guid GroupId { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupMembershipObtainer/Function/Activity/UsersReader/UsersReaderRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Hosts.GroupMembershipObtainer
6 | {
7 | public class UsersReaderRequest
8 | {
9 | public Guid RunId { get; set; }
10 | public Guid ObjectId { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobScheduler/Services.Entities/JobSchedulerConfigString.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Services.Contracts
5 | {
6 | public class JobSchedulerConfigString
7 | {
8 | public string Value { get; set; }
9 |
10 | public JobSchedulerConfigString()
11 | {
12 |
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/MembershipAggregator/Services.Entities/MembershipDeltaStatus.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | namespace Services.Entities
4 | {
5 | public enum MembershipDeltaStatus
6 | {
7 | Ok = 0,
8 | Error = 1,
9 | ThresholdExceeded = 2,
10 | DryRun = 3,
11 | NoChanges = 4
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Infrastructure/data/keyVaultSecretsSecure.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | @secure()
3 | param keyVaultSecrets object
4 |
5 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2021-06-01-preview' = [for secret in keyVaultSecrets.secrets: {
6 | name: '${keyVaultName}/${secret.name}'
7 | properties: {
8 | value: secret.value
9 | }
10 | }]
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelUpdater/Function/Activity/GroupNameReader/GroupUpdaterRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Hosts.TeamsChannelUpdater
6 | {
7 | public class GroupNameReaderRequest
8 | {
9 | public Guid RunId { get; set; }
10 | public Guid GroupId { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/WebApi.Models/DTOs/LogMessage.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace WebApi.Models.DTOs
5 | {
6 | public class LogMessage
7 | {
8 | public Guid? InstanceId { get; set; }
9 | public string Message { get; set; } = null!;
10 | public string? MessageTypeName { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/InjectConfig/IGraphServiceAttemptsValue.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Repositories.Contracts.InjectConfig
5 | {
6 | public interface IGraphServiceAttemptsValue
7 | {
8 | int MaxRetryAfterAttempts { get; }
9 | int MaxExceptionHandlingAttempts { get; }
10 |
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/InjectConfig/INotificationRepoCredentials.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Repositories.Contracts.InjectConfig
5 | {
6 | public interface INotificationRepoCredentials
7 | {
8 | string ConnectionString { get; }
9 | string TableName { get; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupMembershipObtainer/Function/Activity/FileDeleter/FileDeleterRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 |
5 | namespace Hosts.GroupMembershipObtainer
6 | {
7 | public class FileDeleterRequest
8 | {
9 | public string FilePath { get; set; }
10 | public SyncJob SyncJob { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupMembershipObtainer/Function/Activity/MembersReader/MembersReaderRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Hosts.GroupMembershipObtainer
6 | {
7 | public class MembersReaderRequest
8 | {
9 | public Guid RunId { get; set; }
10 | public Guid GroupId { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobTrigger/Function/Entities/JsonSchemaProvider.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using System.Collections.Generic;
5 |
6 | namespace Hosts.JobTrigger
7 | {
8 | public class JsonSchemaProvider
9 | {
10 | public Dictionary Schemas { get; set; } = new Dictionary();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/SqlMembershipObtainer/Services.Contracts/IDataFactoryService.cs:
--------------------------------------------------------------------------------
1 | // Copyright(c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 | using System.Threading.Tasks;
6 |
7 | namespace Services.Contracts
8 | {
9 | public interface IDataFactoryService
10 | {
11 | Task GetMostRecentSucceededRunIdAsync(Guid? runId);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelMembershipObtainer/Infrastructure/compute/keyVaultSecretsSecure.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | @secure()
3 | param keyVaultSecrets object
4 |
5 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2021-06-01-preview' = [for secret in keyVaultSecrets.secrets: {
6 | name: '${keyVaultName}/${secret.name}'
7 | properties: {
8 | value: secret.value
9 | }
10 | }]
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelMembershipObtainer/Infrastructure/data/keyVaultSecretsSecure.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | @secure()
3 | param keyVaultSecrets object
4 |
5 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2021-06-01-preview' = [for secret in keyVaultSecrets.secrets: {
6 | name: '${keyVaultName}/${secret.name}'
7 | properties: {
8 | value: secret.value
9 | }
10 | }]
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/IServiceBusQueueRepository.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Models.ServiceBus;
5 | using System.Threading.Tasks;
6 |
7 | namespace Repositories.Contracts
8 | {
9 | public interface IServiceBusQueueRepository
10 | {
11 | Task SendMessageAsync(ServiceBusMessage message);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/InjectConfig/IHandleInactiveJobsConfig.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | namespace Repositories.Contracts.InjectConfig
4 | {
5 | public interface IHandleInactiveJobsConfig
6 | {
7 | public bool HandleInactiveJobsEnabled { get; }
8 | public int NumberOfDaysBeforeDeletion { get; }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Services.Contracts/Services.Contracts.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 | enable
6 | enable
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/DIConcreteTypes/ThresholdNotificationServiceConfig.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 |
6 | namespace DIConcreteTypes
7 | {
8 | public class ThresholdNotificationServiceConfig
9 | {
10 | public string ApiHostname { get; set; }
11 | public Guid ActionableEmailProviderId { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupMembershipObtainer/Infrastructure/data/keyVaultSecretsSecure.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | @secure()
3 | param keyVaultSecrets object
4 |
5 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2021-06-01-preview' = [for secret in keyVaultSecrets.secrets: {
6 | name: '${keyVaultName}/${secret.name}'
7 | properties: {
8 | value: secret.value
9 | }
10 | }]
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Function/Activity/TenantUserReader/TenantUserReaderRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Hosts.NonProdService
6 | {
7 | public class TenantUserReaderRequest
8 | {
9 | public int MinimunTenantUserCount { get; set; }
10 | public Guid RunId { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelUpdater/Function/Activity/GroupOwnersReader/GroupOwnersReaderRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Hosts.TeamsChannelUpdater
6 | {
7 | public class GroupOwnersReaderRequest
8 | {
9 | public Guid RunId { get; set; }
10 | public Guid GroupId { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/WebApi.Models/WebApi.Models.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 | enable
6 | enable
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/Http/IHttpAuthenticationProvider.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using System.Net.Http;
5 | using System.Threading.Tasks;
6 |
7 | namespace Services.Contracts.Http
8 | {
9 | public interface IHttpAuthenticationProvider
10 | {
11 | Task AuthenticateHttpClientAsync(HttpClient httpClient);
12 | }
13 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/Http/IHttpRequestTokenProvider.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using System.Threading.Tasks;
5 |
6 | namespace Services.Contracts.Http
7 | {
8 | public interface IHttpRequestTokenProvider
9 | {
10 | Task GetAccessTokenAsync(string authority, string resource, string scope);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/InjectConfig/ILogAnalyticsSecret.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | namespace Repositories.Contracts.InjectConfig
4 | {
5 | public interface ILogAnalyticsSecret
6 | {
7 | string WorkSpaceId { get; }
8 | string SharedKey { get; }
9 | string Location { get; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureUserReader/Services.Contracts/IBlobClientFactory.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Azure.Storage.Blobs;
5 |
6 | namespace Services.Contracts
7 | {
8 | public interface IBlobClientFactory
9 | {
10 | public BlobClient GetBlobClient(string connectionString, string blobContainerName, string blobName);
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/DestinationAttributesUpdater/Infrastructure/data/keyVaultSecretsSecure.bicep:
--------------------------------------------------------------------------------
1 | param keyVaultName string
2 | @secure()
3 | param keyVaultSecrets object
4 |
5 | resource secrets 'Microsoft.KeyVault/vaults/secrets@2021-06-01-preview' = [for secret in keyVaultSecrets.secrets: {
6 | name: '${keyVaultName}/${secret.name}'
7 | properties: {
8 | value: secret.value
9 | }
10 | }]
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobScheduler/Function/Activity/BatchUpdateJobs/BatchUpdateJobsRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Models;
5 | using System.Collections.Generic;
6 |
7 | namespace Hosts.JobScheduler
8 | {
9 | public class BatchUpdateJobsRequest
10 | {
11 | public IEnumerable SyncJobBatch;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelUpdater/Function/Activity/FileDownloader/FileDownloaderRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 |
5 | namespace Hosts.TeamsChannelUpdater
6 | {
7 | public class FileDownloaderRequest
8 | {
9 | public string FilePath { get; set; }
10 | public SyncJob SyncJob { get; set; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/LogProperties.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using System.Collections.Generic;
5 |
6 | namespace Models
7 | {
8 | public class LogProperties
9 | {
10 | public Dictionary Properties { get; set; } = new Dictionary();
11 | public int ConcurrentParts { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.SyncJobs.Tests/Repositories.SyncJobs.Tests.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 |
6 | false
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/UI/web-app/src/models/GetOrgLeaderDetailsResponse.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export interface GetOrgLeaderDetailsResponse {
5 | maxDepth: number;
6 | employeeId: number;
7 | objectId: string;
8 | partId: number;
9 | text: string;
10 | }
11 |
12 | export type OrgLeaderPickerPersona = {
13 | key: number;
14 | text: string;
15 | id: string;
16 | };
--------------------------------------------------------------------------------
/UI/web-app/src/services/auth/IAuthenticationService.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | import { TokenType } from './TokenType';
5 | import { User } from '../../models/User';
6 |
7 | export interface IAuthenticationService {
8 | loginAsync: () => Promise;
9 | getActiveAccount(): User | undefined;
10 | getTokenAsync: (tokenType: TokenType) => Promise;
11 | }
12 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupMembershipObtainer/Function/Activity/FileDownloader/FileDownloaderRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 |
5 | namespace Hosts.GroupMembershipObtainer
6 | {
7 | public class FileDownloaderRequest
8 | {
9 | public string FilePath { get; set; }
10 | public SyncJob SyncJob { get; set; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/MembershipAggregator/Function/Activity/FileDownloader/FileDownloaderRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Models;
5 |
6 | namespace Hosts.MembershipAggregator
7 | {
8 | public class FileDownloaderRequest
9 | {
10 | public string FilePath { get; set; }
11 | public SyncJob SyncJob { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Services.Messages/Responses/GetSettingResponse.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Services.Messages.Contracts.Responses;
5 | using WebApi.Models.DTOs;
6 |
7 | namespace Services.Messages.Responses
8 | {
9 | public class GetSettingResponse : ResponseBase
10 | {
11 | public Setting Model { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Services.Messages/Responses/NotificationCardResponse.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Services.Messages.Contracts.Responses;
5 |
6 | namespace Services.Messages.Responses
7 | {
8 | public class NotificationCardResponse : ResponseBase
9 | {
10 | public string CardJson { get; set; } = string.Empty;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/MembershipAggregatorHttpRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Models
5 | {
6 | public class MembershipAggregatorHttpRequest : MembershipHttpRequest
7 | {
8 | public int PartNumber { get; set; }
9 | public int PartsCount { get; set; }
10 | public bool IsDestinationPart { get; set; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/Page.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using System.Collections.Generic;
5 |
6 | namespace Models
7 | {
8 | public class Page
9 | {
10 | public string Query { get; set; }
11 | public string ContinuationToken { get; set; }
12 | public IReadOnlyList Values { get; set; } = new List();
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/SqlMembershipAttribute.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Models
5 | {
6 | public class SqlMembershipAttribute
7 | {
8 | public string Name { get; set; }
9 | public string CustomLabel { get; set; }
10 | public string Type { get; set; }
11 | public bool HasMapping { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/IAppConfigVerbosity.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Repositories.Contracts
5 | {
6 | public enum VerbosityLevel
7 | {
8 | INFO = 1,
9 | DEBUG = 2
10 | }
11 |
12 | public interface IAppConfigVerbosity
13 | {
14 | public VerbosityLevel Verbosity { get; }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/UI/web-app/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
5 | sans-serif;
6 | -webkit-font-smoothing: antialiased;
7 | -moz-osx-font-smoothing: grayscale;
8 | }
9 |
10 | code {
11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
12 | monospace;
13 | }
14 |
--------------------------------------------------------------------------------
/Infrastructure/data/serviceBusTopic.bicep:
--------------------------------------------------------------------------------
1 | @minLength(1)
2 | param serviceBusName string
3 |
4 | @minLength(1)
5 | param topicName string
6 |
7 | resource serviceBusTopic 'Microsoft.ServiceBus/namespaces/topics@2017-04-01' = {
8 | name: '${serviceBusName}/${topicName}'
9 | properties: {
10 | requiresDuplicateDetection: true
11 | defaultMessageTimeToLive: 'P14D'
12 | duplicateDetectionHistoryTimeWindow: 'PT01M'
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupOwnershipObtainer/Function/Activity/JobStatusUpdater/JobStatusUpdaterRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 |
5 | namespace Hosts.GroupOwnershipObtainer
6 | {
7 | public class JobStatusUpdaterRequest
8 | {
9 | public SyncStatus Status { get; set; }
10 | public SyncJob SyncJob { get; set; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Services.Messages/Responses/ResolveNotificationResponse.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Services.Messages.Contracts.Responses;
5 |
6 | namespace Services.Messages.Responses
7 | {
8 | public class ResolveNotificationResponse : ResponseBase
9 | {
10 | public string CardJson { get; set; } = string.Empty;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/DestinationAttributes.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 | using System.Collections.Generic;
6 |
7 | namespace Models
8 | {
9 | public class DestinationAttributes
10 | {
11 | public Guid Id { get; set; }
12 | public string Name { get; set; }
13 | public List Owners { get; set; }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/InjectConfig/IKeyVaultSecret.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | namespace Repositories.Contracts.InjectConfig
4 | {
5 | public interface IKeyVaultSecret
6 | {
7 | string Secret { get; }
8 | }
9 | public interface IKeyVaultSecret
10 | {
11 | TSecret Secret { get; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Mocks/MockSubscription.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models.ServiceBus;
4 | using System.Collections.Generic;
5 |
6 |
7 | namespace Repositories.Mocks
8 | {
9 | public class MockSubscription
10 | {
11 | public string Name { get; set; }
12 | public List Messages { get; set; }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Mocks/MockTopic.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System.Collections.Generic;
4 | using System.Diagnostics.CodeAnalysis;
5 |
6 | namespace Repositories.Mocks
7 | {
8 | public class MockTopic
9 | {
10 | public string Name { get; set; }
11 | public List Subscriptions { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Notifications.Tests/Repositories.Notifications.Tests.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 |
6 | false
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/UI/web-app/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # production
12 | /build
13 |
14 | # misc
15 | .DS_Store
16 | .env.local
17 | .env.development.local
18 | .env.test.local
19 | .env.production.local
20 | .npmrc
21 |
22 | npm-debug.log*
23 | yarn-debug.log*
24 | yarn-error.log*
25 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Function/Activity/GroupValidator/GroupValidatorRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Hosts.GraphUpdater
6 | {
7 | public class GroupValidatorRequest
8 | {
9 | public Guid RunId { get; set; }
10 | public Guid GroupId { get; set; }
11 | public Guid JobId { get; set; }
12 | }
13 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobScheduler/Function/Activity/ResetJobs/ResetJobsRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Models;
5 | using System.Collections.Generic;
6 |
7 | namespace Hosts.JobScheduler
8 | {
9 | public class ResetJobsRequest
10 | {
11 | public List JobsToReset;
12 | public int DaysToAddForReset;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobScheduler/Function/UpdateJobsSubOrchestrator/UpdateJobsSubOrchestratorRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Models;
5 | using System.Collections.Generic;
6 |
7 | namespace Hosts.JobScheduler
8 | {
9 | public class UpdateJobsSubOrchestratorRequest
10 | {
11 | public List JobsToUpdate;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Services.WebApi.Contracts/ValidationResponse.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Services.WebApi.Contracts
5 | {
6 | public class ValidationResponse
7 | {
8 | public bool IsValid { get; set; }
9 | public string? ErrorCode { get; set; }
10 | public List? ResponseData { get; set; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.ServiceBusTopics.Tests/Repositories.ServiceBusTopics.Tests.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 |
6 | false
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/UI/web-app/src/models/JobDetails.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export interface JobDetails {
5 | startDate: string;
6 | lastSuccessfulStartTime: string;
7 | source: string;
8 | requestor: string;
9 | thresholdViolations: number;
10 | thresholdPercentageForAdditions: number;
11 | thresholdPercentageForRemovals: number;
12 | endpoints: string[];
13 | period: number;
14 | }
15 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureUserReader/Services.Contracts/Services.Contracts.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupMembershipObtainer/Function/Activity/DeltaUsersReader/DeltaUsersReaderRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 |
6 | namespace Hosts.GroupMembershipObtainer
7 | {
8 | public class DeltaUsersReaderRequest
9 | {
10 | public Guid RunId { get; set; }
11 | public string DeltaLink { get; set; }
12 | }
13 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupMembershipObtainer/Function/Activity/GetTransitiveGroupCount/GetTransitiveGroupCountRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Hosts.GroupMembershipObtainer
6 | {
7 | public class GetTransitiveGroupCountRequest
8 | {
9 | public Guid RunId { get; set; }
10 | public Guid GroupId { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupMembershipObtainer/Function/Activity/SubsequentUsersReader/SubsequentUsersReaderRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Hosts.GroupMembershipObtainer
6 | {
7 | public class SubsequentUsersReaderRequest
8 | {
9 | public Guid RunId { get; set; }
10 | public string NextPageUrl { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobScheduler/Function/Activity/PostCallback/PostCallbackRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 |
5 | namespace Hosts.JobScheduler
6 | {
7 | public class PostCallbackRequest
8 | {
9 | public string AuthToken { get; set; }
10 | public string SuccessBody { get; set; }
11 | public string CallbackUrl { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Function/Activity/LoadTestingSyncJobRetriever/LoadTestingSyncJobRetrieverResponse.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 | using System.Collections.Generic;
5 |
6 | namespace Hosts.NonProdService
7 | {
8 | public class LoadTestingSyncJobRetrieverResponse
9 | {
10 | public List SyncJobs{ get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Function/LoadTestingPrepSubOrchestrator/LoadTestingPrepSubOrchestratorRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Hosts.NonProdService
6 | {
7 | internal class LoadTestingPrepSubOrchestratorRequest
8 | {
9 | public Guid RunId { get; set; }
10 | public int TenantUserCount { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/PlaceMembershipObtainer/Function/Activity/SubsequentUsersReader/SubsequentUsersReaderRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Hosts.PlaceMembershipObtainer
6 | {
7 | public class SubsequentUsersReaderRequest
8 | {
9 | public Guid RunId { get; set; }
10 | public string NextPageUrl { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/TeamsChannelMembershipObtainer/Function/Activity/JobStatusUpdater/JobStatusUpdaterRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 |
5 | namespace Hosts.TeamsChannelMembershipObtainer
6 | {
7 | public class JobStatusUpdaterRequest
8 | {
9 | public SyncJob SyncJob { get; set; }
10 | public SyncStatus Status { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Services.Messages/Responses/GetGroupEndpointsResponse.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Services.Messages.Contracts.Responses;
5 |
6 | namespace Services.Messages.Responses
7 | {
8 | public class GetGroupEndpointsResponse : ResponseBase
9 | {
10 | public List Endpoints { get; set; } = new List();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/PlaceInformation.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System.Collections.Generic;
4 | using System.Diagnostics.CodeAnalysis;
5 |
6 | namespace Models
7 | {
8 | [ExcludeFromCodeCoverage]
9 | public class PlaceInformation
10 | {
11 | public List Users { get; set; }
12 | public string NextPageUrl { get; set; }
13 | }
14 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/IMailRepository.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 | using System;
5 | using System.Net.Http;
6 | using System.Threading.Tasks;
7 |
8 | namespace Repositories.Contracts
9 | {
10 | public interface IMailRepository
11 | {
12 | Task SendMailAsync(EmailMessage emailMessage, Guid? runId);
13 | }
14 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/InjectConfig/IJobTriggerConfig.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | namespace Repositories.Contracts.InjectConfig
4 | {
5 | public interface IJobTriggerConfig
6 | {
7 | public bool GMMHasGroupReadWriteAllPermissions { get; }
8 | public int JobCountThreshold { get; }
9 | public int JobPerMilleThreshold { get; }
10 |
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Documentation/SQLServerBackups.md:
--------------------------------------------------------------------------------
1 | # SQL Server Backups
2 |
3 | If you want to restore a SQL database that was deleted, follow these steps:
4 |
5 | 1. Navigate to `gmm-data-` SQL server.
6 | 1. Navigate to `Backups` under `Data management`.
7 | 1. Click on `Restore` next to `gmm-data-` under `Show Databases` -> `Deleted` -> `Restore`.
8 | 1. Provide the required details. Make sure that the database name provided is `gmm-data-`.
9 | 1. Click `Review + Create`.
--------------------------------------------------------------------------------
/Infrastructure/data/userAssignedIdentity.bicep:
--------------------------------------------------------------------------------
1 | @description('Resource location.')
2 | param location string
3 |
4 | @description('User assigned managed identity name.')
5 | param identityName string
6 |
7 | resource userAssignedManagedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-07-31-preview' = {
8 | name: identityName
9 | location: location
10 | }
11 |
12 | output clientId string = userAssignedManagedIdentity.properties.clientId
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureMaintenance/Services/Services.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupMembershipObtainer/Function/Activity/JobStatusUpdater/JobStatusUpdaterRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 | using System;
5 |
6 | namespace Hosts.GroupMembershipObtainer
7 | {
8 | public class JobStatusUpdaterRequest
9 | {
10 | public SyncJob SyncJob { get; set; }
11 | public SyncStatus Status { get; set; }
12 | }
13 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupMembershipObtainer/Function/Activity/SubsequentMembersReader/SubsequentMembersReaderRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Hosts.GroupMembershipObtainer
6 | {
7 | public class SubsequentMembersReaderRequest
8 | {
9 | public Guid RunId { get; set; }
10 | public string NextPageUrl { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupOwnershipObtainer/Function/Activity/GetGroupOwners/GetGroupOwnersRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Models;
5 | using System;
6 |
7 | namespace Hosts.GroupOwnershipObtainer
8 | {
9 | public class GetGroupOwnersRequest
10 | {
11 | public Guid GroupId { get; set; }
12 | public SyncJob SyncJob { get; set; }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/PlaceMembershipObtainer/Function/Activity/JobStatusUpdater/JobStatusUpdaterRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 | using System;
5 |
6 | namespace Hosts.PlaceMembershipObtainer
7 | {
8 | public class JobStatusUpdaterRequest
9 | {
10 | public SyncJob SyncJob { get; set; }
11 | public SyncStatus Status { get; set; }
12 | }
13 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/SqlMembershipObtainer/Function/Activity/JobStatusUpdater/JobStatusUpdaterRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright(c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Entities;
4 | using Models;
5 |
6 | namespace SqlMembershipObtainer
7 | {
8 | public class JobStatusUpdaterRequest
9 | {
10 | public SyncStatus Status { get; set; }
11 | public SyncJob SyncJob { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Infrastructure/compute/parameters/parameters.int.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "apiHostname": {
6 | "value": " OR delete this parameter to leverage default one"
7 | },
8 | "adfPipeline": {
9 | "value": ""
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Infrastructure/compute/parameters/parameters.ua.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "apiHostname": {
6 | "value": " OR delete this parameter to leverage default one"
7 | },
8 | "adfPipeline": {
9 | "value": ""
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Services.Messages.Contracts/MessageBase.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | namespace Services.Messages.Contracts
5 | {
6 | public abstract class MessageBase
7 | {
8 | public Guid InstanceId { get; private set; }
9 |
10 | public MessageBase()
11 | {
12 | InstanceId = Guid.NewGuid();
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/IFeatureFlagRepository.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Threading.Tasks;
5 |
6 | namespace Repositories.Contracts
7 | {
8 | public interface IFeatureFlagRepository
9 | {
10 | Task IsFeatureFlagEnabledAsync(string featureFlagName, bool refreshAppConfigurationValues, Guid? runId);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/UI/web-app/src/services/localization/ILocalizationService.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | import { IStrings } from './IStrings';
5 |
6 | export interface ILocalizationService {
7 |
8 | /** Changes the language used for translations. */
9 | changeLanguage: (language: string) => void;
10 |
11 | /** Gets the strings for the current language. */
12 | getStrings: () => IStrings;
13 |
14 | };
15 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/DestinationAttributesUpdater/Services.Contracts/Services.Contracts.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 | enable
6 | enable
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Services.Contracts/MembershipDifference.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 | using System.Collections.Generic;
5 |
6 | namespace Services
7 | {
8 | public class MembershipDifference
9 | {
10 | public List UsersToAdd { get; set; }
11 | public List UsersToRemove { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Services/Services.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Infrastructure/compute/parameters/parameters.prodv2.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "apiHostname": {
6 | "value": " OR delete this parameter to leverage default one"
7 | },
8 | "adfPipeline": {
9 | "value": ""
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/IDataFactoryRepository.cs:
--------------------------------------------------------------------------------
1 | // Copyright(c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System.Threading.Tasks;
4 |
5 | namespace Repositories.Contracts
6 | {
7 | public interface IDataFactoryRepository
8 | {
9 | Task GetMostRecentSucceededRunIdAsync();
10 | Task<(string latest, string previous)> GetTwoRecentSucceededRunIdsAsync();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/UI/web-app/src/components/Owner/Owner.styles.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | import { type IOwnerStyleProps, type IOwnerStyles } from './Owner.types';
5 |
6 | export const getStyles = (props: IOwnerStyleProps): IOwnerStyles => {
7 | const { className } = props;
8 |
9 | return {
10 | root: [
11 | {
12 | maxWidth: '20%',
13 | },
14 | className,
15 | ],
16 | };
17 | };
18 |
--------------------------------------------------------------------------------
/UI/web-app/src/models/NewJob.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | import { SyncJobQuery } from "./SyncJobQuery";
5 |
6 | export type NewJob = {
7 | requestor: string;
8 | startDate: string;
9 | period: number;
10 | query: SyncJobQuery;
11 | thresholdPercentageForAdditions: number;
12 | thresholdPercentageForRemovals: number;
13 | status: string;
14 | destination: string;
15 | };
16 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Function/Orchestrator/GroupMembershipMessage.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models.ServiceBus;
4 |
5 | namespace Hosts.GraphUpdater
6 | {
7 | public class GroupMembershipMessage
8 | {
9 | public GroupMembership Body { get; set; }
10 | public string LockToken { get; set; }
11 | public bool IsCancelationMessage { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Services.Entities/MessageInformation.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | namespace Services.Entities
4 | {
5 | public class MessageInformation
6 | {
7 | public byte[] Body { get; set; }
8 | public string SessionId { get; set; }
9 | public string LockToken { get; set; }
10 | public string MessageId { get; set; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupMembershipObtainer/Function/Activity/SubsequentDeltaUsersReader/SubsequentDeltaUsersReaderRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Hosts.GroupMembershipObtainer
6 | {
7 | public class SubsequentDeltaUsersReaderRequest
8 | {
9 | public Guid RunId { get; set; }
10 | public string NextPageUrl { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobScheduler/Services.Contracts/IRuntimeRetrievalService.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Threading.Tasks;
6 |
7 | namespace Services.Contracts
8 | {
9 | public interface IRuntimeRetrievalService
10 | {
11 | public Task> GetRunTimesInSecondsAsync();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Function/Activity/LoadTestingGroupCalculator/LoadTestingGroupCalculatorResponse.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 | using System.Collections.Generic;
5 |
6 | namespace Hosts.NonProdService
7 | {
8 | public class LoadTestingGroupCalculatorResponse
9 | {
10 | public Dictionary GroupSizesAndCounts { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Services.Messages/Responses/GetGroupOnboardingStatusResponse.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Models;
5 | using Services.Messages.Contracts.Responses;
6 |
7 | namespace Services.Messages.Responses
8 | {
9 | public class GetGroupOnboardingStatusResponse : ResponseBase
10 | {
11 | public OnboardingStatus Status { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/UI/web-app/src/components/PageSection/PageSection.styles.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | import {
5 | type IPageSectionStyleProps,
6 | type IPageSectionStyles,
7 | } from './PageSection.types';
8 |
9 | export const getStyles = (props: IPageSectionStyleProps): IPageSectionStyles => {
10 | const { className, theme } = props;
11 |
12 | return {
13 | root: [{
14 | }, className],
15 | };
16 | };
17 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureUserReader/Function/Requests/AzureUserCreatorRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using System.Collections.Generic;
5 |
6 | namespace Hosts.AzureUserReader
7 | {
8 | public class AzureUserCreatorRequest
9 | {
10 | public List PersonnelNumbers { get; set; }
11 | public TenantInformation TenantInformation { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupMembershipObtainer/Function/SubOrchestrator/UsersReaderResponse.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 | using System.Collections.Generic;
5 |
6 | namespace Hosts.GroupMembershipObtainer
7 | {
8 | public class UsersReaderResponse
9 | {
10 | public List Users { get; set; }
11 | public string DeltaUrl { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/Notifier/Function/Requests/UpdateNotificationStatusRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Models.ThresholdNotifications;
5 |
6 | namespace Hosts.Notifier
7 | {
8 | public class UpdateNotificationStatusRequest
9 | {
10 | public ThresholdNotification Notification { get; set; }
11 | public ThresholdNotificationStatus Status { get; set; }
12 | }
13 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Services.Messages/Responses/GetOrgLeaderDetailsResponse.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Services.Messages.Contracts.Responses;
5 |
6 | namespace Services.Messages.Responses
7 | {
8 | public class GetOrgLeaderDetailsResponse : ResponseBase
9 | {
10 | public int EmployeeId { get; set; }
11 | public int MaxDepth { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Function/Orchestrator/GroupMembershipMessageResponse.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System.Collections.Generic;
4 |
5 | namespace Hosts.GraphUpdater
6 | {
7 | public class GroupMembershipMessageResponse
8 | {
9 | public List CompletedGroupMembershipMessages { get; set; }
10 | public bool ShouldCompleteMessage { get; set; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/MembershipAggregator/Function/Activity/Logger/LoggerRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 | using Repositories.Contracts;
5 |
6 | namespace Hosts.MembershipAggregator
7 | {
8 | public class LoggerRequest
9 | {
10 | public LogMessage Message { get; set; }
11 | public VerbosityLevel Verbosity { get; set; } = VerbosityLevel.INFO;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Function/IntegrationTestingPrepSubOrchestrator/IntegrationTestingPrepSubOrchestratorRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Hosts.NonProdService
6 | {
7 | internal class IntegrationTestingPrepSubOrchestratorRequest
8 | {
9 | public Guid RunId { get; set; }
10 | public int TenantUserCount { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Services.Messages/Responses/GetDefaultSqlMembershipSourceResponse.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Models;
5 | using Services.Messages.Contracts.Responses;
6 |
7 | namespace Services.Messages.Responses
8 | {
9 | public class GetDefaultSqlMembershipSourceResponse : ResponseBase
10 | {
11 | public SqlMembershipSource Model { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/WebApi/Services.Messages/Responses/GetOrgLeaderResponse.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Services.Messages.Contracts.Responses;
5 |
6 | namespace Services.Messages.Responses
7 | {
8 | public class GetOrgLeaderResponse : ResponseBase
9 | {
10 | public string AzureObjectId { get; set; } = string.Empty;
11 | public int MaxDepth { get; set; }
12 | }
13 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/UpdateMergeSyncJob.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 | using System.Data.SqlTypes;
6 |
7 | namespace Models
8 | {
9 | public class UpdateMergeSyncJob
10 | {
11 | public Guid Id { get; set; }
12 |
13 | public DateTime ScheduledDate { get; set; } = SqlDateTime.MinValue.Value;
14 |
15 | public UpdateMergeSyncJob() { }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/ILocalizationRepository.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Repositories.Contracts
6 | {
7 | public interface ILocalizationRepository
8 | {
9 | string TranslateSetting(string settingName, params string[] additionalParams);
10 | string TranslateSetting(Enum enumValue, params string[] additionalParams);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Function/Entities/GraphUpdaterBatchSize.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace GraphUpdater.Entities
10 | {
11 | public class GraphUpdaterBatchSize
12 | {
13 | public int BatchSize { get; init; }
14 | }
15 | }
16 |
17 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupMembershipObtainer/Function/SubOrchestrator/SubOrchestratorResponse.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 | using System.Collections.Generic;
5 |
6 | namespace Hosts.GroupMembershipObtainer
7 | {
8 | public class SubOrchestratorResponse
9 | {
10 | public List Users { get; set; }
11 | public SyncStatus Status { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/SqlMembershipObtainer/Services.Tests/Helpers/OrganizationLevel.cs:
--------------------------------------------------------------------------------
1 | // Copyright(c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using SqlMembershipObtainer.Entities;
4 | using System.Collections.Generic;
5 |
6 | namespace Services.Tests.Helpers
7 | {
8 | internal class OrganizationLevel
9 | {
10 | public int LevelId { get; set; }
11 | public List Entities { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/IServiceBusTopicsRepository.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 | using Models.ServiceBus;
5 | using System.Threading.Tasks;
6 |
7 | namespace Repositories.Contracts
8 | {
9 | public interface IServiceBusTopicsRepository
10 | {
11 | Task AddMessageAsync(SyncJob job);
12 | Task AddMessageAsync(ServiceBusMessage message);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/UI/web-app/src/apis/IGMMApi.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | import { IJobsApi } from './jobs';
5 | import { IRolesApi } from './roles';
6 | import { ISettingsApi } from './settings';
7 | import { ISqlMembershipSourcesApi } from './sqlMembershipSources';
8 |
9 | export interface IGMMApi {
10 | settings: ISettingsApi;
11 | jobs: IJobsApi;
12 | roles: IRolesApi;
13 | sqlMembershipSources: ISqlMembershipSourcesApi;
14 | }
15 |
--------------------------------------------------------------------------------
/UI/web-app/src/apis/roles/IRolesApi.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | export interface Roles {
5 | isJobOwnerReader(): boolean;
6 | isJobOwnerWriter(): boolean;
7 | isJobTenantReader(): boolean;
8 | isJobTenantWriter(): boolean;
9 | isHyperlinkAdministrator(): boolean;
10 | isCustomMembershipProviderAdministrator(): boolean;
11 | }
12 |
13 |
14 | export interface IRolesApi {
15 | getAllRoles(): Promise;
16 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureMaintenance/Services.Entities/Contracts/IReviewAndDeleteRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Repositories.Contracts.InjectConfig;
4 | using Services.Entities;
5 |
6 | namespace Services.Contracts
7 | {
8 | public interface IReviewAndDeleteRequest
9 | {
10 | string TargetName { get; set; }
11 | AzureMaintenanceJob MaintenanceSetting { get; set; }
12 | }
13 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/AzureUserReader/Function/host.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "2.0",
3 | "functionTimeout": "00:10:00",
4 | "logging": {
5 | "applicationInsights": {
6 | "samplingSettings": {
7 | "isEnabled": true,
8 | "excludedTypes": "Request"
9 | }
10 | }
11 | },
12 | "extensions": {
13 | "durableTask": {
14 | "extendedSessionsEnabled": true,
15 | "extendedSessionIdleTimeoutInSeconds": 30
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/SqlMembershipObtainer.Common/SqlMembershipObtainer.Entities/SqlMembershipObtainer.Entities.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Repositories.Contracts/IServiceBusSubscriptionsRepository.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using Models.ServiceBus;
5 | using System.Collections.Generic;
6 |
7 | namespace Repositories.Contracts
8 | {
9 | public interface IServiceBusSubscriptionsRepository
10 | {
11 | IAsyncEnumerable GetMessagesAsync(string topicName, string subscriptionName);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/UI/web-app/src/components/AppHeader/AppHeader.test.tsx:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.import React from "react";
3 |
4 | import { render } from '@testing-library/react';
5 | import '@testing-library/jest-dom';
6 | import { AppHeader } from './AppHeader';
7 |
8 | describe('AppHeader', () => {
9 | it('renders', () => {
10 | const { asFragment } = render();
11 | expect(asFragment()).toMatchSnapshot();
12 | });
13 | });
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GroupMembershipObtainer/Function/Request/GroupMembershipRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 | using System;
5 |
6 | namespace Hosts.GroupMembershipObtainer
7 | {
8 | public class GroupMembershipRequest
9 | {
10 | public SyncJob SyncJob { get; set; }
11 | public AzureADGroup SourceGroup { get; set; }
12 | public Guid RunId { get; set; }
13 | }
14 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/JobTrigger/Function/Activity/TelemetryTracker/TelemetryTrackerRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright(c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 | using System;
5 |
6 | namespace Hosts.JobTrigger
7 | {
8 | public class TelemetryTrackerRequest
9 | {
10 | public SyncStatus JobStatus { get; set; }
11 | public ResultStatus ResultStatus { get; set; }
12 | public Guid? RunId { get; set; }
13 | }
14 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/MembershipAggregator/Services.Contracts/Services.Contracts.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/PlaceMembershipObtainer/Function/SubOrchestrator/SubOrchestratorRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 | using System;
5 |
6 | namespace Hosts.PlaceMembershipObtainer
7 | {
8 | public class SubOrchestratorRequest
9 | {
10 | public SyncJob SyncJob { get; set; }
11 | public string Url { get; set; }
12 | public Guid RunId { get; set; }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/SqlMembershipObtainer/Function/Activity/ChildEntitiesFilter/ChildEntitiesFilterRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright(c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 |
5 | namespace SqlMembershipObtainer
6 | {
7 | public class ChildEntitiesFilterRequest
8 | {
9 | public string Query { get; set; }
10 | public string TableName { get; set; }
11 | public SyncJob SyncJob { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/SqlMembershipObtainer/Function/Activity/FeatureFlagReader/FeatureFlagRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace SqlMembershipObtainer
6 | {
7 | public class FeatureFlagRequest
8 | {
9 | public Guid? RunId { get; set; }
10 | public string FeatureFlagName { get; set; }
11 | public bool RefreshAppConfigurationValues { get; set; }
12 | }
13 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/SqlMembershipObtainer/Function/SubOrchestrator/OrganizationProcessor/OrganizationProcessorRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright(c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 | using SqlMembershipObtainer.Entities;
5 |
6 | namespace SqlMembershipObtainer
7 | {
8 | public class OrganizationProcessorRequest
9 | {
10 | public Query Query { get; set; }
11 | public SyncJob SyncJob { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Models/AdaptiveCards/ThesholdNotificationNotFoundCardData.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 |
6 | namespace Models.AdaptiveCards
7 | {
8 | public class ThesholdNotificationNotFoundCardData
9 | {
10 | public string NotificationId { get; set; }
11 | public string ProviderId { get; set; }
12 | public DateTime CardCreatedTime { get; set; }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/UI/web-app/src/pages/OwnerPage.tsx:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 |
4 | import React from 'react';
5 |
6 | import { Owner } from '../components/Owner/Owner';
7 | import { Page } from '../components/Page';
8 | import { PageHeader } from '../components/PageHeader';
9 |
10 | export const OwnerPage: React.FunctionComponent = () => {
11 | return (
12 |
13 |
14 |
15 |
16 | );
17 | };
18 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/GraphUpdater/Function/Activity/TelemetryTracker/TelemetryTrackerRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright(c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using Models;
4 | using System;
5 |
6 | namespace Hosts.GraphUpdater
7 | {
8 | public class TelemetryTrackerRequest
9 | {
10 | public SyncStatus JobStatus { get; set; }
11 | public ResultStatus ResultStatus { get; set; }
12 | public Guid? RunId { get; set; }
13 | }
14 | }
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/NonProdService/Function/LoadTestingPrepSubOrchestrator/LoadTestingPrepSubOrchestratorOptions.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace NonProdService.LoadTestingPrepSubOrchestrator
6 | {
7 | public class LoadTestingPrepSubOrchestratorOptions
8 | {
9 | public Guid DestinationGroupOwnerId { get; set; }
10 | public int GroupCount { get; set; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Service/GroupMembershipManagement/Hosts/PlaceMembershipObtainer/Function/Activity/RoomsReader/RoomsReaderRequest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Microsoft Corporation.
2 | // Licensed under the MIT license.
3 | using System;
4 |
5 | namespace Hosts.PlaceMembershipObtainer
6 | {
7 | public class RoomsReaderRequest
8 | {
9 | public Guid RunId { get; set; }
10 | public string Url { get; set; }
11 | public int Top { get; set; }
12 | public int Skip { get; set; }
13 | }
14 | }
--------------------------------------------------------------------------------