swagger.yaml
À propos du fichier
- Type de fichier
- Fichier YAML de 25 Ko (text/plain)
- Confidentialité
- Fichier public, envoyé le 9 juillet 2018 à 11:58, depuis l'adresse IP 195.101.x.x (France)
- Sécurité
- Ne contient aucun Virus ou Malware connus - Dernière vérification: 3 jours
- Statistiques
- La présente page de téléchargement a été vue 468 fois depuis l'envoi du fichier
- Page de téléchargement
-
Aperçu du fichier
swagger: '2.0'
host: 'api.staging.clubmed.com'
basePath: /
schemes:
- https
info:
title: ClubMed Developers
version: 0.1252.0
tags: []
paths:
/v1/products:
get:
summary: Provides the list of products with their key information
operationId: getV1Products
description: >-
# Products
## Seasons
Club Med have some mountain resort which are open during summer and
winter.
Those resort provide totally different services, therefore there is a
WINTER product and SUMMER product.
Example:
* Punta Cana is a permanent resort, it has one product_id: PCAC
* Chamonix is open during the winter and the summer, it has two
product_id: CHAC_WINTER and CHAC_SUMMER.
## Prices
The prices are the best prices available.
## Products Pagination
The pagination is not activated by default.
# Use of the Pagination
## Request
You can require a paginated result with two optional parameters, to be
passed in the query string:
* **`limit`**: items per page. For example, if `limit=10`, any call
result will contain an array of at most 10 items.
* **`page`**: the page you want to reach. By default, `page=1` and you
get the first items. If there are more than `limit` items, you may have
to repeat the call for pages 2, 3, etc.
Depending on the endpoint, pagination may be activated by default or
not, with a default `limit` parameter.
## Response
If the response is paginated, a specific HTTP status code will be sent:
* Status Code = `206 Partial Content`
The response headers will contain metadata describing the result
pagination:
* Header **`Accept-Ranges`** : the type of the paginated items (example:
products)
* Header **`Content-Range`** : the range of paginated items for the
current response, on format "first-last/total". Example: 0-9/256 =>
items 0 to 9 over a total of 256
* Header **`Link`** : contains the links allowing to navigate to other
pages of the same request, typed by the `rel` attribute: self, prev,
next, first, last
```
Link: <http://...?limit=10&page=2>; rel="self"
Link: <http://...?limit=10&page=1>; rel="prev"
Link: <http://...?limit=10&page=3>; rel="next"
Link: <http://...?limit=10&page=1>; rel="first"
Link: <http://...?limit=10&page=25>; rel="last"
```
The client will have to iterate over the pages, sending the same request
with an increased `page` parameter (or following the `next` Link), in
order to fetch the complete result.
The `Content-Range` header, or the lack of the `next` Link, indicates
that the last page is reached.
parameters:
- type: string
description: 'Language/Country. Ex: "en-US", "fr-FR", "ja-JP"...'
name: accept-language
in: header
required: true
- type: string
description: Api_key provided by ClubMed API team
name: api_key
in: query
required: false
- type: array
description: >-
string composed of a field name (can be a path), a comparison
operator (>, >=, <=, <, ==, !=) and a value. Logical operator AND
applies between filters
x-constraint:
single: true
items:
type: string
pattern: '/[A-Za-z0-9.[\]]+(>|>=|<=|<|==|!=).+/'
collectionFormat: multi
name: filter
in: query
required: false
- type: integer
description: Maximum rows count per page
minimum: 1
maximum: 200
name: limit
in: query
- type: integer
description: 'Requested page number, starting from 1 (default: 1)'
minimum: 1
name: page
in: query
tags:
- product information
responses:
'200':
description: >-
List of products for a locale.<br> The prices are for the entire
season
schema:
$ref: '#/definitions/product_list_v1'
'206':
description: partial_content
'403':
description: forbidden
'416':
description: Requested range not satisfiable
'500':
description: internal_server_error
'/v1/products/{product_id}':
get:
summary: Provides detailed information regarding a product
operationId: getV1ProductsProduct_id
description: The prices are the best prices available
parameters:
- type: string
description: 'Language/Country. Ex: "en-US", "fr-FR", "ja-JP"...'
name: accept-language
in: header
required: true
- type: string
description: a product_id from v1/products resource
name: product_id
in: path
required: true
- type: string
description: Api_key provided by ClubMed API team
name: api_key
in: query
required: false
tags:
- product information
responses:
'200':
schema:
$ref: '#/definitions/product_v1'
description: Successful
'403':
description: forbidden
'404':
description: not_found
'500':
description: internal_server_error
definitions:
product_category_v1:
type: object
properties:
id:
type: string
description: product category id
example: product_type_sun
label:
type: string
description: >-
name of the product category. The category give the segmentation
beetween our product (ex: Sun, Snow, Montain in the summer...)
example: Village soleil
surroundings_images:
type: array
items:
type: string
description: product surroundings images
example: 'http:myresortsurroundingpicture'
country_v1:
type: object
properties:
id:
type: string
description: ISO 2 country code
example: FR
label:
type: string
description: country label
example: France
description:
type: string
description: country description
example: |-
France in brief
- Surface area: 632,834 sq km
- Capital: Paris
- Official language: French
- Currency: the Euro.
required:
- id
- label
countries_v1:
type: array
items:
$ref: '#/definitions/country_v1'
destination_light_v1:
type: object
properties:
geographical_area:
type: string
description: product geographical area
example: Alps
surroundings_images:
$ref: '#/definitions/surroundings_images'
countries:
$ref: '#/definitions/countries_v1'
comfort_v1:
type: object
properties:
level:
type: number
description: comfort grade level
example: 4
label:
type: string
description: comfort grade level label
example: 4 tridents
departureDetails:
type: object
properties:
country:
type: string
description: departure country label
example: Guadeloupe
city:
type: string
description: departure city label
example: Guadeloupe
date:
type: string
format: date
description: departure date
example: '20180102'
Duration:
type: object
description: information regarding a tour or cruise arrival
properties:
in_nights:
type: number
description: duration in nights
example: 8
in_days:
type: number
description: duration in days
example: 9
required:
- in_nights
- in_days
initial_price_v1:
type: object
description: 'Initial prices for the given conditions, without any discount.'
properties:
per_trip:
type: number
description: >-
prices for all the stay without any discounts, according to terms and
conditions
example: 975
per_trip_with_fees:
type: number
description: >-
prices for all the stay with fees without any discounts, according to
terms and conditions
example: 1002.5
per_night:
type: number
description: >-
prices by night without any discounts, according to terms and
conditions
example: 140
per_night_with_fees:
type: number
description: >-
prices by night with fees without any discounts, according to terms
and conditions
example: 144
best_price_v1:
type: object
description: Best prices for the given conditions.
properties:
per_trip:
type: number
description: >-
minimum price for all the stay for this product, according to terms
and conditions
example: 824
per_trip_with_fees:
type: number
description: >-
minimum price for all the stay with fees for this product, according
to terms and conditions
example: 851.5
per_night:
type: number
description: >-
minimum price by night for this product, according to terms and
conditions
example: 118
per_night_with_fees:
type: number
description: >-
minimum price by night with fees for this product, according to terms
and conditions
example: 122
fee_v1:
type: object
properties:
per_trip:
type: number
description: fee amounts for the total stay
example: 27.5
per_night:
type: number
description: fee amounts by night
example: 4
accomodation:
type: object
properties:
id:
type: string
description: accommodation included for the price id
example: C
label:
type: string
description: accommodation included for the price label
example: Club Room
departure_city_v1:
type: object
properties:
id:
type: string
description: 'departure city id, if any transportation'
example: PAR
label:
type: string
description: 'departure city label, if any transportation'
example: Paris
departure_location_v1:
type: object
properties:
id:
type: string
description: 'international code if relevant (airport, train station, harbour...)'
example: CDG
label:
type: string
description: 'label of the departure location (ex: label of the departure airport)'
example: Charles de Gaulle airport
terms_and_condition_v1:
type: object
properties:
price_per:
type: string
description: 'type of price. (ADULT, or ROOM)'
example: ADULT
enum:
- ADULT
- ROOM
package:
type: string
description: package in which the price is applied
example: ALL_INCLUSIVE
departure_date:
type: string
description: >-
date of the journey beginning. If relevant, date of the transportation
departure
example: '20171115'
arrival_date:
type: string
description: 'date of the journey ending. If any transportation, date of arrival'
example: '20171115'
stay_duration:
type: number
description: 'duration of the stay in days, without transportation'
example: 7
total_duration:
type: number
description: 'trip duration in days, including transportation if any'
example: 7
number_of_rooms_available_for_this_comfort:
type: number
description: refreshed every 24 hours
example: 2
number_of_adults:
type: number
description: number of adults used to calculate the price
example: 2
accomodation:
$ref: '#/definitions/accomodation'
departure_city:
$ref: '#/definitions/departure_city_v1'
departure_location:
$ref: '#/definitions/departure_location_v1'
term_and_conditions_v1:
type: object
properties:
initial_price:
$ref: '#/definitions/initial_price_v1'
best_price:
$ref: '#/definitions/best_price_v1'
fee:
$ref: '#/definitions/fee_v1'
currency:
type: string
example: EUR
terms_and_conditions:
$ref: '#/definitions/terms_and_condition_v1'
season_v1:
type: array
description: opening seasons (SUMMER and/or WINTER)
items:
type: string
example: WINTER
enum:
- WINTER
- SUMMER
range_v1:
type: object
description: range for a tour
properties:
id:
type: string
description: range unique id
example: range_escapade
label:
type: string
description: range label
example: Escapade
required:
- id
- label
ProductV1AreaComfort:
type: object
properties:
level:
type: integer
description: comfort grade level
example: 5
x-constraint:
positive: true
label:
type: string
description: comfort grade level label
example: 5 tridents
ProductV1Area:
type: object
properties:
id:
type: string
description: id of the area
example: area_comfort_level_5_tridents
label:
type: string
description: label of the area
example: 5 tridents area
comfort:
$ref: '#/definitions/ProductV1AreaComfort'
required:
- id
- label
ProductV1Areas:
type: array
items:
$ref: '#/definitions/ProductV1Area'
product_summary_v1:
type: object
properties:
id:
type: string
description: Club Med product unique id
example: CHAC_WINTER
category:
$ref: '#/definitions/product_category_v1'
sibling_id:
type: string
description: 'id of the sibling product open another season, if relevant'
example: CHAC_SUMMER
seo_description:
type: string
description: description to be used for seo
example: >-
Enjoy a luxury all-inclusive ski holiday in our France resort. For ski
holidays, activity holidays and spa holidays, our Chamonix resort has
it all.
map:
type: string
description: map for the product
example: 'http://mymapsurl'
resort_id:
type: string
description: 'resort id, deprecated'
example: CHAC
title:
type: string
description: product title
example: Chamonix Mont-Blanc
full_title:
type: string
description: product full title to be used outside Club Med apps
example: Clubmed Chamonix Mont-Blanc
opening_status:
type: string
description: >-
commercial status indicating if the product is OPEN, CLOSED or
NOT_YET_OPEN
example: OPEN
enum:
- OPEN
- CLOSED
- NOT_YET_OPEN
destination:
$ref: '#/definitions/destination_light_v1'
comfort:
$ref: '#/definitions/comfort_v1'
type:
type: string
description: type of product
example: VILLAGE
enum:
- CRUISE
- TOUR
- JOYVIEW
- VILLAGE
- VILLA
description_title:
type: string
description: description headline"
example: 'A stay at Chamonix, to enjoy the elegance of a legendary ski resort'
adult_only:
type: boolean
description: '"true" if the product is forbidden to children.'
example: false
departure_details:
$ref: '#/definitions/departureDetails'
duration:
$ref: '#/definitions/Duration'
immersive_image:
type: string
description: product representative image
example: 'http://mypicture'
price:
$ref: '#/definitions/term_and_conditions_v1'
seasons:
$ref: '#/definitions/season_v1'
min_authorized_age_in_months:
type: number
description: customer minimum age welcomed in the product
example: 24
minimum: 0
range:
$ref: '#/definitions/range_v1'
areas:
$ref: '#/definitions/ProductV1Areas'
required:
- id
- resort_id
- title
- full_title
- opening_status
- adult_only
product_list_v1:
type: array
description: List of products for a locale.<br> The prices are for the entire season
items:
$ref: '#/definitions/product_summary_v1'
product_strengths_v1:
type: array
description: strengths for the product
items:
type: string
example: >-
Recovering from your exertions in the pool or at Club Med Spa by CINQ
MONDES
bars_images_v1:
type: array
items:
type: string
example: 'http://image.jpg'
bars_descriptions_v1:
type: object
properties:
extra:
type: string
description: description of bar extra costs in an all inclusive package
example: >-
Champagnes, VSOP and XO spirits, bottled and canned drinks are
available from vending machines...
included:
type: string
description: description of the all inclusive package advantages at the bar
example: >-
Drinks served by the glass and at the bar only: water, fruit juices
and sodas, hot drinks and cocktails with and without alcohol...
bars_introduction_v1:
type: object
properties:
description:
type: string
description: global description of bars for this product
example: Relax in one of our bar...
images:
$ref: '#/definitions/bars_images_v1'
all_inclusive_description:
$ref: '#/definitions/bars_descriptions_v1'
restaurants_introduction_v1:
type: object
properties:
description:
type: string
description: global description of restaurants for this product
example: >-
Each country has its own gastronomy, its own culinary art with its
specific flavours and ingredients.
images:
$ref: '#/definitions/bars_images_v1'
accommodations_introduction_v1:
type: object
properties:
description:
type: string
description: global description of restaurants for this product
example: >-
The Resort has 249 rooms in a hotel with several wings, less than 5
minutes walking distance from the centre of Chamonix...
images:
$ref: '#/definitions/bars_images_v1'
rooms_count:
type: number
description: number of rooms in the product
example: '249'
arrival_details:
type: object
properties:
country:
type: string
description: arrival country label
example: Guadeloupe
city:
type: string
description: arrival city label
example: Guadeloupe
date:
type: string
format: date
description: arrival date
example: '20180102'
KeyPointsList:
type: array
description: list of the product key points
items:
type: string
description: a product key point
example: 24 participants max.
Model_1:
type: object
properties:
id:
type: string
example: PCAC
required:
- id
V1RelatedProductsDetail:
type: array
description: list of products for before/during/After trip booking
items:
$ref: '#/definitions/Model_1'
LinkModel:
type: object
properties:
rel:
type: string
description: Name of the relationship
example: self
method:
type: string
description: HTTP method to use
example: GET
href:
type: string
description: Link to the resource
example: 'https://api.clubmed.com/products'
related_links:
type: array
description: meta data (linked information) about the product
items:
$ref: '#/definitions/LinkModel'
product_v1:
type: object
properties:
id:
type: string
description: Club Med product unique id
example: CHAC_WINTER
category:
$ref: '#/definitions/product_category_v1'
sibling_id:
type: string
description: 'id of the sibling product open another season, if relevant'
example: CHAC_SUMMER
seo_description:
type: string
description: description to be used for seo
example: >-
Enjoy a luxury all-inclusive ski holiday in our France resort. For ski
holidays, activity holidays and spa holidays, our Chamonix resort has
it all.
map:
type: string
description: map for the product
example: 'http://mymapsurl'
resort_id:
type: string
description: 'resort id, deprecated'
example: CHAC
title:
type: string
description: product title
example: Chamonix Mont-Blanc
full_title:
type: string
description: product full title to be used outside Club Med apps
example: Clubmed Chamonix Mont-Blanc
opening_status:
type: string
description: >-
commercial status indicating if the product is OPEN, CLOSED or
NOT_YET_OPEN
example: OPEN
enum:
- OPEN
- CLOSED
- NOT_YET_OPEN
destination:
$ref: '#/definitions/destination_light_v1'
comfort:
$ref: '#/definitions/comfort_v1'
type:
type: string
description: type of product
example: VILLAGE
enum:
- CRUISE
- TOUR
- JOYVIEW
- VILLAGE
- VILLA
description_title:
type: string
description: description headline"
example: 'A stay at Chamonix, to enjoy the elegance of a legendary ski resort'
adult_only:
type: boolean
description: '"true" if the product is forbidden to children.'
example: false
immersive_image:
type: string
description: product representative image
example: 'http://mypicture'
price:
$ref: '#/definitions/term_and_conditions_v1'
seasons:
$ref: '#/definitions/season_v1'
min_authorized_age_in_months:
type: number
description: customer minimum age welcomed in the product
example: 24
minimum: 0
range:
$ref: '#/definitions/range_v1'
description_1:
type: string
description: main product description
example: >-
Skiing in Chamonix means the unique pleasure of discovering a
legendary resort, a true pioneer in the history of skiing, with all
the charm this legendary name conjures up...
description_2:
type: string
description: secondary product description
example: >-
A ski holiday in Chamonix is the chance to enjoy one of the world's
most legendary ski resorts with a fabulous view of Mont Blanc...
strengths:
$ref: '#/definitions/product_strengths_v1'
site_surface_area_in_ha:
type: number
description: product total surface area in hectares
example: 150
bars_introduction:
$ref: '#/definitions/bars_introduction_v1'
restaurants_introduction:
$ref: '#/definitions/restaurants_introduction_v1'
accommodations_introduction:
$ref: '#/definitions/accommodations_introduction_v1'
departure_details:
$ref: '#/definitions/departureDetails'
arrival_details:
$ref: '#/definitions/arrival_details'
fact_sheet_url:
type: string
description: link to display the product fact sheet
example: 'https://ns.clubmed.com/icp/factsheet/Factsheet.pdf'
x-format:
uri: true
duration:
$ref: '#/definitions/Duration'
key_points:
$ref: '#/definitions/KeyPointsList'
areas:
$ref: '#/definitions/ProductV1Areas'
related_products:
$ref: '#/definitions/V1RelatedProductsDetail'
_links:
$ref: '#/definitions/related_links'
required:
- id
- resort_id
- title
- full_title
- opening_status
- adult_only
- key_points
Partager le fichier swagger.yaml sur le Web et les réseaux sociaux:
Télécharger le fichier swagger.yaml