1097 lines
40 KiB
JSON
1097 lines
40 KiB
JSON
{
|
|
"ok": true,
|
|
"status": 200,
|
|
"request_id": "abd20c8c-e00e-431f-9e5a-ed32b0436a3e",
|
|
"data": {
|
|
"items": [
|
|
{
|
|
"operation_id": "deleteRoomClass",
|
|
"method": "DELETE",
|
|
"path": "/api/v1/config/rooms/room-classes/{code}",
|
|
"summary": "房型分类 · 删除",
|
|
"capability_group": "configuration.write",
|
|
"integration": {
|
|
"pattern": "confirmed-write",
|
|
"prerequisites": [
|
|
"Oracle functional area and configuration access",
|
|
"Configured hotel context; chain configuration can affect multiple properties",
|
|
"Confirmation must cover hotel scope; one resource code per request; a chain code can affect multiple hotels"
|
|
],
|
|
"retry": "Reuse the same idempotency key; never blindly retry an unknown result. Replays perform verification reads only."
|
|
},
|
|
"query_names": [],
|
|
"contract": {
|
|
"operationId": "deleteRoomClass",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "code",
|
|
"required": true,
|
|
"schema": {
|
|
"maxLength": 2000,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"case_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"expected_hotel_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"expected_scope": {
|
|
"const": "hotel",
|
|
"type": "string"
|
|
},
|
|
"hotel_confirmation_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"idempotency_key": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"task_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"case_id",
|
|
"task_id",
|
|
"hotel_confirmation_id",
|
|
"idempotency_key",
|
|
"expected_hotel_id",
|
|
"expected_scope"
|
|
],
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfirmedWriteResult"
|
|
}
|
|
}
|
|
},
|
|
"description": "Upstream accepted and the target code was read back (or its absence verified for deletion). Inspect returned fields for business correctness."
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"CallerAPIKey": []
|
|
}
|
|
],
|
|
"summary": "房型分类 · 删除",
|
|
"x-capability-group": "configuration.write",
|
|
"x-configuration-scope": "hotel",
|
|
"x-integration": {
|
|
"pattern": "confirmed-write",
|
|
"prerequisites": [
|
|
"Oracle functional area and configuration access",
|
|
"Configured hotel context; chain configuration can affect multiple properties",
|
|
"Confirmation must cover hotel scope; one resource code per request; a chain code can affect multiple hotels"
|
|
],
|
|
"retry": "Reuse the same idempotency key; never blindly retry an unknown result. Replays perform verification reads only."
|
|
},
|
|
"x-oracle-path": "/rm/config/v1/hotels/{hotelId}/roomClasses/{roomClassId}",
|
|
"x-oracle-source": "https://github.com/oracle/hospitality-api-docs/tree/dd631fbd5d0fce74a7dbdf96b43f07ce587211f2/rest-api-specs/property/v1/rmcfg.json"
|
|
}
|
|
},
|
|
{
|
|
"operation_id": "deleteRoomTypes",
|
|
"method": "DELETE",
|
|
"path": "/api/v1/config/rooms/room-types/{code}",
|
|
"summary": "房型 · 删除",
|
|
"capability_group": "configuration.write",
|
|
"integration": {
|
|
"pattern": "confirmed-write",
|
|
"prerequisites": [
|
|
"Oracle functional area and configuration access",
|
|
"Configured hotel context; chain configuration can affect multiple properties",
|
|
"Confirmation must cover hotel scope; one resource code per request; a chain code can affect multiple hotels"
|
|
],
|
|
"retry": "Reuse the same idempotency key; never blindly retry an unknown result. Replays perform verification reads only."
|
|
},
|
|
"query_names": [],
|
|
"contract": {
|
|
"operationId": "deleteRoomTypes",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "code",
|
|
"required": true,
|
|
"schema": {
|
|
"maxLength": 2000,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"case_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"expected_hotel_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"expected_scope": {
|
|
"const": "hotel",
|
|
"type": "string"
|
|
},
|
|
"hotel_confirmation_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"idempotency_key": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"task_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"case_id",
|
|
"task_id",
|
|
"hotel_confirmation_id",
|
|
"idempotency_key",
|
|
"expected_hotel_id",
|
|
"expected_scope"
|
|
],
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfirmedWriteResult"
|
|
}
|
|
}
|
|
},
|
|
"description": "Upstream accepted and the target code was read back (or its absence verified for deletion). Inspect returned fields for business correctness."
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"CallerAPIKey": []
|
|
}
|
|
],
|
|
"summary": "房型 · 删除",
|
|
"x-capability-group": "configuration.write",
|
|
"x-configuration-scope": "hotel",
|
|
"x-integration": {
|
|
"pattern": "confirmed-write",
|
|
"prerequisites": [
|
|
"Oracle functional area and configuration access",
|
|
"Configured hotel context; chain configuration can affect multiple properties",
|
|
"Confirmation must cover hotel scope; one resource code per request; a chain code can affect multiple hotels"
|
|
],
|
|
"retry": "Reuse the same idempotency key; never blindly retry an unknown result. Replays perform verification reads only."
|
|
},
|
|
"x-oracle-path": "/rm/config/v1/hotels/{hotelId}/roomTypes/{roomTypeId}",
|
|
"x-oracle-source": "https://github.com/oracle/hospitality-api-docs/tree/dd631fbd5d0fce74a7dbdf96b43f07ce587211f2/rest-api-specs/property/v1/rmcfg.json"
|
|
}
|
|
},
|
|
{
|
|
"operation_id": "getBlockRoomRateGrid",
|
|
"method": "GET",
|
|
"path": "/api/v1/blocks/{blockID}/room-rate-grid",
|
|
"summary": "Get the Block room/rate grid",
|
|
"capability_group": "blocks.read",
|
|
"integration": {
|
|
"pattern": "sync-read",
|
|
"prerequisites": [
|
|
"Approved application capability"
|
|
],
|
|
"retry": "Read-only operation; retry transient failures with bounded backoff and honor Retry-After. Validation requests do not persist changes."
|
|
},
|
|
"query_names": [
|
|
"fetchAllocatedRoomTypes",
|
|
"startDate",
|
|
"numberOfDays",
|
|
"roomAllocationCriteria",
|
|
"roomTypes",
|
|
"limit",
|
|
"offset"
|
|
],
|
|
"contract": {
|
|
"operationId": "getBlockRoomRateGrid",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/BlockID"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OHIPDocument"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bounded Oracle document in the stable edge envelope.",
|
|
"headers": {
|
|
"Cache-Control": {
|
|
"schema": {
|
|
"const": "no-store",
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"CallerAPIKey": []
|
|
}
|
|
],
|
|
"summary": "Get the Block room/rate grid",
|
|
"x-capability-group": "blocks.read",
|
|
"x-integration": {
|
|
"pattern": "sync-read",
|
|
"prerequisites": [
|
|
"Approved application capability"
|
|
],
|
|
"retry": "Read-only operation; retry transient failures with bounded backoff and honor Retry-After. Validation requests do not persist changes."
|
|
},
|
|
"x-oracle-api": "BLK"
|
|
}
|
|
},
|
|
{
|
|
"operation_id": "getRoomClasses",
|
|
"method": "GET",
|
|
"path": "/api/v1/config/rooms/room-classes",
|
|
"summary": "房型分类 · 查询",
|
|
"capability_group": "configuration.read",
|
|
"integration": {
|
|
"pattern": "sync-read",
|
|
"prerequisites": [
|
|
"Oracle functional area and configuration access",
|
|
"Configured hotel context; chain configuration can affect multiple properties"
|
|
],
|
|
"retry": "Bounded read retries."
|
|
},
|
|
"query_names": [
|
|
"roomClassCodes"
|
|
],
|
|
"contract": {
|
|
"operationId": "getRoomClasses",
|
|
"parameters": [
|
|
{
|
|
"explode": true,
|
|
"in": "query",
|
|
"name": "roomClassCodes",
|
|
"required": false,
|
|
"schema": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 4000,
|
|
"type": "array"
|
|
},
|
|
"style": "form"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OHIPDocument"
|
|
}
|
|
}
|
|
},
|
|
"description": "Oracle document; an upstream 204 becomes data {}."
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"CallerAPIKey": []
|
|
}
|
|
],
|
|
"summary": "房型分类 · 查询",
|
|
"x-capability-group": "configuration.read",
|
|
"x-configuration-scope": "hotel",
|
|
"x-integration": {
|
|
"pattern": "sync-read",
|
|
"prerequisites": [
|
|
"Oracle functional area and configuration access",
|
|
"Configured hotel context; chain configuration can affect multiple properties"
|
|
],
|
|
"retry": "Bounded read retries."
|
|
},
|
|
"x-oracle-path": "/rm/config/v1/hotels/{hotelId}/roomClasses",
|
|
"x-oracle-source": "https://github.com/oracle/hospitality-api-docs/tree/dd631fbd5d0fce74a7dbdf96b43f07ce587211f2/rest-api-specs/property/v1/rmcfg.json"
|
|
}
|
|
},
|
|
{
|
|
"operation_id": "getRoomTypeInfo",
|
|
"method": "GET",
|
|
"path": "/api/v1/room-types/{roomTypeCode}",
|
|
"summary": "Get one Room Type",
|
|
"capability_group": "hotel.read",
|
|
"integration": {
|
|
"pattern": "sync-read",
|
|
"prerequisites": [
|
|
"Approved application capability"
|
|
],
|
|
"retry": "Read-only operation; retry transient failures with bounded backoff and honor Retry-After. Validation requests do not persist changes."
|
|
},
|
|
"query_names": [],
|
|
"contract": {
|
|
"operationId": "getRoomTypeInfo",
|
|
"parameters": [
|
|
{
|
|
"$ref": "#/components/parameters/RoomTypeCode"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OHIPDocument"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bounded Oracle document in the stable edge envelope.",
|
|
"headers": {
|
|
"Cache-Control": {
|
|
"schema": {
|
|
"const": "no-store",
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"CallerAPIKey": []
|
|
}
|
|
],
|
|
"summary": "Get one Room Type",
|
|
"x-capability-group": "hotel.read",
|
|
"x-integration": {
|
|
"pattern": "sync-read",
|
|
"prerequisites": [
|
|
"Approved application capability"
|
|
],
|
|
"retry": "Read-only operation; retry transient failures with bounded backoff and honor Retry-After. Validation requests do not persist changes."
|
|
},
|
|
"x-oracle-api": "RMCFG"
|
|
}
|
|
},
|
|
{
|
|
"operation_id": "getRoomTypes",
|
|
"method": "GET",
|
|
"path": "/api/v1/room-types",
|
|
"summary": "Get Room Types",
|
|
"capability_group": "hotel.read",
|
|
"integration": {
|
|
"pattern": "sync-read",
|
|
"prerequisites": [
|
|
"Approved application capability"
|
|
],
|
|
"retry": "Read-only operation; retry transient failures with bounded backoff and honor Retry-After. Validation requests do not persist changes."
|
|
},
|
|
"query_names": [
|
|
"accessible",
|
|
"includeInactive",
|
|
"limit",
|
|
"offset",
|
|
"physical",
|
|
"pseudo",
|
|
"summaryInfo",
|
|
"roomTypeCodes",
|
|
"roomClassCodes"
|
|
],
|
|
"contract": {
|
|
"operationId": "getRoomTypes",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OHIPDocument"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bounded Oracle document in the stable edge envelope.",
|
|
"headers": {
|
|
"Cache-Control": {
|
|
"schema": {
|
|
"const": "no-store",
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"CallerAPIKey": []
|
|
}
|
|
],
|
|
"summary": "Get Room Types",
|
|
"x-capability-group": "hotel.read",
|
|
"x-integration": {
|
|
"pattern": "sync-read",
|
|
"prerequisites": [
|
|
"Approved application capability"
|
|
],
|
|
"retry": "Read-only operation; retry transient failures with bounded backoff and honor Retry-After. Validation requests do not persist changes."
|
|
},
|
|
"x-oracle-api": "RMCFG"
|
|
}
|
|
},
|
|
{
|
|
"operation_id": "postRoomClass",
|
|
"method": "POST",
|
|
"path": "/api/v1/config/rooms/room-classes",
|
|
"summary": "房型分类 · 新增",
|
|
"capability_group": "configuration.write",
|
|
"integration": {
|
|
"pattern": "confirmed-write",
|
|
"prerequisites": [
|
|
"Oracle functional area and configuration access",
|
|
"Configured hotel context; chain configuration can affect multiple properties",
|
|
"Confirmation must cover hotel scope; one resource code per request; a chain code can affect multiple hotels"
|
|
],
|
|
"retry": "Reuse the same idempotency key; never blindly retry an unknown result. Replays perform verification reads only."
|
|
},
|
|
"query_names": [],
|
|
"contract": {
|
|
"operationId": "postRoomClass",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"case_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"expected_hotel_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"expected_scope": {
|
|
"const": "hotel",
|
|
"type": "string"
|
|
},
|
|
"hotel_confirmation_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"idempotency_key": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"payload": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/rmcfg_roomClassCriteria"
|
|
},
|
|
{
|
|
"properties": {
|
|
"roomClass": {
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"roomClass"
|
|
],
|
|
"type": "object"
|
|
}
|
|
],
|
|
"description": "One target code only, matching resource_code or the path code. Oracle-shaped fields are forwarded unchanged."
|
|
},
|
|
"resource_code": {
|
|
"maxLength": 2000,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"task_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"case_id",
|
|
"task_id",
|
|
"hotel_confirmation_id",
|
|
"idempotency_key",
|
|
"expected_hotel_id",
|
|
"expected_scope",
|
|
"resource_code",
|
|
"payload"
|
|
],
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfirmedWriteResult"
|
|
}
|
|
}
|
|
},
|
|
"description": "Upstream accepted and the target code was read back (or its absence verified for deletion). Inspect returned fields for business correctness."
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"CallerAPIKey": []
|
|
}
|
|
],
|
|
"summary": "房型分类 · 新增",
|
|
"x-capability-group": "configuration.write",
|
|
"x-configuration-scope": "hotel",
|
|
"x-integration": {
|
|
"pattern": "confirmed-write",
|
|
"prerequisites": [
|
|
"Oracle functional area and configuration access",
|
|
"Configured hotel context; chain configuration can affect multiple properties",
|
|
"Confirmation must cover hotel scope; one resource code per request; a chain code can affect multiple hotels"
|
|
],
|
|
"retry": "Reuse the same idempotency key; never blindly retry an unknown result. Replays perform verification reads only."
|
|
},
|
|
"x-oracle-path": "/rm/config/v1/hotels/{hotelId}/roomClasses",
|
|
"x-oracle-source": "https://github.com/oracle/hospitality-api-docs/tree/dd631fbd5d0fce74a7dbdf96b43f07ce587211f2/rest-api-specs/property/v1/rmcfg.json"
|
|
}
|
|
},
|
|
{
|
|
"operation_id": "postRoomTypes",
|
|
"method": "POST",
|
|
"path": "/api/v1/config/rooms/room-types",
|
|
"summary": "房型 · 新增",
|
|
"capability_group": "configuration.write",
|
|
"integration": {
|
|
"pattern": "confirmed-write",
|
|
"prerequisites": [
|
|
"Oracle functional area and configuration access",
|
|
"Configured hotel context; chain configuration can affect multiple properties",
|
|
"Confirmation must cover hotel scope; one resource code per request; a chain code can affect multiple hotels"
|
|
],
|
|
"retry": "Reuse the same idempotency key; never blindly retry an unknown result. Replays perform verification reads only."
|
|
},
|
|
"query_names": [],
|
|
"contract": {
|
|
"operationId": "postRoomTypes",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"case_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"expected_hotel_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"expected_scope": {
|
|
"const": "hotel",
|
|
"type": "string"
|
|
},
|
|
"hotel_confirmation_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"idempotency_key": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"payload": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/rmcfg_roomTypesCriteria"
|
|
},
|
|
{
|
|
"properties": {
|
|
"roomType": {
|
|
"properties": {
|
|
"hotelId": {
|
|
"description": "Must equal the server-configured hotel.",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"hotelId"
|
|
],
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"roomType"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"roomType": {
|
|
"properties": {
|
|
"roomTypeDetails": {
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"roomTypeDetails"
|
|
],
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"roomType"
|
|
],
|
|
"type": "object"
|
|
}
|
|
],
|
|
"description": "One target code only, matching resource_code or the path code. Oracle-shaped fields are forwarded unchanged."
|
|
},
|
|
"resource_code": {
|
|
"maxLength": 2000,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"task_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"case_id",
|
|
"task_id",
|
|
"hotel_confirmation_id",
|
|
"idempotency_key",
|
|
"expected_hotel_id",
|
|
"expected_scope",
|
|
"resource_code",
|
|
"payload"
|
|
],
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfirmedWriteResult"
|
|
}
|
|
}
|
|
},
|
|
"description": "Upstream accepted and the target code was read back (or its absence verified for deletion). Inspect returned fields for business correctness."
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"CallerAPIKey": []
|
|
}
|
|
],
|
|
"summary": "房型 · 新增",
|
|
"x-capability-group": "configuration.write",
|
|
"x-configuration-scope": "hotel",
|
|
"x-integration": {
|
|
"pattern": "confirmed-write",
|
|
"prerequisites": [
|
|
"Oracle functional area and configuration access",
|
|
"Configured hotel context; chain configuration can affect multiple properties",
|
|
"Confirmation must cover hotel scope; one resource code per request; a chain code can affect multiple hotels"
|
|
],
|
|
"retry": "Reuse the same idempotency key; never blindly retry an unknown result. Replays perform verification reads only."
|
|
},
|
|
"x-oracle-path": "/rm/config/v1/hotels/{hotelId}/roomTypes",
|
|
"x-oracle-source": "https://github.com/oracle/hospitality-api-docs/tree/dd631fbd5d0fce74a7dbdf96b43f07ce587211f2/rest-api-specs/property/v1/rmcfg.json"
|
|
}
|
|
},
|
|
{
|
|
"operation_id": "putRoomClass",
|
|
"method": "PUT",
|
|
"path": "/api/v1/config/rooms/room-classes/{code}",
|
|
"summary": "房型分类 · 更新",
|
|
"capability_group": "configuration.write",
|
|
"integration": {
|
|
"pattern": "confirmed-write",
|
|
"prerequisites": [
|
|
"Oracle functional area and configuration access",
|
|
"Configured hotel context; chain configuration can affect multiple properties",
|
|
"Confirmation must cover hotel scope; one resource code per request; a chain code can affect multiple hotels"
|
|
],
|
|
"retry": "Reuse the same idempotency key; never blindly retry an unknown result. Replays perform verification reads only."
|
|
},
|
|
"query_names": [],
|
|
"contract": {
|
|
"operationId": "putRoomClass",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "code",
|
|
"required": true,
|
|
"schema": {
|
|
"maxLength": 2000,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"case_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"expected_hotel_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"expected_scope": {
|
|
"const": "hotel",
|
|
"type": "string"
|
|
},
|
|
"hotel_confirmation_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"idempotency_key": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"payload": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/rmcfg_roomClassToBeChanged"
|
|
},
|
|
{
|
|
"properties": {
|
|
"roomClass": {
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"roomClass"
|
|
],
|
|
"type": "object"
|
|
}
|
|
],
|
|
"description": "One target code only, matching resource_code or the path code. Oracle-shaped fields are forwarded unchanged."
|
|
},
|
|
"task_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"case_id",
|
|
"task_id",
|
|
"hotel_confirmation_id",
|
|
"idempotency_key",
|
|
"expected_hotel_id",
|
|
"expected_scope",
|
|
"payload"
|
|
],
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfirmedWriteResult"
|
|
}
|
|
}
|
|
},
|
|
"description": "Upstream accepted and the target code was read back (or its absence verified for deletion). Inspect returned fields for business correctness."
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"CallerAPIKey": []
|
|
}
|
|
],
|
|
"summary": "房型分类 · 更新",
|
|
"x-capability-group": "configuration.write",
|
|
"x-configuration-scope": "hotel",
|
|
"x-integration": {
|
|
"pattern": "confirmed-write",
|
|
"prerequisites": [
|
|
"Oracle functional area and configuration access",
|
|
"Configured hotel context; chain configuration can affect multiple properties",
|
|
"Confirmation must cover hotel scope; one resource code per request; a chain code can affect multiple hotels"
|
|
],
|
|
"retry": "Reuse the same idempotency key; never blindly retry an unknown result. Replays perform verification reads only."
|
|
},
|
|
"x-oracle-path": "/rm/config/v1/hotels/{hotelId}/roomClasses/{roomClassId}",
|
|
"x-oracle-source": "https://github.com/oracle/hospitality-api-docs/tree/dd631fbd5d0fce74a7dbdf96b43f07ce587211f2/rest-api-specs/property/v1/rmcfg.json"
|
|
}
|
|
},
|
|
{
|
|
"operation_id": "putRoomTypes",
|
|
"method": "PUT",
|
|
"path": "/api/v1/config/rooms/room-types/{code}",
|
|
"summary": "房型 · 更新",
|
|
"capability_group": "configuration.write",
|
|
"integration": {
|
|
"pattern": "confirmed-write",
|
|
"prerequisites": [
|
|
"Oracle functional area and configuration access",
|
|
"Configured hotel context; chain configuration can affect multiple properties",
|
|
"Confirmation must cover hotel scope; one resource code per request; a chain code can affect multiple hotels"
|
|
],
|
|
"retry": "Reuse the same idempotency key; never blindly retry an unknown result. Replays perform verification reads only."
|
|
},
|
|
"query_names": [],
|
|
"contract": {
|
|
"operationId": "putRoomTypes",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "code",
|
|
"required": true,
|
|
"schema": {
|
|
"maxLength": 2000,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"case_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"expected_hotel_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"expected_scope": {
|
|
"const": "hotel",
|
|
"type": "string"
|
|
},
|
|
"hotel_confirmation_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"idempotency_key": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"payload": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/rmcfg_roomTypesToBeChanged"
|
|
},
|
|
{
|
|
"properties": {
|
|
"roomType": {
|
|
"properties": {
|
|
"hotelId": {
|
|
"description": "Must equal the server-configured hotel.",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"hotelId"
|
|
],
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"roomType"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"roomType": {
|
|
"properties": {
|
|
"roomTypeDetails": {
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"roomTypeDetails"
|
|
],
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"roomType"
|
|
],
|
|
"type": "object"
|
|
}
|
|
],
|
|
"description": "One target code only, matching resource_code or the path code. Oracle-shaped fields are forwarded unchanged."
|
|
},
|
|
"task_id": {
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"case_id",
|
|
"task_id",
|
|
"hotel_confirmation_id",
|
|
"idempotency_key",
|
|
"expected_hotel_id",
|
|
"expected_scope",
|
|
"payload"
|
|
],
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfirmedWriteResult"
|
|
}
|
|
}
|
|
},
|
|
"description": "Upstream accepted and the target code was read back (or its absence verified for deletion). Inspect returned fields for business correctness."
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"CallerAPIKey": []
|
|
}
|
|
],
|
|
"summary": "房型 · 更新",
|
|
"x-capability-group": "configuration.write",
|
|
"x-configuration-scope": "hotel",
|
|
"x-integration": {
|
|
"pattern": "confirmed-write",
|
|
"prerequisites": [
|
|
"Oracle functional area and configuration access",
|
|
"Configured hotel context; chain configuration can affect multiple properties",
|
|
"Confirmation must cover hotel scope; one resource code per request; a chain code can affect multiple hotels"
|
|
],
|
|
"retry": "Reuse the same idempotency key; never blindly retry an unknown result. Replays perform verification reads only."
|
|
},
|
|
"x-oracle-path": "/rm/config/v1/hotels/{hotelId}/roomTypes/{roomTypeId}",
|
|
"x-oracle-source": "https://github.com/oracle/hospitality-api-docs/tree/dd631fbd5d0fce74a7dbdf96b43f07ce587211f2/rest-api-specs/property/v1/rmcfg.json"
|
|
}
|
|
}
|
|
],
|
|
"version": "0.7.0"
|
|
}
|
|
}
|