openapi: 3.1.0 info: title: Microsoft Graph Admin Admin.admin Agreements API description: 'Microsoft Graph API for managing administrative resources in Microsoft Entra ID. This API enables administrators to manage Microsoft Edge browser settings, Internet Explorer mode configurations, site lists, shared browser sites, Microsoft 365 Apps installation options, people insights, service announcements, SharePoint settings, Copilot administration, directory administrative units, and admin consent policies.' version: 1.0.0 contact: name: Microsoft Graph API Support url: https://developer.microsoft.com/graph servers: - url: https://graph.microsoft.com/v1.0 description: Microsoft Graph API v1.0 endpoint tags: - name: Agreements description: Operations for managing agreement entities including creating, reading, updating, and deleting agreements paths: /agreements: description: Provides operations to manage the collection of agreement entities. get: tags: - Agreements summary: Microsoft Graph List all agreements description: Retrieve a list of all agreement entities in the organization. Supports OData query parameters for filtering, sorting, and pagination. operationId: listAgreements parameters: - $ref: '#/components/parameters/Top' - $ref: '#/components/parameters/Skip' - $ref: '#/components/parameters/Search' - $ref: '#/components/parameters/Filter' - $ref: '#/components/parameters/Count' - name: $orderby in: query description: Order items by property values style: form explode: false schema: uniqueItems: true type: array items: type: string - name: $select in: query description: Select properties to be returned style: form explode: false schema: uniqueItems: true type: array items: type: string - name: $expand in: query description: Expand related entities style: form explode: false schema: uniqueItems: true type: array items: type: string responses: 2XX: $ref: '#/components/responses/AgreementCollectionResponse' 4XX: $ref: '#/components/responses/ErrorResponse' 5XX: $ref: '#/components/responses/ErrorResponse' x-ms-pageable: nextLinkName: '@odata.nextLink' operationName: listMore x-ms-docs-operation-type: operation x-microcks-operation: delay: 100 dispatcher: FALLBACK dispatcherRules: default post: tags: - Agreements summary: Microsoft Graph Create a new agreement description: Create a new agreement entity in the organization. The agreement can include terms of use content and acceptance requirements. operationId: createAgreement requestBody: description: The agreement entity to create content: application/json: schema: $ref: '#/components/schemas/Agreement' examples: CreateAgreementRequest: $ref: '#/components/examples/CreateAgreementRequest' required: true responses: 2XX: description: Created entity content: application/json: schema: $ref: '#/components/schemas/Agreement' examples: CreateAgreementResponse: $ref: '#/components/examples/CreateAgreementResponse' 4XX: $ref: '#/components/responses/ErrorResponse' 5XX: $ref: '#/components/responses/ErrorResponse' x-ms-docs-operation-type: operation x-microcks-operation: delay: 100 dispatcher: FALLBACK dispatcherRules: default /agreements/{agreement-id}: description: Provides operations to manage a specific agreement entity. parameters: - $ref: '#/components/parameters/AgreementId' get: tags: - Agreements summary: Microsoft Graph Get an agreement by ID description: Retrieve a specific agreement entity by its unique identifier. operationId: getAgreement parameters: - name: $select in: query description: Select properties to be returned style: form explode: false schema: uniqueItems: true type: array items: type: string - name: $expand in: query description: Expand related entities style: form explode: false schema: uniqueItems: true type: array items: type: string responses: 2XX: description: Retrieved entity content: application/json: schema: $ref: '#/components/schemas/Agreement' examples: GetAgreementResponse: $ref: '#/components/examples/GetAgreementResponse' 4XX: $ref: '#/components/responses/ErrorResponse' 5XX: $ref: '#/components/responses/ErrorResponse' x-ms-docs-operation-type: operation x-microcks-operation: delay: 100 dispatcher: FALLBACK dispatcherRules: default patch: tags: - Agreements summary: Microsoft Graph Update an agreement description: Update the properties of a specific agreement entity. operationId: updateAgreement requestBody: description: New property values for the agreement content: application/json: schema: $ref: '#/components/schemas/Agreement' examples: UpdateAgreementRequest: $ref: '#/components/examples/UpdateAgreementRequest' required: true responses: 2XX: description: Success content: application/json: schema: $ref: '#/components/schemas/Agreement' examples: UpdateAgreementResponse: $ref: '#/components/examples/UpdateAgreementResponse' 4XX: $ref: '#/components/responses/ErrorResponse' 5XX: $ref: '#/components/responses/ErrorResponse' x-ms-docs-operation-type: operation x-microcks-operation: delay: 100 dispatcher: FALLBACK dispatcherRules: default delete: tags: - Agreements summary: Microsoft Graph Delete an agreement description: Delete a specific agreement entity from the organization. operationId: deleteAgreement parameters: - name: If-Match in: header description: ETag for optimistic concurrency control schema: type: string responses: '204': description: Success - No content returned 4XX: $ref: '#/components/responses/ErrorResponse' 5XX: $ref: '#/components/responses/ErrorResponse' x-ms-docs-operation-type: operation x-microcks-operation: delay: 100 dispatcher: FALLBACK dispatcherRules: default /agreements/$count: description: Get the count of agreements. get: tags: - Agreements summary: Microsoft Graph Count agreements description: Get the total count of agreement entities in the organization. operationId: countAgreements parameters: - $ref: '#/components/parameters/Search' - $ref: '#/components/parameters/Filter' responses: 2XX: $ref: '#/components/responses/ODataCountResponse' 4XX: $ref: '#/components/responses/ErrorResponse' 5XX: $ref: '#/components/responses/ErrorResponse' x-ms-docs-operation-type: operation x-microcks-operation: delay: 100 dispatcher: FALLBACK dispatcherRules: default components: schemas: TermsExpiration: title: TermsExpiration type: object properties: frequency: pattern: ^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+([.][0-9]+)?S)?)?$ type: string description: Represents the frequency at which the terms will expire, after its first expiration as set in startDateTime. The value is represented in ISO 8601 format for durations. format: duration nullable: true startDateTime: pattern: ^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$ type: string description: The DateTime when the agreement is set to expire for all users. Read-only. format: date-time nullable: true '@odata.type': type: string ErrorDetail: title: ErrorDetail required: - code - message type: object properties: code: type: string message: type: string target: type: string nullable: true AgreementAcceptance: allOf: - $ref: '#/components/schemas/Entity' - title: AgreementAcceptance required: - '@odata.type' type: object properties: agreementFileId: type: string description: The identifier of the agreement file accepted by the user. nullable: true agreementId: type: string description: The identifier of the agreement. nullable: true deviceDisplayName: type: string description: The display name of the device used for accepting the agreement. nullable: true deviceId: type: string description: The unique identifier of the device used for accepting the agreement. Supports $filter (eq) and eq for null values. nullable: true deviceOSType: type: string description: The operating system used to accept the agreement. nullable: true deviceOSVersion: type: string description: The operating system version of the device used to accept the agreement. nullable: true expirationDateTime: pattern: ^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$ type: string description: The expiration date time of the acceptance. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. format: date-time nullable: true recordedDateTime: pattern: ^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$ type: string description: The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. format: date-time nullable: true state: anyOf: - $ref: '#/components/schemas/AgreementAcceptanceState' - type: object nullable: true description: The state of the agreement acceptance. The possible values are accepted, declined. Supports $filter (eq). userDisplayName: type: string description: Display name of the user when the acceptance was recorded. nullable: true userEmail: type: string description: Email of the user when the acceptance was recorded. nullable: true userId: type: string description: The identifier of the user who accepted the agreement. Supports $filter (eq). nullable: true userPrincipalName: type: string description: UPN of the user when the acceptance was recorded. nullable: true '@odata.type': type: string x-ms-discriminator-value: '#microsoft.graph.agreementAcceptance' MainError: title: MainError required: - code - message type: object properties: code: type: string message: type: string x-ms-primary-error-message: true target: type: string nullable: true details: type: array items: $ref: '#/components/schemas/ErrorDetail' innerError: $ref: '#/components/schemas/InnerError' InnerError: title: InnerError type: object description: The structure of this object is service-specific Entity: title: Entity type: object properties: id: type: string description: The unique identifier for an entity. Read-only. '@odata.type': type: string Agreement: allOf: - $ref: '#/components/schemas/Entity' - title: Agreement required: - '@odata.type' type: object properties: displayName: type: string description: Display name of the agreement. Supports $filter (eq). nullable: true isPerDeviceAcceptanceRequired: type: boolean description: Indicates whether end users are required to accept this agreement on every device. Supports $filter (eq). nullable: true isViewingBeforeAcceptanceRequired: type: boolean description: Indicates whether the user has to expand the agreement before accepting. Supports $filter (eq). nullable: true termsExpiration: anyOf: - $ref: '#/components/schemas/TermsExpiration' - type: object nullable: true description: Expiration schedule and frequency of agreement for all users. Supports $filter (eq). userReacceptRequiredFrequency: pattern: ^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+([.][0-9]+)?S)?)?$ type: string description: The duration after which the user must reaccept the terms of use. The value is represented in ISO 8601 format for durations. Supports $filter (eq). format: duration nullable: true acceptances: type: array items: $ref: '#/components/schemas/AgreementAcceptance' description: Read-only. Information about acceptances of this agreement. x-ms-navigationProperty: true file: anyOf: - $ref: '#/components/schemas/AgreementFile' - type: object nullable: true description: Default PDF linked to this agreement. x-ms-navigationProperty: true files: type: array items: $ref: '#/components/schemas/AgreementFileLocalization' description: PDFs linked to this agreement. This property is in the process of being deprecated. Use the file property instead. Supports $expand. x-ms-navigationProperty: true '@odata.type': type: string x-ms-discriminator-value: '#microsoft.graph.agreement' AgreementAcceptanceState: title: AgreementAcceptanceState type: string enum: - accepted - declined description: The state of the agreement acceptance. AgreementCollectionResponse: title: AgreementCollectionResponse type: object properties: value: type: array items: $ref: '#/components/schemas/Agreement' '@odata.nextLink': type: string nullable: true '@odata.count': type: integer format: int32 AgreementFileVersion: allOf: - $ref: '#/components/schemas/AgreementFileProperties' - title: AgreementFileVersion required: - '@odata.type' type: object properties: '@odata.type': type: string x-ms-discriminator-value: '#microsoft.graph.agreementFileVersion' AgreementFileData: title: AgreementFileData type: object properties: data: type: string description: Data that represents the terms of use PDF document. Read-only. format: base64url nullable: true '@odata.type': type: string AgreementFile: allOf: - $ref: '#/components/schemas/AgreementFileProperties' - title: AgreementFile required: - '@odata.type' type: object properties: localizations: type: array items: $ref: '#/components/schemas/AgreementFileLocalization' description: The localized version of the terms of use agreement files attached to the agreement. x-ms-navigationProperty: true '@odata.type': type: string x-ms-discriminator-value: '#microsoft.graph.agreementFile' AgreementFileLocalization: allOf: - $ref: '#/components/schemas/AgreementFileProperties' - title: AgreementFileLocalization required: - '@odata.type' type: object properties: versions: type: array items: $ref: '#/components/schemas/AgreementFileVersion' description: Read-only. Customized versions of the terms of use agreement in the Microsoft Entra tenant. x-ms-navigationProperty: true '@odata.type': type: string x-ms-discriminator-value: '#microsoft.graph.agreementFileLocalization' ODataCountResponse: type: integer format: int32 ODataError: title: ODataError required: - error type: object properties: error: $ref: '#/components/schemas/MainError' AgreementFileProperties: allOf: - $ref: '#/components/schemas/Entity' - title: AgreementFileProperties type: object properties: createdDateTime: pattern: ^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$ type: string description: The date time representing when the file was created. Read-only. format: date-time nullable: true displayName: type: string description: Localized display name of the policy file of an agreement. nullable: true fileData: anyOf: - $ref: '#/components/schemas/AgreementFileData' - type: object nullable: true description: Data that represents the terms of use PDF document. fileName: type: string description: Name of the agreement file. nullable: true isDefault: type: boolean description: If none of the languages matches the client preference, indicates whether this is the default agreement file. nullable: true isMajorVersion: type: boolean description: Indicates whether the agreement file is a major version update. nullable: true language: type: string description: The language of the agreement file in the format languagecode2-country/regioncode2. nullable: true '@odata.type': type: string responses: ErrorResponse: description: Error response content: application/json: schema: $ref: '#/components/schemas/ODataError' ODataCountResponse: description: The count of the resource content: text/plain: schema: $ref: '#/components/schemas/ODataCountResponse' AgreementCollectionResponse: description: Retrieved collection of agreements content: application/json: schema: $ref: '#/components/schemas/AgreementCollectionResponse' examples: AgreementCollectionExample: $ref: '#/components/examples/AgreementCollectionExample' examples: AgreementCollectionExample: summary: Example collection of agreements value: value: - id: 00000000-0000-0000-0000-000000000001 displayName: Terms of Use Agreement isPerDeviceAcceptanceRequired: false isViewingBeforeAcceptanceRequired: true userReacceptRequiredFrequency: P90D '@odata.type': '#microsoft.graph.agreement' '@odata.count': 1 UpdateAgreementResponse: summary: Example response for updated agreement value: id: 00000000-0000-0000-0000-000000000001 displayName: Updated Terms of Use Agreement isPerDeviceAcceptanceRequired: true isViewingBeforeAcceptanceRequired: true userReacceptRequiredFrequency: P90D '@odata.type': '#microsoft.graph.agreement' UpdateAgreementRequest: summary: Example request to update an agreement value: displayName: Updated Terms of Use Agreement isPerDeviceAcceptanceRequired: true '@odata.type': '#microsoft.graph.agreement' CreateAgreementRequest: summary: Example request to create an agreement value: displayName: Terms of Use Agreement isPerDeviceAcceptanceRequired: false isViewingBeforeAcceptanceRequired: true userReacceptRequiredFrequency: P90D '@odata.type': '#microsoft.graph.agreement' GetAgreementResponse: summary: Example response for getting an agreement value: id: 00000000-0000-0000-0000-000000000001 displayName: Terms of Use Agreement isPerDeviceAcceptanceRequired: false isViewingBeforeAcceptanceRequired: true userReacceptRequiredFrequency: P90D '@odata.type': '#microsoft.graph.agreement' CreateAgreementResponse: summary: Example response for created agreement value: id: 00000000-0000-0000-0000-000000000001 displayName: Terms of Use Agreement isPerDeviceAcceptanceRequired: false isViewingBeforeAcceptanceRequired: true userReacceptRequiredFrequency: P90D '@odata.type': '#microsoft.graph.agreement' parameters: Filter: name: $filter in: query description: Filter items by property values style: form explode: false schema: type: string Top: name: $top in: query description: Show only the first n items style: form explode: false schema: minimum: 0 type: integer example: 50 Skip: name: $skip in: query description: Skip the first n items style: form explode: false schema: minimum: 0 type: integer AgreementId: name: agreement-id in: path description: The unique identifier of the agreement required: true schema: type: string x-ms-docs-key-type: agreement Count: name: $count in: query description: Include count of items style: form explode: false schema: type: boolean Search: name: $search in: query description: Search items by search phrases style: form explode: false schema: type: string