# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Applications Service Principals.synchronization API version: 1.0.0 extends: openapi/azure-ad-serviceprincipals-synchronization-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-10-01' generator: build-phrasing.py label: Generated by API Evangelist operations: 56 - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization'].get update: x-apievangelist-phrasing: intent: Get an app's provisioning synchronization setup effect: read questions: - What does the overall provisioning synchronization resource look like for one enterprise app? - Can I see an app's sync jobs, templates and secrets in one read? instructions: - text: Show the synchronization resource for service principal {sp}. slots: sp: path.servicePrincipal-id - text: Fetch the whole provisioning sync configuration of app {sp}, expanding {expand}. slots: sp: path.servicePrincipal-id expand: query.$expand method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization'].put update: x-apievangelist-phrasing: intent: Replace an app's whole synchronization resource effect: write questions: - Can I overwrite a service principal's entire synchronization resource in a single PUT? - Is there a way to set an app's sync jobs, templates and secrets all at once? instructions: - text: Replace the entire synchronization resource of service principal {sp} with the jobs {jobs}. slots: sp: path.servicePrincipal-id jobs: requestBody.jobs - text: Overwrite app {sp}'s synchronization resource, including its templates {templates}. slots: sp: path.servicePrincipal-id templates: requestBody.templates method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization'].delete update: x-apievangelist-phrasing: intent: Remove an app's entire synchronization resource effect: destructive questions: - How do I tear down all provisioning synchronization for an enterprise app? - Can I delete the whole synchronization resource of a service principal rather than a single job? instructions: - text: Delete the entire synchronization resource from service principal {sp}. slots: sp: path.servicePrincipal-id - text: Remove all sync configuration from app {sp} if its ETag still matches {etag}. slots: sp: path.servicePrincipal-id etag: header.If-Match method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs'].get update: x-apievangelist-phrasing: intent: List an app's provisioning sync jobs effect: read questions: - Which provisioning synchronization jobs exist for an enterprise app? - Can I filter the sync jobs on a service principal by template? instructions: - text: List the synchronization jobs on service principal {sp}. slots: sp: path.servicePrincipal-id - text: List app {sp}'s sync jobs matching {filter}. slots: sp: path.servicePrincipal-id filter: query.$filter method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs'].post update: x-apievangelist-phrasing: intent: Create a provisioning sync job for an app effect: write questions: - How do I set up a new user provisioning job for an enterprise app? - Does a newly created synchronization job start running right away or is it disabled? instructions: - text: Create a synchronization job on service principal {sp} from template {templateId}. slots: sp: path.servicePrincipal-id templateId: requestBody.templateId - text: Add a new provisioning job to app {sp} using template {templateId} with schedule {schedule}. slots: sp: path.servicePrincipal-id templateId: requestBody.templateId schedule: requestBody.schedule method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}'].get update: x-apievangelist-phrasing: intent: Get one provisioning sync job effect: read questions: - What is the current status and schedule of a specific provisioning job? - Can I look up a single synchronization job by its ID? instructions: - text: Get synchronization job {job} on service principal {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Show the status and settings of sync job {job} for app {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}'].delete update: x-apievangelist-phrasing: intent: Stop and delete a provisioning sync job effect: destructive questions: - What happens to already-synced accounts when I delete a provisioning job? - How do I permanently remove a sync job and all its state? instructions: - text: Delete synchronization job {job} from service principal {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Stop and permanently remove provisioning job {job} on app {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}'].patch update: x-apievangelist-phrasing: intent: Update a provisioning sync job's settings effect: write questions: - Can I change the run schedule of an existing provisioning job? - Is it possible to edit a sync job's settings without recreating it? instructions: - text: Change the schedule of sync job {job} on service principal {sp} to {schedule}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id schedule: requestBody.schedule - text: Update the job settings of provisioning job {job} for app {sp} to {settings}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id settings: requestBody.synchronizationJobSettings method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/bulkUpload'].get update: x-apievangelist-phrasing: intent: Get a sync job's bulk upload operation effect: read questions: - Where can I see the bulk upload operation attached to a provisioning job? - Does a synchronization job have a bulk upload object I can inspect? instructions: - text: Get the bulk upload object for sync job {job} on service principal {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Show bulk upload metadata of provisioning job {job} in app {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/bulkUpload'].delete update: x-apievangelist-phrasing: intent: Delete a sync job's bulk upload object effect: destructive questions: - Can I remove the bulk upload operation from a provisioning job entirely? - How do I delete the bulk upload navigation object on a sync job? instructions: - text: Delete the bulk upload object from sync job {job} on service principal {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Remove provisioning job {job}'s bulk upload in app {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/bulkUpload'].patch update: x-apievangelist-phrasing: intent: Update a sync job's bulk upload object effect: write questions: - Can I patch the bulk upload object tied to a provisioning job? - Is the bulk upload entity on a sync job editable? instructions: - text: Update the bulk upload object of sync job {job} on service principal {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Patch provisioning job {job}'s bulk upload entity in app {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/bulkUpload/$value'].get update: x-apievangelist-phrasing: intent: Download a sync job's bulk upload content effect: read questions: - How do I download the raw bulk upload payload of a provisioning job? - Can I read back the media content that was bulk uploaded to a sync job? instructions: - text: Download the bulk upload content for sync job {job} on service principal {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Fetch the raw bulk upload file of provisioning job {job} in app {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/bulkUpload/$value'].put update: x-apievangelist-phrasing: intent: Upload bulk content to a sync job effect: write questions: - How do I push a bulk upload payload into a provisioning job? - Can I replace the media content of a sync job's bulk upload? instructions: - text: Upload bulk content to sync job {job} on service principal {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Replace the bulk upload file of provisioning job {job} in app {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/bulkUpload/$value'].delete update: x-apievangelist-phrasing: intent: Delete a sync job's bulk upload content effect: destructive questions: - Can I clear just the uploaded bulk file from a provisioning job? - Is there a way to delete the bulk upload media content without removing the bulk upload object? instructions: - text: Delete the bulk upload content from sync job {job} on service principal {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Clear the uploaded bulk file of provisioning job {job} in app {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/microsoft.graph.pause'].post update: x-apievangelist-phrasing: intent: Pause a running provisioning sync job effect: write questions: - How do I temporarily stop a provisioning job without losing its progress? - If I pause a sync job, will it pick up where it left off later? instructions: - text: Pause sync job {job} on service principal {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Temporarily halt provisioning job {job} for app {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/microsoft.graph.provisionOnDemand'].post update: x-apievangelist-phrasing: intent: Provision a user on demand through a sync job effect: write questions: - Can I provision a single user right now instead of waiting for the next sync cycle? - What is the rate limit for on-demand provisioning? instructions: - text: Provision on demand through sync job {job} on service principal {sp} with parameters {parameters}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id parameters: requestBody.parameters - text: Push the selected user into app {sp} immediately using provisioning job {job}. slots: sp: path.servicePrincipal-id job: path.synchronizationJob-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/microsoft.graph.restart'].post update: x-apievangelist-phrasing: intent: Restart a sync job and reprocess everything effect: write questions: - How do I force a provisioning job to reprocess every object in the directory? - Can a restart clear the existing synchronization state first? instructions: - text: Restart sync job {job} on service principal {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Restart provisioning job {job} for app {sp} with reset criteria {criteria}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id criteria: requestBody.criteria method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/microsoft.graph.start'].post update: x-apievangelist-phrasing: intent: Start or resume a provisioning sync job effect: write questions: - How do I kick off a provisioning job after creating it? - Does starting a paused sync job continue from where it stopped? instructions: - text: Start sync job {job} on service principal {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Resume the paused provisioning job {job} in app {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/microsoft.graph.validateCredentials'].post update: x-apievangelist-phrasing: intent: Validate credentials for an existing sync job effect: read questions: - How do I confirm an existing provisioning job's credentials are still valid in my tenant? - Can I test replacement credentials against a sync job that is already set up? instructions: - text: Validate the credentials of sync job {job} on service principal {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Test credentials {credentials} against existing job {job} on service principal {sp}. slots: credentials: requestBody.credentials job: path.synchronizationJob-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/schema'].get update: x-apievangelist-phrasing: intent: Get a sync job's synchronization schema effect: read questions: - What attribute mappings and rules does a running provisioning job use? - Can I read the synchronization schema for one specific job? instructions: - text: Get the synchronization schema of job {job} on service principal {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Show the attribute mapping schema used by provisioning job {job} in app {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/schema'].delete update: x-apievangelist-phrasing: intent: Delete a sync job's synchronization schema effect: destructive questions: - Can I delete a provisioning job's customized schema? - What removes the synchronization schema from one sync job? instructions: - text: Delete the synchronization schema from job {job} on service principal {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Remove provisioning job {job}'s schema in app {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/schema'].patch update: x-apievangelist-phrasing: intent: Replace a sync job's synchronization schema effect: write questions: - How do I change the attribute mappings of a running provisioning job? - Does updating a job's schema replace it fully or merge changes? instructions: - text: Replace the schema of sync job {job} on service principal {sp} with rules {rules}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id rules: requestBody.synchronizationRules - text: Update provisioning job {job}'s schema in app {sp} with directories {directories}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id directories: requestBody.directories method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/schema/directories'].get update: x-apievangelist-phrasing: intent: List directories in a sync job's schema effect: read questions: - Which source and target directories are defined in a provisioning job's schema? - Can I list the directory definitions of one sync job? instructions: - text: List the directory definitions in the schema of sync job {job} on service principal {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Show provisioning job {job}'s schema directories in app {sp} matching {filter}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id filter: query.$filter method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/schema/directories'].post update: x-apievangelist-phrasing: intent: Add a directory to a sync job's schema effect: write questions: - How do I add a new directory definition to a provisioning job's schema? - Can I register an extra directory in one sync job's schema? instructions: - text: Add directory {name} to the schema of sync job {job} on service principal {sp}. slots: name: requestBody.name job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Create a read-only directory definition {name} in provisioning job {job}'s schema for app {sp}. slots: name: requestBody.name job: path.synchronizationJob-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/schema/directories/{directoryDefinition-id}'].get update: x-apievangelist-phrasing: intent: Get a directory in a sync job's schema effect: read questions: - What objects are defined in one directory of a provisioning job's schema? - Can I fetch a single directory definition from a sync job? instructions: - text: Get directory {directory} from the schema of sync job {job} on service principal {sp}. slots: directory: path.directoryDefinition-id job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Show the objects of directory {directory} in provisioning job {job} for app {sp}. slots: directory: path.directoryDefinition-id job: path.synchronizationJob-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/schema/directories/{directoryDefinition-id}'].delete update: x-apievangelist-phrasing: intent: Remove a directory from a sync job's schema effect: destructive questions: - How do I drop a directory definition from a provisioning job's schema? - Can I delete one directory out of a sync job's schema? instructions: - text: Delete directory {directory} from the schema of sync job {job} on service principal {sp}. slots: directory: path.directoryDefinition-id job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Remove directory definition {directory} from provisioning job {job} in app {sp}. slots: directory: path.directoryDefinition-id job: path.synchronizationJob-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/schema/directories/{directoryDefinition-id}'].patch update: x-apievangelist-phrasing: intent: Update a directory in a sync job's schema effect: write questions: - Can I rename or change the objects of a directory in a provisioning job's schema? - Is a sync job's directory definition editable after creation? instructions: - text: Rename directory {directory} in the schema of sync job {job} on service principal {sp} to {name}. slots: directory: path.directoryDefinition-id job: path.synchronizationJob-id sp: path.servicePrincipal-id name: requestBody.name - text: Update the objects of directory {directory} in provisioning job {job} for app {sp} to {objects}. slots: directory: path.directoryDefinition-id job: path.synchronizationJob-id sp: path.servicePrincipal-id objects: requestBody.objects method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/schema/directories/{directoryDefinition-id}/microsoft.graph.discover'].post update: x-apievangelist-phrasing: intent: Discover the latest schema for a job's directory effect: write questions: - How do I refresh a provisioning job's directory with the target app's latest schema? - Can I rediscover attributes for one directory in a sync job? instructions: - text: Discover the latest schema for directory {directory} of sync job {job} on service principal {sp}. slots: directory: path.directoryDefinition-id job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Refresh directory {directory} in provisioning job {job} for app {sp} from the target system. slots: directory: path.directoryDefinition-id job: path.synchronizationJob-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/schema/directories/$count'].get update: x-apievangelist-phrasing: intent: Count directories in a sync job's schema effect: read questions: - How many directory definitions does a provisioning job's schema contain? - Can I get just the number of directories in one sync job's schema? instructions: - text: Count the schema directories of sync job {job} on service principal {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Tell me how many directories in provisioning job {job} for app {sp} match {filter}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id filter: query.$filter method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/schema/microsoft.graph.filterOperators()'].get update: x-apievangelist-phrasing: intent: List scoping filter operators for a job schema effect: read questions: - Which operators can I use in a provisioning job's scoping filters? - What comparison operators does a sync job's schema support for scoping? instructions: - text: List the scoping filter operators supported by sync job {job}'s schema on service principal {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Show available filter operators for provisioning job {job} in app {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/schema/microsoft.graph.functions()'].get update: x-apievangelist-phrasing: intent: List attribute mapping functions for a job schema effect: read questions: - What expression functions can I use in a provisioning job's attribute mappings? - Which mapping functions does one sync job's schema support? instructions: - text: List the attribute mapping functions supported by sync job {job}'s schema on service principal {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Show the expression functions available to provisioning job {job} in app {sp}. slots: job: path.synchronizationJob-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/{synchronizationJob-id}/schema/microsoft.graph.parseExpression'].post update: x-apievangelist-phrasing: intent: Parse a mapping expression against a job schema effect: read questions: - Can I test an attribute mapping expression against a running provisioning job before saving it? - How do I parse an expression into a mapping source using a sync job's schema? instructions: - text: Parse expression {expression} using the schema of sync job {job} on service principal {sp}. slots: expression: requestBody.expression job: path.synchronizationJob-id sp: path.servicePrincipal-id - text: Evaluate {expression} against test object {testInput} in provisioning job {job} for app {sp}. slots: expression: requestBody.expression testInput: requestBody.testInputObject job: path.synchronizationJob-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/$count'].get update: x-apievangelist-phrasing: intent: Count an app's provisioning sync jobs effect: read questions: - How many provisioning jobs does an enterprise app have? - Can I get only the total number of sync jobs on a service principal? instructions: - text: Count the synchronization jobs on service principal {sp}. slots: sp: path.servicePrincipal-id - text: Tell me how many sync jobs in app {sp} match {filter}. slots: sp: path.servicePrincipal-id filter: query.$filter method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/jobs/microsoft.graph.validateCredentials'].post update: x-apievangelist-phrasing: intent: Test provisioning credentials before creating a job effect: read questions: - Can I verify an enterprise app's provisioning admin credentials before setting up any sync job? - Is there a way to test target-system credentials against a sync template with no job created yet? instructions: - text: Test credentials {credentials} for service principal {sp} before creating a provisioning job. slots: credentials: requestBody.credentials sp: path.servicePrincipal-id - text: Validate provisioning credentials for enterprise app {sp} using template {template}, no job yet. slots: sp: path.servicePrincipal-id template: requestBody.templateId method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/microsoft.graph.acquireAccessToken'].post update: x-apievangelist-phrasing: intent: Acquire an OAuth token for app provisioning effect: write questions: - How does the provisioning service get an OAuth access token to push users into an app? - Can I authorize provisioning into an application by acquiring a token from its sync resource? instructions: - text: Acquire a provisioning access token for service principal {sp}. slots: sp: path.servicePrincipal-id - text: Get an OAuth token for app {sp}'s synchronization using credentials {credentials}. slots: sp: path.servicePrincipal-id credentials: requestBody.credentials method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/secrets'].put update: x-apievangelist-phrasing: intent: Store provisioning connection secrets for an app effect: write questions: - Where do I save the admin credentials used to connect provisioning to a target system? - Can I store a secret token and tenant URL for an app's provisioning? instructions: - text: Save synchronization secrets {value} on service principal {sp}. slots: value: requestBody.value sp: path.servicePrincipal-id - text: Store the provisioning connection credentials {value} for app {sp}. slots: value: requestBody.value sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/secrets/$count'].get update: x-apievangelist-phrasing: intent: Count stored provisioning secrets for an app effect: read questions: - How many synchronization secrets are stored on an enterprise app? - Can I check whether any provisioning secrets have been saved yet? instructions: - text: Count the synchronization secrets on service principal {sp}. slots: sp: path.servicePrincipal-id - text: Tell me how many provisioning secrets app {sp} holds. slots: sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/templates'].get update: x-apievangelist-phrasing: intent: List an app's synchronization templates effect: read questions: - Which preconfigured provisioning templates are available for an application? - Can I see the sync templates associated with a service principal? instructions: - text: List the synchronization templates on service principal {sp}. slots: sp: path.servicePrincipal-id - text: Show app {sp}'s provisioning templates matching {filter}. slots: sp: path.servicePrincipal-id filter: query.$filter method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/templates'].post update: x-apievangelist-phrasing: intent: Add a synchronization template to an app effect: write questions: - Can I create my own provisioning template on a service principal? - How do I register a new sync template with a factory tag for an application? instructions: - text: Create a synchronization template on service principal {sp} with factory tag {factoryTag}. slots: sp: path.servicePrincipal-id factoryTag: requestBody.factoryTag - text: Add a provisioning template to app {sp} described as {description}. slots: sp: path.servicePrincipal-id description: requestBody.description method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/templates/{synchronizationTemplate-id}'].get update: x-apievangelist-phrasing: intent: Get one synchronization template effect: read questions: - What preconfigured settings does a particular provisioning template contain? - Can I fetch a single sync template by ID? instructions: - text: Get synchronization template {template} on service principal {sp}. slots: template: path.synchronizationTemplate-id sp: path.servicePrincipal-id - text: Show the settings of provisioning template {template} for app {sp}. slots: template: path.synchronizationTemplate-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/templates/{synchronizationTemplate-id}'].delete update: x-apievangelist-phrasing: intent: Delete a synchronization template effect: destructive questions: - How do I remove a provisioning template from an application? - Can I delete a sync template I no longer need? instructions: - text: Delete synchronization template {template} from service principal {sp}. slots: template: path.synchronizationTemplate-id sp: path.servicePrincipal-id - text: Remove provisioning template {template} from app {sp}. slots: template: path.synchronizationTemplate-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/templates/{synchronizationTemplate-id}'].patch update: x-apievangelist-phrasing: intent: Update a synchronization template effect: write questions: - Can I change the description or default flag of a provisioning template? - Is it possible to edit a sync template's metadata? instructions: - text: Update the description of synchronization template {template} on service principal {sp} to {description}. slots: template: path.synchronizationTemplate-id sp: path.servicePrincipal-id description: requestBody.description - text: Set the metadata of provisioning template {template} in app {sp} to {metadata}. slots: template: path.synchronizationTemplate-id sp: path.servicePrincipal-id metadata: requestBody.metadata method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/templates/{synchronizationTemplate-id}/schema'].get update: x-apievangelist-phrasing: intent: Get a template's default sync schema effect: read questions: - What default attribute mappings will jobs created from a template inherit? - Can I read the schema defined on a provisioning template? instructions: - text: Get the default schema of synchronization template {template} on service principal {sp}. slots: template: path.synchronizationTemplate-id sp: path.servicePrincipal-id - text: Show the mapping schema of provisioning template {template} in app {sp}. slots: template: path.synchronizationTemplate-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/templates/{synchronizationTemplate-id}/schema'].delete update: x-apievangelist-phrasing: intent: Delete a template's sync schema effect: destructive questions: - Can I remove the default schema from a provisioning template? - What deletes the schema attached to a sync template? instructions: - text: Delete the schema of synchronization template {template} on service principal {sp}. slots: template: path.synchronizationTemplate-id sp: path.servicePrincipal-id - text: Remove provisioning template {template}'s default schema in app {sp}. slots: template: path.synchronizationTemplate-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/templates/{synchronizationTemplate-id}/schema'].patch update: x-apievangelist-phrasing: intent: Update a template's default sync schema effect: write questions: - How do I change the default mappings that new jobs get from a provisioning template? - Can I edit synchronization rules on a template instead of a job? instructions: - text: Update the schema of synchronization template {template} on service principal {sp} with rules {rules}. slots: template: path.synchronizationTemplate-id sp: path.servicePrincipal-id rules: requestBody.synchronizationRules - text: Set provisioning template {template}'s default schema directories in app {sp} to {directories}. slots: template: path.synchronizationTemplate-id sp: path.servicePrincipal-id directories: requestBody.directories method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/templates/{synchronizationTemplate-id}/schema/directories'].get update: x-apievangelist-phrasing: intent: List directories in a template's schema effect: read questions: - Which directories are defined in a provisioning template's schema? - Can I list directory definitions on a sync template rather than a job? instructions: - text: List the directory definitions in the schema of template {template} on service principal {sp}. slots: template: path.synchronizationTemplate-id sp: path.servicePrincipal-id - text: Show provisioning template {template}'s schema directories in app {sp} matching {filter}. slots: template: path.synchronizationTemplate-id sp: path.servicePrincipal-id filter: query.$filter method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/templates/{synchronizationTemplate-id}/schema/directories'].post update: x-apievangelist-phrasing: intent: Add a directory to a template's schema effect: write questions: - How do I add a directory definition to a provisioning template's schema? - Can new jobs inherit an extra directory if I add it to the sync template? instructions: - text: Add directory {name} to the schema of template {template} on service principal {sp}. slots: name: requestBody.name template: path.synchronizationTemplate-id sp: path.servicePrincipal-id - text: Create directory definition {name} in provisioning template {template} for app {sp}. slots: name: requestBody.name template: path.synchronizationTemplate-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/templates/{synchronizationTemplate-id}/schema/directories/{directoryDefinition-id}'].get update: x-apievangelist-phrasing: intent: Get a directory in a template's schema effect: read questions: - What objects does one directory in a provisioning template define? - Can I fetch a single directory definition from a sync template? instructions: - text: Get directory {directory} from the schema of template {template} on service principal {sp}. slots: directory: path.directoryDefinition-id template: path.synchronizationTemplate-id sp: path.servicePrincipal-id - text: Show the objects of directory {directory} in provisioning template {template} for app {sp}. slots: directory: path.directoryDefinition-id template: path.synchronizationTemplate-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/templates/{synchronizationTemplate-id}/schema/directories/{directoryDefinition-id}'].delete update: x-apievangelist-phrasing: intent: Remove a directory from a template's schema effect: destructive questions: - How do I delete a directory definition from a provisioning template? - Can I drop one directory out of a sync template's schema? instructions: - text: Delete directory {directory} from the schema of template {template} on service principal {sp}. slots: directory: path.directoryDefinition-id template: path.synchronizationTemplate-id sp: path.servicePrincipal-id - text: Remove directory definition {directory} from provisioning template {template} in app {sp}. slots: directory: path.directoryDefinition-id template: path.synchronizationTemplate-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/templates/{synchronizationTemplate-id}/schema/directories/{directoryDefinition-id}'].patch update: x-apievangelist-phrasing: intent: Update a directory in a template's schema effect: write questions: - Can I rename a directory definition in a provisioning template's schema? - Is a sync template's directory definition editable? instructions: - text: Rename directory {directory} in the schema of template {template} on service principal {sp} to {name}. slots: directory: path.directoryDefinition-id template: path.synchronizationTemplate-id sp: path.servicePrincipal-id name: requestBody.name - text: Update the objects of directory {directory} in provisioning template {template} for app {sp} to {objects}. slots: directory: path.directoryDefinition-id template: path.synchronizationTemplate-id sp: path.servicePrincipal-id objects: requestBody.objects method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/templates/{synchronizationTemplate-id}/schema/directories/{directoryDefinition-id}/microsoft.graph.discover'].post update: x-apievangelist-phrasing: intent: Discover the latest schema for a template's directory effect: write questions: - How do I refresh a provisioning template's directory with the app's latest attributes? - Can schema discovery run on a sync template's directory instead of a job? instructions: - text: Discover the latest schema for directory {directory} of template {template} on service principal {sp}. slots: directory: path.directoryDefinition-id template: path.synchronizationTemplate-id sp: path.servicePrincipal-id - text: Refresh directory {directory} in provisioning template {template} for app {sp} from the target system. slots: directory: path.directoryDefinition-id template: path.synchronizationTemplate-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/templates/{synchronizationTemplate-id}/schema/directories/$count'].get update: x-apievangelist-phrasing: intent: Count directories in a template's schema effect: read questions: - How many directory definitions are in a provisioning template's schema? - Can I get just the number of directories on a sync template? instructions: - text: Count the schema directories of template {template} on service principal {sp}. slots: template: path.synchronizationTemplate-id sp: path.servicePrincipal-id - text: Tell me how many directories in provisioning template {template} for app {sp} match {filter}. slots: template: path.synchronizationTemplate-id sp: path.servicePrincipal-id filter: query.$filter method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/templates/{synchronizationTemplate-id}/schema/microsoft.graph.filterOperators()'].get update: x-apievangelist-phrasing: intent: List scoping filter operators for a template schema effect: read questions: - Which scoping filter operators does a provisioning template's schema support? - What operators are allowed in scoping filters defined on a sync template? instructions: - text: List the scoping filter operators supported by template {template}'s schema on service principal {sp}. slots: template: path.synchronizationTemplate-id sp: path.servicePrincipal-id - text: Show available filter operators for provisioning template {template} in app {sp}. slots: template: path.synchronizationTemplate-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/templates/{synchronizationTemplate-id}/schema/microsoft.graph.functions()'].get update: x-apievangelist-phrasing: intent: List attribute mapping functions for a template schema effect: read questions: - What mapping functions can a provisioning template's schema use? - Which expression functions are supported when editing a sync template's mappings? instructions: - text: List the attribute mapping functions supported by template {template}'s schema on service principal {sp}. slots: template: path.synchronizationTemplate-id sp: path.servicePrincipal-id - text: Show the expression functions available to provisioning template {template} in app {sp}. slots: template: path.synchronizationTemplate-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/templates/{synchronizationTemplate-id}/schema/microsoft.graph.parseExpression'].post update: x-apievangelist-phrasing: intent: Parse a mapping expression against a template schema effect: read questions: - Can I test a mapping expression against a provisioning template before any job uses it? - How do I parse an expression with a sync template's schema? instructions: - text: Parse expression {expression} using the schema of template {template} on service principal {sp}. slots: expression: requestBody.expression template: path.synchronizationTemplate-id sp: path.servicePrincipal-id - text: Evaluate {expression} against test object {testInput} in provisioning template {template} for app {sp}. slots: expression: requestBody.expression testInput: requestBody.testInputObject template: path.synchronizationTemplate-id sp: path.servicePrincipal-id method: generated generated: '2026-10-01' - target: $.paths['/servicePrincipals/{servicePrincipal-id}/synchronization/templates/$count'].get update: x-apievangelist-phrasing: intent: Count an app's synchronization templates effect: read questions: - How many provisioning templates does an application have? - Can I get only the number of sync templates on a service principal? instructions: - text: Count the synchronization templates on service principal {sp}. slots: sp: path.servicePrincipal-id - text: Tell me how many provisioning templates in app {sp} match {filter}. slots: sp: path.servicePrincipal-id filter: query.$filter method: generated generated: '2026-10-01'