Entur · Schema

SaleDiscountRight

A Sale Discount Right response

CompanyPublic TransportJourney PlanningMobilityOpen DataNorwayTransitGraphQL

Properties

Name Type Description
accessRightParameterAssignments array AccessRightParameterAssignments.
accessRightsInProduct array AccessRightsInProduct.
activeComparisonOperatorVariant string Deprecated: this parameter will be ignored
changed string SalesPackage changed datetime.
chargingMoment object
chargingMomentType string ChargingMomentType. Default value is BEFORE_TRAVEL.
compatibleWithVersionRef string CompatibleWithVersionRef
conditionSummary object
created string SalesPackage create datetime.
derivedFromVersionRef string Derived from version.
description array Description represented in different languages. Language codes are ISO-639.
fareFrameRef object
fareStructureType string FareStructureType.
fareTableRefs array FareTableRef.
id string Id.
limitingRuleRef object
modification string Modification status.
name array Name represented in different languages. Language codes are ISO-639.
nameOfClass string Name of class.
operatorRef string OperatorRef.
organisation string Organisation who own the product.
organisationId string Organisation related to the userProfile
prices array Prices for the sdr.
privateCode string PrivateCode.
status string Status
typeOfFareProduct object
typeOfFareProductRef object
validationRequirements array An optional set of validation requirement enums with the following allowable values: IDENTIFIABLE_CUSTOMER, VERIFIED_DELAY_OR_CANCELLATION, ASSESSMENT_DOCUMENTATION, ORIGINAL_TICKET_REQUIRED
validityConditions array ValidityCondition.
version string Version
View JSON Schema on GitHub

JSON Schema

