{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/azure-ad/json-schema/azure-ad-microsoft-graph-policy-template-schema.json",
  "title": "microsoft.graph.policyTemplate",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/azure-ad-policies-crosstenantaccesspolicy-api-openapi.yml#/components/schemas/microsoft.graph.policyTemplate",
  "allOf": [
    {
      "$ref": "#/$defs/microsoft.graph.entity"
    },
    {
      "title": "policyTemplate",
      "type": "object",
      "properties": {
        "multiTenantOrganizationIdentitySynchronization": {
          "$ref": "#/$defs/microsoft.graph.multiTenantOrganizationIdentitySyncPolicyTemplate"
        },
        "multiTenantOrganizationPartnerConfiguration": {
          "$ref": "#/$defs/microsoft.graph.multiTenantOrganizationPartnerConfigurationTemplate"
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    }
  ],
  "$defs": {
    "microsoft.graph.crossTenantAccessPolicyB2BSetting": {
      "title": "crossTenantAccessPolicyB2BSetting",
      "type": "object",
      "properties": {
        "applications": {
          "$ref": "#/$defs/microsoft.graph.crossTenantAccessPolicyTargetConfiguration"
        },
        "usersAndGroups": {
          "$ref": "#/$defs/microsoft.graph.crossTenantAccessPolicyTargetConfiguration"
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.crossTenantAccessPolicyInboundTrust": {
      "title": "crossTenantAccessPolicyInboundTrust",
      "type": "object",
      "properties": {
        "isCompliantDeviceAccepted": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Specifies whether compliant devices from external Microsoft Entra organizations are trusted."
        },
        "isHybridAzureADJoinedDeviceAccepted": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Specifies whether Microsoft Entra hybrid joined devices from external Microsoft Entra organizations are trusted."
        },
        "isMfaAccepted": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Specifies whether MFA from external Microsoft Entra organizations is trusted."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.crossTenantAccessPolicyTarget": {
      "title": "crossTenantAccessPolicyTarget",
      "type": "object",
      "properties": {
        "target": {
          "type": [
            "string",
            "null"
          ],
          "description": "Defines the target for cross-tenant access policy settings and can have one of the following values:  The unique identifier of the user, group, or application  AllUsers  AllApplications - Refers to any Microsoft cloud application.  Office365 - Includes the applications mentioned as part of the Office 365 suite."
        },
        "targetType": {
          "$ref": "#/$defs/microsoft.graph.crossTenantAccessPolicyTargetType"
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.crossTenantAccessPolicyTargetConfiguration": {
      "title": "crossTenantAccessPolicyTargetConfiguration",
      "type": "object",
      "properties": {
        "accessType": {
          "$ref": "#/$defs/microsoft.graph.crossTenantAccessPolicyTargetConfigurationAccessType"
        },
        "targets": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.crossTenantAccessPolicyTarget"
          },
          "description": "Specifies whether to target users, groups, or applications with this rule."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.crossTenantAccessPolicyTargetConfigurationAccessType": {
      "title": "crossTenantAccessPolicyTargetConfigurationAccessType",
      "enum": [
        "allowed",
        "blocked",
        "unknownFutureValue"
      ],
      "type": "string"
    },
    "microsoft.graph.crossTenantAccessPolicyTargetType": {
      "title": "crossTenantAccessPolicyTargetType",
      "enum": [
        "user",
        "group",
        "application",
        "unknownFutureValue"
      ],
      "type": "string"
    },
    "microsoft.graph.crossTenantUserSyncInbound": {
      "title": "crossTenantUserSyncInbound",
      "type": "object",
      "properties": {
        "isSyncAllowed": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Defines whether user objects should be synchronized from the partner tenant. false causes any current user synchronization from the source tenant to the target tenant to stop. This property has no impact on existing users who have already been synchronized."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.entity": {
      "title": "entity",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier for an entity. Read-only."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.inboundOutboundPolicyConfiguration": {
      "title": "inboundOutboundPolicyConfiguration",
      "type": "object",
      "properties": {
        "inboundAllowed": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Defines whether external users coming inbound are allowed."
        },
        "outboundAllowed": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Defines whether internal users are allowed to go outbound."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.multiTenantOrganizationIdentitySyncPolicyTemplate": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "multiTenantOrganizationIdentitySyncPolicyTemplate",
          "type": "object",
          "properties": {
            "templateApplicationLevel": {
              "$ref": "#/$defs/microsoft.graph.templateApplicationLevel"
            },
            "userSyncInbound": {
              "$ref": "#/$defs/microsoft.graph.crossTenantUserSyncInbound"
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.multiTenantOrganizationPartnerConfigurationTemplate": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "multiTenantOrganizationPartnerConfigurationTemplate",
          "type": "object",
          "properties": {
            "automaticUserConsentSettings": {
              "$ref": "#/$defs/microsoft.graph.inboundOutboundPolicyConfiguration"
            },
            "b2bCollaborationInbound": {
              "$ref": "#/$defs/microsoft.graph.crossTenantAccessPolicyB2BSetting"
            },
            "b2bCollaborationOutbound": {
              "$ref": "#/$defs/microsoft.graph.crossTenantAccessPolicyB2BSetting"
            },
            "b2bDirectConnectInbound": {
              "$ref": "#/$defs/microsoft.graph.crossTenantAccessPolicyB2BSetting"
            },
            "b2bDirectConnectOutbound": {
              "$ref": "#/$defs/microsoft.graph.crossTenantAccessPolicyB2BSetting"
            },
            "inboundTrust": {
              "$ref": "#/$defs/microsoft.graph.crossTenantAccessPolicyInboundTrust"
            },
            "templateApplicationLevel": {
              "$ref": "#/$defs/microsoft.graph.templateApplicationLevel"
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.templateApplicationLevel": {
      "title": "templateApplicationLevel",
      "enum": [
        "none",
        "newPartners",
        "existingPartners",
        "unknownFutureValue"
      ],
      "type": "string",
      "x-ms-enum-flags": {
        "isFlags": true
      }
    }
  }
}