Mews Rules API

The Rules API from Mews — 1 operation(s) for rules.

OpenAPI Specification

mews-rules-api-openapi.yml Raw ↑
openapi: 3.0.4
info:
  title: Connector Account notes Rules API
  description: General-purpose API that enables partners of Mews to access data and services in Mews Operations
  termsOfService: https://www.mews.com/en/terms-conditions/partners
  contact:
    name: Partner success
    email: partnersuccess@mews.com
  version: v1
servers:
- url: https://api.mews.com
tags:
- name: Rules
paths:
  /api/connector/v1/rules/getAll:
    post:
      tags:
      - Rules
      summary: Get all rules
      description: 'Returns all rules applied with the reservations.

        Note this operation uses [Pagination](https://mews-systems.gitbook.io/connector-api/guidelines/pagination/) and supports [Portfolio Access Tokens](https://mews-systems.gitbook.io/connector-api/concepts/multi-property).'
      operationId: rules_getAll
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RuleFilterParameters'
            example:
              ClientToken: E0D439EE522F44368DC78E1BFB03710C-D24FB11DBE31D4621C4817E028D9E1D
              AccessToken: C66EF7B239D24632943D115EDE9CB810-EA00F8FD8294692C940F6B5A8F9453D
              Client: Sample Client 1.0.0
              EnterpriseIds:
              - 3fa85f64-5717-4562-b3fc-2c963f66afa6
              - 4d0201db-36f5-428b-8d11-4f0a65e960cc
              ServiceIds:
              - bd26d8db-86da-4f96-9efc-e5a4654a4a94
              UpdatedUtc:
                StartUtc: '2023-10-01T00:00:00Z'
                EndUtc: '2023-10-31T00:00:00Z'
              Extent:
                RuleActions: true
                Rates: true
                RateGroups: true
                ResourceCategories: true
                BusinessSegments: true
              Limitation:
                Count: 10
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RuleResult'
              example:
                Rules:
                - Id: 13638b12-53f1-4b35-baab-ac1e006ed8cb
                  ServiceId: bd26d8db-86da-4f96-9efc-e5a4654a4a94
                  Conditions:
                    RateId:
                      Value: 8a13f4e8-0274-4bcc-b2d4-ac1c00d1cd3f
                      ConditionType: Equals
                    RateGroupId: null
                    BusinessSegmentId: null
                    ResourceCategoryId: null
                    ResourceCategoryType: null
                    Origin:
                      Value: Connector
                      ConditionType: NotEquals
                    TravelAgencyId: null
                    MinimumTimeUnitCount: null
                    MaximumTimeUnitCount: null
                  CreatedUtc: '2023-10-01T11:48:57Z'
                  UpdatedUtc: '2023-10-28T11:48:57Z'
                RuleActions:
                - Id: 307e75a6-2cc8-4226-a600-ac1e006fbdb9
                  RuleId: 13638b12-53f1-4b35-baab-ac1e006ed8cb
                  Data:
                    Discriminator: Product
                    Value:
                      ProductId: 122fd92d-c561-4995-8ebc-ac1c00d1eaa8
                      ActionType: Add
                Rates:
                - Id: 8a13f4e8-0274-4bcc-b2d4-ac1c00d1cd3f
                  GroupId: e4a9d8d1-5793-4d35-954e-ac1c00d1eaa8
                  ServiceId: ea80bbca-372f-4550-8e48-ac1c00d1cd20
                  BaseRateId: null
                  IsActive: true
                  IsEnabled: true
                  IsPublic: true
                  Name: Fully Flexible
                  ShortName: FF
                  ExternalNames: {}
                RateGroups: []
                ResourceCategories: []
                BusinessSegments: []
                Cursor: 13638b12-53f1-4b35-baab-ac1e006ed8cb
        '400':
          description: Error caused by the client app, e.g. in case of malformed request or invalid identifier of a resource. In most cases, such an error signifies a bug in the client app (consumer of the API).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorApiExceptionResult'
        '401':
          description: Error caused by usage of invalid ClientToken, AccessToken, or you may not have the necessary permission to use the endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorApiExceptionResult'
        '403':
          description: Server error that should be reported to the end user of the client app. Happens for example when the server-side validation fails or when a business-logic check is violated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorApiExceptionResult'
        '408':
          description: Error caused by heavy request that takes too long to process (typically tens of seconds). To get around this, request data in smaller batches. For more information, see [Request timeouts](https://mews-systems.gitbook.io/connector-api/guidelines/requests#request-timeouts)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorApiExceptionResult'
        '204':
          description: Server has successfully fulfilled the request and there is no additional information to send back.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorApiExceptionResult'
        '429':
          description: Error caused by too many requests sent in a given amount of time. Response contains `Retry-After` header indicating how long the user agent should wait before making a follow-up request. For more information, see [Request limits](https://mews-systems.gitbook.io/connector-api/guidelines/requests#request-limits).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorApiExceptionResult'
        '500':
          description: Unexpected error on the Mews side. This may be due to a software fault. If such a situation occurs, the error will be logged and the development team notified, however you can raise an issue through GitHub on our [documentation repository](https://github.com/MewsSystems/gitbook-connector-api).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorApiExceptionResult'
components:
  schemas:
    Limitation:
      title: Limitation
      required:
      - Count
      type: object
      properties:
        Count:
          type: integer
          format: int32
        Cursor:
          type: string
          format: uuid
          nullable: true
      additionalProperties: false
      description: Limitation on the quantity of data returned.
      x-schema-id: Limitation
    TimeFilterInterval:
      title: Time interval
      type: object
      properties:
        StartUtc:
          type: string
          format: date-time
          nullable: true
        EndUtc:
          type: string
          format: date-time
          nullable: true
      additionalProperties: false
      description: "When a time interval is used for **filtering** (for example in parameters such as `CreatedUtc.StartUtc` / `CreatedUtc.EndUtc`), the following rules apply:\r\n\r\n- **Start equals End (equality mode)**  \r\n  If `StartUtc` and `EndUtc` are exactly the same timestamp, the filter is treated as an equality check for that precise moment in time:\r\n  \r\n  ```\r\n  CreatedUtc == StartUtc\r\n  ```\r\n  \r\n  This does not represent an interval; only records with `CreatedUtc` equal to that exact instant are returned.\r\n\r\n- **Start differs from End (interval mode)**  \r\n  If `StartUtc` and `EndUtc` are different, the filter is evaluated as a half-open interval:\r\n  \r\n  ```\r\n  StartUtc <= CreatedUtc < EndUtc\r\n  ```\r\n  \r\n  In other words, the start is inclusive and the end is exclusive.\r\n\r\nMake sure your integration takes inclusive Start / exclusive End behavior of time intervals into account so that no records at the boundaries are omitted."
      x-schema-id: TimeFilterInterval
    ResourceCategory:
      title: Resource category
      required:
      - Capacity
      - Classification
      - Descriptions
      - EnterpriseId
      - ExtraCapacity
      - Id
      - IsActive
      - Names
      - Ordering
      - ServiceId
      - ShortNames
      - Type
      type: object
      properties:
        Id:
          type: string
          description: Unique identifier of the category.
          format: uuid
        EnterpriseId:
          type: string
          description: Unique identifier of the `Enterprise`.
          format: uuid
        ServiceId:
          type: string
          description: Unique identifier of the `Service` of the resource category.
          format: uuid
        IsActive:
          type: boolean
          description: Whether the category is still active.
        Type:
          $ref: '#/components/schemas/ResourceCategoryType'
        Classification:
          $ref: '#/components/schemas/ResourceClassification'
        Names:
          title: Localized text
          type: object
          additionalProperties:
            type: string
          description: All translations of the name.
          x-schema-id: LocalizedStrings
        ShortNames:
          title: Localized text
          type: object
          additionalProperties:
            type: string
          description: All translations of the short name.
          x-schema-id: LocalizedStrings
        Descriptions:
          title: Localized text
          type: object
          additionalProperties:
            type: string
          description: All translations of the description.
          x-schema-id: LocalizedStrings
        Ordering:
          type: integer
          description: Ordering of the category, lower number corresponds to lower category (note that neither uniqueness nor continuous sequence is guaranteed).
          format: int32
        Capacity:
          type: integer
          description: Capacity that can be served (e.g. bed count).
          format: int32
        ExtraCapacity:
          type: integer
          description: Extra capacity that can be served (e.g. extra bed count).
          format: int32
        ExternalIdentifier:
          maxLength: 255
          type: string
          description: Identifier of the resource category from external system.
          nullable: true
        AccountingCategoryId:
          type: string
          description: Unique identifier of the accounting category.
          format: uuid
          nullable: true
      additionalProperties: false
      x-schema-id: ResourceCategory
    RuleFilterParameters:
      title: RuleFilterParameters
      required:
      - AccessToken
      - Client
      - ClientToken
      - Extent
      - Limitation
      - ServiceIds
      type: object
      properties:
        ClientToken:
          minLength: 1
          type: string
          description: Token identifying the client application.
        AccessToken:
          minLength: 1
          type: string
          description: Access token of the client application.
        Client:
          minLength: 1
          type: string
          description: Name and version of the client application.
        Limitation:
          allOf:
          - $ref: '#/components/schemas/Limitation'
          description: Limitation on the quantity of data returned and optional Cursor for the starting point of data.
        EnterpriseIds:
          maxItems: 1000
          minItems: 1
          type: array
          items:
            type: string
            format: uuid
          description: Unique identifiers of the Enterprises. If not specified, the operation returns data for all enterprises within scope of the Access Token.
          nullable: true
        Ids:
          maxItems: 1000
          minItems: 1
          type: array
          items:
            type: string
            format: uuid
          description: Unique identifiers of the `Rule`.
          nullable: true
        ServiceIds:
          maxItems: 1000
          minItems: 1
          type: array
          items:
            type: string
            format: uuid
          description: Unique identifiers of the `Service`.
        UpdatedUtc:
          title: Time interval
          allOf:
          - $ref: '#/components/schemas/TimeFilterInterval'
          description: Interval in which `Rule` was updated.
          nullable: true
          x-max-interval-in-months: 3
        Extent:
          title: Rule extent
          allOf:
          - $ref: '#/components/schemas/RuleExtent'
          description: Extent of data to be returned.
      additionalProperties: false
      x-schema-id: RuleFilterParameters
    RuleCondition:
      title: Rule condition
      required:
      - ConditionType
      - Value
      type: object
      properties:
        Value:
          minLength: 1
          type: string
          description: Value of the condition depending on the property. E.g. `ReservationOrigin` in case of origin condition or unique identifier of a rate in case of rate condition.
        ConditionType:
          $ref: '#/components/schemas/RuleConditionType'
      additionalProperties: false
      x-schema-id: RuleCondition
    ResourceClassification:
      title: Resource classification
      enum:
      - StandardSingle
      - StandardDouble
      - SuperiorTwin
      - SuperiorDouble
      - JuniorSuite
      - SharedOrDorm
      - Other
      - SuperiorSingle
      - Triple
      - Family
      - StandardTwin
      - Studio
      - SuperiorTripleRoom
      - OneBedroomApartment
      - ThreeBedroomsApartment
      - TwoBedroomsApartment
      type: string
      description: Classification of the resource category.
    RuleAction:
      title: Rule action
      required:
      - Id
      - RuleId
      type: object
      properties:
        Id:
          type: string
          description: Unique identifier of the rule action.
          format: uuid
        RuleId:
          type: string
          description: Unique identifier of the rule.
          format: uuid
        Data:
          title: Rule action data
          type: object
          properties:
            Discriminator:
              $ref: '#/components/schemas/RuleActionDiscriminator'
            Value:
              oneOf:
              - $ref: '#/components/schemas/RuleActionProductData'
          description: Additional information about action.
          nullable: true
          x-coproduct: true
          x-schema-id: RuleActionDataCoproductOfRuleActionDiscriminator
      additionalProperties: false
      x-schema-id: RuleAction
    RuleResult:
      title: RuleResult
      required:
      - Rules
      type: object
      properties:
        Rules:
          type: array
          items:
            $ref: '#/components/schemas/Rule'
          description: Rules used with reservation creations and modifications.
        RuleActions:
          type: array
          items:
            $ref: '#/components/schemas/RuleAction'
          description: Rule actions applied in rules.
          nullable: true
        Rates:
          type: array
          items:
            $ref: '#/components/schemas/RateForExtent'
          description: Rates used in conditions.
          nullable: true
        RateGroups:
          type: array
          items:
            $ref: '#/components/schemas/RateGroupOld'
          description: Rate groups used in conditions.
          nullable: true
        ResourceCategories:
          type: array
          items:
            $ref: '#/components/schemas/ResourceCategory'
          description: Resource categories used in conditions.
          nullable: true
        BusinessSegments:
          type: array
          items:
            $ref: '#/components/schemas/BusinessSegment'
          description: Business segments used in conditions.
          nullable: true
        Cursor:
          type: string
          description: Unique identifier of the item one newer in time order than the items to be returned. If Cursor is not specified, i.e. null, then the latest or most recent items will be returned.
          format: uuid
          nullable: true
      additionalProperties: false
      x-schema-id: RuleResult
    RuleExtent:
      title: Rule extent
      type: object
      properties:
        RuleActions:
          type: boolean
          description: Whether the response should contain rule actions.
          nullable: true
        Rates:
          type: boolean
          description: Whether the response should contain rates.
          nullable: true
        RateGroups:
          type: boolean
          description: Whether the response should contain rate groups.
          nullable: true
        ResourceCategories:
          type: boolean
          description: Whether the response should contain rate resource categories.
          nullable: true
        BusinessSegments:
          type: boolean
          description: Whether the response should contain business segments.
          nullable: true
      additionalProperties: false
      description: ''
      x-schema-id: RuleExtent
    RuleConditionType:
      title: Condition type
      enum:
      - Equals
      - NotEquals
      type: string
      description: Type of condition.
    RateGroupOld:
      title: Rate group (ver 2017-04-12)
      type: object
      properties:
        Id:
          type: string
          description: Unique identifier of the rate group.
          format: uuid
        ServiceId:
          type: string
          description: Unique identifier of the Service that the rate group belongs to.
          format: uuid
        IsActive:
          type: boolean
          description: Whether the rate group is still active.
        Name:
          type: string
          description: Name of the rate group.
          nullable: true
        ExternalIdentifier:
          maxLength: 255
          type: string
          description: External identifier of the rate group.
          nullable: true
      additionalProperties: false
      x-schema-id: RateGroupOld
    Rule:
      title: Rule
      required:
      - Conditions
      - CreatedUtc
      - Id
      - ServiceId
      - UpdatedUtc
      type: object
      properties:
        Id:
          type: string
          description: Unique identifier of the rule.
          format: uuid
        ServiceId:
          type: string
          description: Unique identifier of the `Service` the rule is assigned to.
          format: uuid
        Conditions:
          title: Rule conditions
          allOf:
          - $ref: '#/components/schemas/RuleConditions'
          description: Conditions of the rule.
        CreatedUtc:
          minLength: 1
          type: string
          description: Creation date and time of the rule in UTC timezone in ISO 8601 format.
          format: date-time
        UpdatedUtc:
          minLength: 1
          type: string
          description: Last update date and time of the rule in UTC timezone in ISO 8601 format.
          format: date-time
      additionalProperties: false
      x-schema-id: Rule
    BusinessSegment:
      title: Business segment
      required:
      - CreatedUtc
      - Id
      - IsActive
      - Name
      - ServiceId
      - UpdatedUtc
      type: object
      properties:
        Id:
          type: string
          description: Unique identifier of the business segment.
          format: uuid
        ServiceId:
          type: string
          description: Unique identifier of the `Service`.
          format: uuid
        IsActive:
          type: boolean
          description: Whether the business segment is still active.
        Name:
          minLength: 1
          type: string
          description: Name of the business segment.
        CreatedUtc:
          minLength: 1
          type: string
          description: Creation date and time of the business segment in UTC timezone in ISO 8601 format.
          format: date-time
        UpdatedUtc:
          minLength: 1
          type: string
          description: Last update date and time of the business segment in UTC timezone in ISO 8601 format.
          format: date-time
      additionalProperties: false
      x-schema-id: BusinessSegment
    RuleActionType:
      title: Product action type
      enum:
      - Add
      - Delete
      type: string
      description: Action of rule.
      x-enumDescriptions:
      - Adds specified item.
      - Deletes specified item.
    RateForExtent:
      title: Rate for extent
      required:
      - GroupId
      - Id
      - IsActive
      - IsBaseRate
      - IsEnabled
      - IsPublic
      - Names
      - ServiceId
      - Type
      - UpdatedUtc
      type: object
      properties:
        Id:
          type: string
          description: Unique identifier of the rate.
          format: uuid
        GroupId:
          type: string
          description: Unique identifier of `Rate Group` where the rate belongs.
          format: uuid
        ServiceId:
          type: string
          description: Unique identifier of the `Service`.
          format: uuid
        BaseRateId:
          type: string
          description: Unique identifier of the base `Rate`.
          format: uuid
          nullable: true
        IsBaseRate:
          type: boolean
          description: Whether the rate is a base rate.
        BusinessSegmentId:
          type: string
          description: Unique identifier of the `Business Segment`.
          format: uuid
          nullable: true
        IsActive:
          type: boolean
          description: Whether the rate is still active.
        IsEnabled:
          type: boolean
          description: Whether the rate is currently available to customers.
        IsPublic:
          type: boolean
          description: Whether the rate is publicly available.
        Type:
          title: Rate type
          allOf:
          - $ref: '#/components/schemas/RateTypeEnum'
          description: 'Type of the rate.


            Public


            Private


            AvailabilityBlock'
          x-enumNames:
          - Public
          - Private
          - AvailabilityBlock
          x-enumDescriptions:
          - ''
          - ''
          - ''
        Name:
          type: string
          description: Name of the rate (in the default language).
          nullable: true
          deprecated: true
          x-deprecatedMessage: Use `Names` instead
        Names:
          title: Localized text
          type: object
          additionalProperties:
            type: string
          description: All translations of the name.
          x-schema-id: LocalizedStrings
        ShortName:
          type: string
          description: Short name of the rate (in the default language).
          nullable: true
        UpdatedUtc:
          minLength: 1
          type: string
          description: Interval in which the rates were updated.
          format: date-time
        ExternalNames:
          title: Localized text
          type: object
          additionalProperties:
            type: string
          description: All translations of the external name of the rate.
          nullable: true
          x-schema-id: LocalizedStrings
        Description:
          title: Localized text
          type: object
          additionalProperties:
            type: string
          description: All translations of the description of the rate.
          nullable: true
          x-schema-id: LocalizedStrings
        ExternalIdentifier:
          maxLength: 255
          type: string
          description: Identifier of the rate from external system.
          nullable: true
      additionalProperties: false
      description: '`Rate` entity, without some of the details, e.g. pricing.'
      x-schema-id: RateForExtent
    RuleConditions:
      title: Rule conditions
      type: object
      properties:
        RateId:
          title: Rule condition
          allOf:
          - $ref: '#/components/schemas/RuleCondition'
          description: Condition based on `Rate`.
          nullable: true
        RateGroupId:
          title: Rule condition
          allOf:
          - $ref: '#/components/schemas/RuleCondition'
          description: Condition based on `RateGroup`.
          nullable: true
        BusinessSegmentId:
          title: Rule condition
          allOf:
          - $ref: '#/components/schemas/RuleCondition'
          description: Condition based on `BusinessSegment`.
          nullable: true
        ResourceCategoryId:
          title: Rule condition
          allOf:
          - $ref: '#/components/schemas/RuleCondition'
          description: Condition based on `ResourceCategory`.
          nullable: true
        ResourceCategoryType:
          title: Rule condition
          allOf:
          - $ref: '#/components/schemas/RuleCondition'
          description: Condition based on `ResourceCategoryType`.
          nullable: true
        Origin:
          title: Rule condition
          allOf:
          - $ref: '#/components/schemas/RuleCondition'
          description: Condition based on `ReservationOrigin`.
          nullable: true
        TravelAgencyId:
          title: Rule condition
          allOf:
          - $ref: '#/components/schemas/RuleCondition'
          description: Condition based on `Company`.
          nullable: true
        MinimumTimeUnitCount:
          type: integer
          description: Condition based on minimum amount of time units.
          format: int32
          nullable: true
        MaximumTimeUnitCount:
          type: integer
          description: Condition based on maximum amount of time units.
          format: int32
          nullable: true
      additionalProperties: false
      description: ''
      x-schema-id: RuleConditions
    ConnectorApiExceptionResult:
      title: ConnectorApiExceptionResult
      type: object
      properties:
        Message:
          type: string
          nullable: true
        RequestId:
          type: string
          nullable: true
        Details:
          nullable: true
      additionalProperties: false
      x-schema-id: ConnectorApiExceptionResult
    RuleActionProductData:
      title: Rule action product data
      required:
      - ActionType
      - ProductId
      type: object
      properties:
        ActionType:
          $ref: '#/components/schemas/RuleActionType'
        ProductId:
          type: string
          description: Unique identifier of product.
          format: uuid
      additionalProperties: false
      x-schema-id: RuleActionProductData
    RuleActionDiscriminator:
      title: Rule action discriminator
      enum:
      - Product
      type: string
      x-enumDescriptions:
      - Data specific to a product.
    ResourceCategoryType:
      title: Resource category type
      enum:
      - Room
      - Bed
      - Dorm
      - Apartment
      - Suite
      - Villa
      - Site
      - Office
      - MeetingRoom
      - ParkingSpot
      - Desk
      - TeamArea
      - Membership
      - Tent
      - CaravanOrRV
      - UnequippedCampsite
      - Bike
      - ExtraBed
      - Cot
      - Crib
      - ConferenceRoom
      - Rooftop
      - Garden
      - Restaurant
      - Amphitheater
      - PrivateSpaces
      type: string
      description: Type of the category.
    RateTypeEnum:
      title: Rate type
      enum:
      - Public
      - Private
      - AvailabilityBlock
      type: string
      description: '


        Public


        Private


        AvailabilityBlock'
      x-enumNames:
      - Public
      - Private
      - AvailabilityBlock
      x-enumDescriptions:
      - ''
      - ''
      - ''