entur-sale-discount-right-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/entur/main/json-schema/entur-sale-discount-right-schema.json",
  "title": "SaleDiscountRight",
  "description": "A Sale Discount Right response",
  "x-generated": "2026-10-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/entur-products-openapi.yml#/components/schemas/SaleDiscountRight",
  "required": [
    "accessRightParameterAssignments",
    "accessRightsInProduct",
    "changed",
    "chargingMoment",
    "created",
    "fareFrameRef",
    "id",
    "modification",
    "name",
    "nameOfClass",
    "organisation",
    "prices",
    "status",
    "validityConditions",
    "version"
  ],
  "type": "object",
  "properties": {
    "accessRightParameterAssignments": {
      "type": "array",
      "description": "AccessRightParameterAssignments.",
      "items": {
        "$ref": "#/$defs/GenericParameterAssignment"
      }
    },
    "accessRightsInProduct": {
      "type": "array",
      "description": "AccessRightsInProduct.",
      "items": {
        "$ref": "#/$defs/AccessRightInProduct"
      }
    },
    "activeComparisonOperatorVariant": {
      "type": "string",
      "description": "Deprecated: this parameter will be ignored"
    },
    "changed": {
      "type": "string",
      "description": "SalesPackage changed datetime.",
      "readOnly": true
    },
    "chargingMoment": {
      "$ref": "#/$defs/ChargingMoment"
    },
    "chargingMomentType": {
      "type": "string",
      "description": "ChargingMomentType. Default value is BEFORE_TRAVEL.",
      "enum": [
        "BEFORE_TRAVEL",
        "ON_START_OF_TRAVEL",
        "BEFORE_END_OF_TRAVEL",
        "ON_START_THEN_ADJUST_AT_END_OF_TRAVEL",
        "ON_START_THEN_ADJUST_AT_END_OF_FARE_DAY",
        "ON_START_THEN_ADJUST_AT_END_OF_CHARGE_PERIOD",
        "AT_END_OF_TRAVEL",
        "AT_END_OF_CHARGE_PERIOD",
        "FREE",
        "ANY_TIME",
        "OTHER"
      ]
    },
    "compatibleWithVersionRef": {
      "type": "string",
      "description": "CompatibleWithVersionRef",
      "readOnly": true
    },
    "conditionSummary": {
      "$ref": "#/$defs/ConditionSummary"
    },
    "created": {
      "type": "string",
      "description": "SalesPackage create datetime.",
      "readOnly": true
    },
    "derivedFromVersionRef": {
      "type": "string",
      "description": "Derived from version.",
      "readOnly": true
    },
    "description": {
      "type": "array",
      "description": "Description represented in different languages. Language codes are ISO-639.",
      "items": {
        "$ref": "#/$defs/TextInLanguage"
      }
    },
    "fareFrameRef": {
      "$ref": "#/$defs/VersionOfObjectRef"
    },
    "fareStructureType": {
      "type": "string",
      "description": "FareStructureType.",
      "enum": [
        "CAPPED_FLAT_FARE",
        "CAPPED_POINT_TO_POINT_FARE",
        "CAPPED_ZONAL_FARE",
        "LINE_FLAT_FARE",
        "NETWORK_FLAT_FARE",
        "POINT_TO_POINT_FARE",
        "POINT_TO_POINT_DISTANCE_FARE",
        "STAGE_FARE",
        "ZONE_FLAT_FARE",
        "ZONE_SEQUENCE_FARE",
        "ZONE_TO_ZONE_FARE",
        "ZONE_COUNT_FARE",
        "PENALTY_FARE",
        "OTHER"
      ]
    },
    "fareTableRefs": {
      "type": "array",
      "description": "FareTableRef.",
      "items": {
        "$ref": "#/$defs/VersionOfObjectRef"
      }
    },
    "id": {
      "minLength": 1,
      "pattern": "^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\\-]*)$",
      "type": "string",
      "description": "Id."
    },
    "limitingRuleRef": {
      "$ref": "#/$defs/VersionOfObjectRef"
    },
    "modification": {
      "type": "string",
      "description": "Modification status.",
      "readOnly": true,
      "enum": [
        "NEW",
        "REVISE",
        "DELETE"
      ]
    },
    "name": {
      "type": "array",
      "description": "Name represented in different languages. Language codes are ISO-639.",
      "items": {
        "$ref": "#/$defs/TextInLanguage"
      }
    },
    "nameOfClass": {
      "type": "string",
      "description": "Name of class.",
      "readOnly": true
    },
    "operatorRef": {
      "type": "string",
      "description": "OperatorRef."
    },
    "organisation": {
      "type": "string",
      "description": "Organisation who own the product."
    },
    "organisationId": {
      "type": "string",
      "description": "Organisation related to the userProfile"
    },
    "prices": {
      "type": "array",
      "description": "Prices for the sdr.",
      "items": {
        "$ref": "#/$defs/FarePrice"
      }
    },
    "privateCode": {
      "type": "string",
      "description": "PrivateCode."
    },
    "status": {
      "type": "string",
      "description": "Status",
      "readOnly": true,
      "enum": [
        "DRAFT",
        "PROPOSED",
        "VERSIONED",
        "DEPRECATED"
      ]
    },
    "typeOfFareProduct": {
      "$ref": "#/$defs/TypeOfFareProduct"
    },
    "typeOfFareProductRef": {
      "$ref": "#/$defs/VersionOfObjectRef"
    },
    "validationRequirements": {
      "type": "array",
      "description": "An optional set of validation requirement enums with the following allowable values: IDENTIFIABLE_CUSTOMER, VERIFIED_DELAY_OR_CANCELLATION, ASSESSMENT_DOCUMENTATION, ORIGINAL_TICKET_REQUIRED",
      "items": {
        "type": "string"
      }
    },
    "validityConditions": {
      "type": "array",
      "description": "ValidityCondition.",
      "items": {
        "$ref": "#/$defs/ValidityCondition"
      }
    },
    "version": {
      "minLength": 1,
      "pattern": "^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\\-]*)$",
      "type": "string",
      "description": "Version"
    }
  },
  "$defs": {
    "AccessRightInProduct": {
      "required": [
        "fareFrameRef",
        "id",
        "preassignedFareProductRef",
        "validableElementRef",
        "version"
      ],
      "type": "object",
      "properties": {
        "accessNumber": {
          "type": "integer",
          "description": "The actual access number",
          "format": "int32"
        },
        "accessNumberIsLimited": {
          "type": "boolean",
          "description": "Flag indicating if access number is limited"
        },
        "changed": {
          "type": "string",
          "description": "Changed datetime.",
          "readOnly": true
        },
        "compatibleWithVersionRef": {
          "type": "string",
          "description": "Compatible with version."
        },
        "created": {
          "type": "string",
          "description": "Created datetime.",
          "readOnly": true
        },
        "derivedFromVersionRef": {
          "type": "string",
          "description": "Derived from version."
        },
        "description": {
          "type": "array",
          "description": "Description represented in different languages. Language codes are ISO-639.",
          "items": {
            "$ref": "#/$defs/TextInLanguage"
          }
        },
        "fareFrameRef": {
          "$ref": "#/$defs/VersionOfObjectRef"
        },
        "id": {
          "minLength": 1,
          "pattern": "^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\\-]*)$",
          "type": "string",
          "description": "Id."
        },
        "isFirstInSequence": {
          "type": "boolean",
          "description": "Whether element is first in sequence"
        },
        "isLastInSequence": {
          "type": "boolean",
          "description": "Whether element is last in sequence"
        },
        "limitedAccessNumber": {
          "type": "integer",
          "description": "Flag indicating whether this rights gives an unlimited number of accesses or not",
          "format": "int32"
        },
        "maximumAccess": {
          "type": "integer",
          "description": "Maximum number of times use of this element may occur in a given trip",
          "format": "int32"
        },
        "minimumAccess": {
          "type": "integer",
          "description": "Minimum number of times use of this element must occur in a given trip",
          "format": "int32"
        },
        "modification": {
          "type": "string",
          "description": "Modification status.",
          "readOnly": true,
          "enum": [
            "NEW",
            "REVISE",
            "DELETE"
          ]
        },
        "name": {
          "type": "array",
          "description": "Name represented in different languages. Language codes are ISO-639.",
          "items": {
            "$ref": "#/$defs/TextInLanguage"
          }
        },
        "nameOfClass": {
          "type": "string",
          "description": "Name of class.",
          "readOnly": true
        },
        "orderOfElement": {
          "type": "integer",
          "description": "The actual order in the sequence",
          "format": "int32"
        },
        "preassignedFareProductRef": {
          "$ref": "#/$defs/VersionOfObjectRef"
        },
        "status": {
          "type": "string",
          "description": "Access right in product status.",
          "readOnly": true,
          "enum": [
            "DRAFT",
            "PROPOSED",
            "VERSIONED",
            "DEPRECATED"
          ]
        },
        "validableElementRef": {
          "$ref": "#/$defs/VersionOfObjectRef"
        },
        "version": {
          "minLength": 1,
          "pattern": "^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\\-]*)$",
          "type": "string",
          "description": "Access right in product version."
        }
      },
      "description": "A VALIDABLE ELEMENT as a part of a PRE-ASSIGNED FARE PRODUCT, including its possible order in the set of all VALIDABLE ELEMENTs grouped together to define the access right assigned to that PRE-ASSIGNED FARE PRODUCT."
    },
    "ChargingMoment": {
      "required": [
        "changed",
        "created",
        "fareFrameRef",
        "id",
        "modification",
        "nameOfClass",
        "status",
        "version"
      ],
      "type": "object",
      "properties": {
        "changed": {
          "type": "string",
          "description": "Changed datetime.",
          "readOnly": true
        },
        "compatibleWithVersionRef": {
          "type": "string",
          "description": "Compatible with version.",
          "readOnly": true
        },
        "created": {
          "type": "string",
          "description": "Created datetime.",
          "readOnly": true
        },
        "derivedFromVersionRef": {
          "type": "string",
          "description": "Derived from version.",
          "readOnly": true
        },
        "description": {
          "type": "array",
          "description": "Description represented in different languages. Language codes are ISO-639.",
          "items": {
            "$ref": "#/$defs/TextInLanguage"
          }
        },
        "fareFrameRef": {
          "$ref": "#/$defs/VersionOfObjectRef"
        },
        "id": {
          "minLength": 1,
          "pattern": "^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\\-]*)$",
          "type": "string",
          "description": "Id."
        },
        "modification": {
          "type": "string",
          "description": "Modification status.",
          "readOnly": true,
          "enum": [
            "NEW",
            "REVISE",
            "DELETE"
          ]
        },
        "name": {
          "type": "array",
          "description": "Name represented in different languages. Language codes are ISO-639.",
          "items": {
            "$ref": "#/$defs/TextInLanguage"
          }
        },
        "nameOfClass": {
          "type": "string",
          "description": "Name of class.",
          "readOnly": true
        },
        "status": {
          "type": "string",
          "description": "Charging moment status.",
          "readOnly": true,
          "enum": [
            "DRAFT",
            "PROPOSED",
            "VERSIONED",
            "DEPRECATED"
          ]
        },
        "version": {
          "minLength": 1,
          "pattern": "^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\\-]*)$",
          "type": "string",
          "description": "Charging moment version."
        }
      },
      "description": "A classification of FARE PRODUCTs according to the payment method and the account location: pre-payment with cancellation (throw-away), pre-payment with debit on a value card, pre-payment without consumption registration (pass), post-payment etc.",
      "readOnly": true,
      "deprecated": true
    },
    "ConditionSummary": {
      "required": [
        "id"
      ],
      "type": "object",
      "properties": {
        "id": {
          "minLength": 1,
          "pattern": "^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\\-]*)$",
          "type": "string",
          "description": "Id."
        },
        "isExchangeable": {
          "type": "boolean",
          "description": "Whether the ticket is exchangeable."
        },
        "isRefundable": {
          "type": "boolean",
          "description": "Whether the ticket is refundable."
        }
      },
      "description": "A summary of a condition."
    },
    "FarePrice": {
      "required": [
        "changed",
        "created",
        "fareFrameRef",
        "id",
        "modification",
        "nameOfClass",
        "status"
      ],
      "type": "object",
      "properties": {
        "amount": {
          "type": "string",
          "description": "Amount"
        },
        "canBeCumulative": {
          "type": "boolean",
          "description": "canBeCumulative."
        },
        "changed": {
          "type": "string",
          "description": "Changed datetime.",
          "readOnly": true
        },
        "compatibleWithVersionRef": {
          "type": "string",
          "description": "Compatible with version."
        },
        "created": {
          "type": "string",
          "description": "Created datetime.",
          "readOnly": true
        },
        "currency": {
          "type": "string",
          "description": "Currency."
        },
        "derivedFromVersionRef": {
          "type": "string",
          "description": "Derived from version."
        },
        "discountPercentageUsed": {
          "maximum": 100,
          "minimum": -100,
          "type": "integer",
          "description": "discountPercentageUsed.",
          "format": "int32"
        },
        "fareFrameRef": {
          "$ref": "#/$defs/VersionOfObjectRef"
        },
        "id": {
          "minLength": 1,
          "type": "string",
          "description": "Id."
        },
        "isAllowed": {
          "type": "boolean",
          "description": "isAllowed."
        },
        "limitingRule": {
          "$ref": "#/$defs/LimitingRule"
        },
        "modification": {
          "type": "string",
          "description": "Modification status.",
          "readOnly": true,
          "enum": [
            "NEW",
            "REVISE",
            "DELETE"
          ]
        },
        "name": {
          "type": "array",
          "description": "Name.",
          "items": {
            "$ref": "#/$defs/TextInLanguage"
          }
        },
        "nameOfClass": {
          "type": "string",
          "description": "Name of class.",
          "readOnly": true
        },
        "ranking": {
          "type": "integer",
          "description": "Ranking.",
          "format": "int32"
        },
        "rounding": {
          "$ref": "#/$defs/Rounding"
        },
        "roundingRef": {
          "$ref": "#/$defs/VersionOfObjectRef"
        },
        "status": {
          "type": "string",
          "description": "Status.",
          "readOnly": true,
          "enum": [
            "DRAFT",
            "PROPOSED",
            "VERSIONED",
            "DEPRECATED"
          ]
        },
        "vatRegisterGroup": {
          "type": "string",
          "description": "vatRegisterGroup.",
          "enum": [
            "EXCEPTION_FROM_VAT",
            "GENERAL_VAT",
            "FOOD_VAT",
            "TRANSPORT_AND_TICKETS_VAT"
          ]
        },
        "version": {
          "type": "string",
          "description": "Version.",
          "readOnly": true
        }
      },
      "description": "A description of the price and factor for a set fare"
    },
    "GenericParameterAssignment": {
      "required": [
        "changed",
        "created",
        "fareFrameRef",
        "id",
        "modification",
        "nameOfClass",
        "status",
        "version"
      ],
      "type": "object",
      "properties": {
        "canIgnoreInOffering": {
          "type": "boolean",
          "description": "Indicates whether gpa leaf node is supposed to be ignored when generating offer."
        },
        "changed": {
          "type": "string",
          "description": "Changed datetime."
        },
        "chargingBasisType": {
          "type": "string",
          "description": "ChargingBasisType.",
          "enum": [
            "FREE",
            "DISCOUNTED",
            "NORMAL",
            "ANY"
          ]
        },
        "comparisonOperatorVariant": {
          "type": "string",
          "description": "Deprecated: this parameter will be ignored"
        },
        "compatibleWithVersionRef": {
          "type": "string",
          "description": "CompatibleWithVersionRef."
        },
        "created": {
          "type": "string",
          "description": "Created datetime."
        },
        "derivedFromVersionRef": {
          "type": "string",
          "description": "Derived from version."
        },
        "description": {
          "type": "array",
          "description": "Description represented in different languages. Language codes are ISO-639.",
          "items": {
            "$ref": "#/$defs/TextInLanguage"
          }
        },
        "fareFrameRef": {
          "$ref": "#/$defs/VersionOfObjectRef"
        },
        "fareProductRef": {
          "$ref": "#/$defs/VersionOfObjectRef"
        },
        "fareStructureElementRef": {
          "$ref": "#/$defs/VersionOfObjectRef"
        },
        "id": {
          "minLength": 1,
          "pattern": "^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\\-]*)$",
          "type": "string",
          "description": "Id."
        },
        "includes": {
          "type": "array",
          "description": "Includes genericParameterAssignments.",
          "items": {
            "$ref": "#/$defs/GenericParameterAssignment"
          }
        },
        "includesGroupingType": {
          "type": "string",
          "description": "Includes grouping type.",
          "enum": [
            "AND",
            "OR",
            "XOR",
            "NOT"
          ]
        },
        "limitationGroupingType": {
          "type": "string",
          "description": "Limitation grouping type.",
          "enum": [
            "AND",
            "OR",
            "XOR",
            "NOT"
          ]
        },
        "limitations": {
          "type": "array",
          "description": "Limitations as UsageParameters.",
          "items": {
            "$ref": "#/$defs/VersionOfObjectRef"
          }
        },
        "modification": {
          "type": "string",
          "description": "Modification status.",
          "enum": [
            "NEW",
            "REVISE",
            "DELETE"
          ]
        },
        "name": {
          "type": "array",
          "description": "Name represented in different languages. Language codes are ISO-639.",
          "items": {
            "$ref": "#/$defs/TextInLanguage"
          }
        },
        "nameOfClass": {
          "type": "string",
          "description": "Name of class"
        },
        "parentParameterAssignmentRef": {
          "$ref": "#/$defs/VersionOfObjectRef"
        },
        "requiredElements": {
          "type": "array",
          "description": "Required elements.",
          "items": {
            "type": "string"
          }
        },
        "requiredInContext": {
          "type": "string",
          "description": "Required in context.",
          "enum": [
            "OFFERING",
            "BOOKING",
            "RESERVATION",
            "SALE",
            "FULFILMENT",
            "ACTIVATION",
            "CONSUMPTION",
            "REVALIDATION"
          ]
        },
        "requiredType": {
          "type": "string",
          "description": "Required type.",
          "enum": [
            "SERVICE_JOURNEY_REF",
            "TARIFF_ZONE_REF",
            "PASSENGER_SEAT_REF",
            "USER_PROFILE_REF",
            "USAGE_VALIDITY_PERIOD_REF",
            "DATED_SERVICE_JOURNEY_REF",
            "DYNAMIC_DISTANCE_MATRIX_ELEMENT",
            "USAGE_VALIDITY_PERIOD",
            "DISTANCE_MATRIX_ELEMENT_REF",
            "SCHEDULED_STOP_POINT_REF",
            "GROUP_TICKET_REF",
            "GROUP_TICKET",
            "GROUP_OF_TARIFF_ZONES_REF",
            "FARE_ZONE_REF"
          ]
        },
        "salesPackageRef": {
          "$ref": "#/$defs/VersionOfObjectRef"
        },
        "status": {
          "type": "string",
          "description": "Status",
          "enum": [
            "DRAFT",
            "PROPOSED",
            "VERSIONED",
            "DEPRECATED"
          ]
        },
        "temporalValidityParameters": {
          "type": "array",
          "description": "Temporal validity parameter.",
          "items": {
            "$ref": "#/$defs/TemporalValidityParameter"
          }
        },
        "typeOfAccessRightAssignment": {
          "$ref": "#/$defs/TypeOfAccessRightAssignment"
        },
        "validableElementRef": {
          "$ref": "#/$defs/VersionOfObjectRef"
        },
        "validityParameterAssignmentType": {
          "type": "string",
          "description": "Validity parameter assignment type.",
          "enum": [
            "EQ",
            "NE",
            "GT",
            "LT",
            "GE",
            "LE"
          ]
        },
        "validityParameterGroupingType": {
          "type": "string",
          "description": "Validity parameter grouping type.",
          "enum": [
            "AND",
            "OR",
            "XOR",
            "NOT"
          ]
        },
        "validityParameterSetSelectionType": {
          "type": "string",
          "description": "Validity parameter set operator.",
          "enum": [
            "ONE_OF_ANY_ONE_SET",
            "ONE_OF_EACH_SET",
            "SOME_OF_ANY_SET",
            "ALL_OF_ONE_SET",
            "ALL_OF_ALL_SETS"
          ]
        },
        "validityParameters": {
          "type": "array",
          "description": "Validity parameters as scoping validity parameters",
          "items": {
            "$ref": "#/$defs/ScopingValidityParameter"
          }
        },
        "version": {
          "minLength": 1,
          "pattern": "^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\\-]*)$",
          "type": "string",
          "description": "Version"
        }
      },
      "description": "A GenericParameterAssignment"
    },
    "GroupOfTimeBands": {
      "required": [
        "changed",
        "created",
        "id",
        "members",
        "modification",
        "nameOfClass",
        "status",
        "validityConditions"
      ],
      "type": "object",
      "properties": {
        "changed": {
          "type": "string",
          "description": "Changed datetime."
        },
        "compatibleWithVersionRef": {
          "type": "string",
          "description": "Compatible with version."
        },
        "created": {
          "type": "string",
          "description": "Created datetime."
        },
        "derivedFromVersionRef": {
          "type": "string",
          "description": "Derived from version."
        },
        "id": {
          "minLength": 1,
          "pattern": "^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\\-]*)$",
          "type": "string",
          "description": "Id."
        },
        "members": {
          "type": "array",
          "description": "Members.",
          "items": {
            "$ref": "#/$defs/Timeband"
          }
        },
        "modification": {
          "type": "string",
          "description": "Modification status.",
          "enum": [
            "NEW",
            "REVISE",
            "DELETE"
          ]
        },
        "nameOfClass": {
          "type": "string",
          "description": "Name of class."
        },
        "status": {
          "type": "string",
          "description": "Status.",
          "enum": [
            "DRAFT",
            "PROPOSED",
            "VERSIONED",
            "DEPRECATED"
          ]
        },
        "validityConditions": {
          "type": "array",
          "description": "ValidityConditions sequence.",
          "items": {
            "$ref": "#/$defs/ValidityCondition"
          }
        },
        "version": {
          "minLength": 1,
          "pattern": "^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\\-]*)$",
          "type": "string",
          "description": "Version."
        }
      },
      "description": "A GroupOfTimeband describe during which the assignments applies"
    },
    "LimitingRule": {
      "required": [
        "changed",
        "created",
        "fareFrameRef",
        "id",
        "modification",
        "nameOfClass",
        "status"
      ],
      "type": "object",
      "properties": {
        "canBeCumulative": {
          "type": "boolean",
          "description": "CanBeCumulative."
        },
        "changed": {
          "type": "string",
          "description": "Changed datetime.",
          "readOnly": true
        },
        "compatibleWithVersionRef": {
          "type": "string",
          "description": "Compatible with version."
        },
        "created": {
          "type": "string",
          "description": "Created datetime.",
          "readOnly": true
        },
        "derivedFromVersionRef": {
          "type": "string",
          "description": "Derived from version."
        },
        "description": {
          "type": "array",
          "description": "Description.",
          "items": {
            "$ref": "#/$defs/TextInLanguage"
          }
        },
        "discountAsPercentage": {
          "type": "number",
          "description": "DiscountAsPercentage.",
          "format": "float"
        },
        "discountAsValue": {
          "type": "number",
          "description": "DiscountAsValue.",
          "format": "float"
        },
        "fareFrameRef": {
          "$ref": "#/$defs/VersionOfObjectRef"
        },
        "id": {
          "minLength": 1,
          "pattern": "^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\\-]*)$",
          "type": "string",
          "description": "Id."
        },
        "maximumPrice": {
          "type": "string",
          "description": "MaximumPrice."
        },
        "maximumPriceAsPercentage": {
          "type": "number",
          "description": "MaximumPriceAsPercentage.",
          "format": "double"
        },
        "minimumLimitPrice": {
          "type": "string",
          "description": "MinimumLimitPrice."
        },
        "minimumPrice": {
          "type": "string",
          "description": "MinimumPrice."
        },
        "modification": {
          "type": "string",
          "description": "Modification status.",
          "readOnly": true,
          "enum": [
            "NEW",
            "REVISE",
            "DELETE"
          ]
        },
        "name": {
          "type": "array",
          "description": "Name.",
          "items": {
            "$ref": "#/$defs/TextInLanguage"
          }
        },
        "nameOfClass": {
          "type": "string",
          "description": "Name of class.",
          "readOnly": true
        },
        "status": {
          "type": "string",
          "description": "Status.",
          "readOnly": true,
          "enum": [
            "DRAFT",
            "PROPOSED",
            "VERSIONED",
            "DEPRECATED"
          ]
        },
        "version": {
          "minLength": 1,
          "pattern": "^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\\-]*)$",
          "type": "string",
          "description": "Version."
        }
      },
      "description": "A LimitingRule"
    },
    "Rounding": {
      "required": [
        "changed",
        "created",
        "fareFrameRef",
        "id",
        "modification",
        "nameOfClass",
        "roundingMethod",
        "status",
        "version"
      ],
      "type": "object",
      "properties": {
        "changed": {
          "type": "string",
          "description": "Changed datetime.",
          "readOnly": true
        },
        "compatibleWithVersionRef": {
          "type": "string",
          "description": "Compatible with version."
        },
        "created": {
          "type": "string",
          "description": "Created datetime.",
          "readOnly": true
        },
        "derivedFromVersionRef": {
          "type": "string",
          "description": "Derived from version."
        },
        "description": {
          "type": "array",
          "description": "Description.",
          "items": {
            "$ref": "#/$defs/TextInLanguage"
          }
        },
        "fareFrameRef": {
          "$ref": "#/$defs/VersionOfObjectRef"
        },
        "id": {
          "minLength": 1,
          "pattern": "^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\\-]*)$",
          "type": "string",
          "description": "Id."
        },
        "modification": {
          "type": "string",
          "description": "Modification status.",
          "readOnly": true,
          "enum": [
            "NEW",
            "REVISE",
            "DELETE"
          ]
        },
        "name": {
          "type": "array",
          "description": "Name.",
          "items": {
            "$ref": "#/$defs/TextInLanguage"
          }
        },
        "nameOfClass": {
          "type": "string",
          "description": "Name of class.",
          "readOnly": true
        },
        "roundingMethod": {
          "type": "string",
          "description": "Type of rounding.",
          "enum": [
            "NONE",
            "DOWN",
            "UP",
            "SPLIT",
            "STEP_TABLE",
            "FIVE",
            "NINE",
            "TEN",
            "FORTY_NINE"
          ]
        },
        "roundingModulus": {
          "type": "number",
          "description": "Amount by which rounding is to be quantised, i.e. results should be quantised to nearest whole multiple of this value.",
          "format": "double"
        },
        "status": {
          "type": "string",
          "description": "Rounding status.",
          "readOnly": true,
          "enum": [
            "DRAFT",
            "PROPOSED",
            "VERSIONED",
            "DEPRECATED"
          ]
        },
        "version": {
          "minLength": 1,
          "pattern": "^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\\-]*)$",
          "type": "string",
          "description": "Rounding version."
        }
      },
      "description": "A description of how prices are rounded post calculation",
      "deprecated": true
    },
    "ScopingValidityParameter": {
      "required": [
        "changed",
        "created",
        "fareFrameRef",
        "genericParameterAssignmentRef",
        "id",
        "modification",
        "nameOfClass",
        "status",
        "version"
      ],
      "type": "object",
      "properties": {
        "authorityRef": {
          "type": "string",
          "description": "AuthorityRef."
        },
        "changed": {
          "type": "string",
          "description": "Changed datetime."
        },
        "compatibleWithVersionRef": {
          "type": "string",
          "description": "CompatibleWithVersionRef."
        },
        "created": {
          "type": "string",
          "description": "Created datetime."
        },
        "derivedFromVersionRef": {
          "type": "string",
          "description": "Derived from version."
        },
        "distributionChannelRef": {
          "type": "string",
          "description": "Distribution channel ref."
        },
        "facilitySetRef": {
          "type": "string",
          "description": "facilitySetRef."
        },
        "fareClasses": {
          "type": "array",
          "description": "FareClasses. Enum as string with the following values: FIRST_CLASS, SECOND_CLASS, THIRD_CLASS, ECONOMY_CLASS, BUSINESS_CLASS, TURI

# --- truncated at 32 KB (52 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/entur/refs/heads/main/json-schema/entur-sale-discount-right-schema.json

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/entur-sale-discount-right"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.