Mews Rules API
The Rules API from Mews — 1 operation(s) for rules.
The Rules API from Mews — 1 operation(s) for rules.
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:
- ''
- ''
- ''