ダイナミック・プライシング
販売者、再販業者、あるいはプログラムで価格設定を引き出したいユーザーとしては、価格設定を動的に取得し、サービスやソフトウェアの本当の価格を提示したり、コスト予測を行ったりしたいと思うかもしれない。 そのためには、グローバル・カタログAPIを活用して、ダイナミックな価格設定を行うことができる。 APIを使用するには、正しい 認証 が必要です。
オファーの特定と地域的利用可能性
この例では、オファーの特定方法と利用可能な地域について説明します。 これを行うには、GC 2011 に API 呼び出しを行い、すべてのオファリングを一覧表示し、結果をフィルタリングして目的のオファリングを特定し、API 呼び出しを行ってオファリングが利用可能な地域を取得します。 特定のプランが利用可能な地域を特定するのであって、すべての地域でサービスが利用可能かどうかを特定するのではないことに注意。
すべてのオファーをリストアップするには、次のコマンドを使用します
curl --request GET
--url `https://globalcatalog.cloud.ibm.com/api/v1?q=kind:service`
--header `accept: application/json`
レスポンスでは、'Power Systems Virtual ServerのサービスIDを識別することができます グループ: 'abd259f0-9990-11e8-acc8-b9f54a8f1661
。
そこで、以下のコマンドを実行して、Power Systems Virtual ServerGroupのプランIDを取得することができます。
curl -X 'GET'
--url 'https://globalcatalog.cloud.ibm.com/api/v1/abd259f0-9990-11e8-acc8-b9f54a8f1661/plan?_offset=0&_limit=50'
-H 'accept: application/json'
以下は、先ほど実行したコマンドに対する応答例である。 resources 配列は、サービス内のすべてのプランを一覧表示します。 配列の各エントリーはプランである。 プランオブジェクトの重要なフィールドは「id
フィールドである。 次のレスポンスでは、「f165dd34-3a40-423b-9d95-e90a23f724dd
」がIDであることがわかる。
{
"offset": 0,
"limit": 50,
"count": 2,
"resource_count": 2,
"first": "https://globalcatalog.cloud.ibm.com/api/v1/abd259f0-9990-11e8-acc8-b9f54a8f1661/plan?languages=en-US%2Cen%3Bq%3D0.9",
"resources": [
{
"_id": "f165dd34-3a40-423b-9d95-e90a23f724dd",
"_rev": "5-3709538cdcff35d2917d56c3cafb1fac",
"active": true,
"catalog_crn": "crn:v1:bluemix:public:globalcatalog::::plan:f165dd34-3a40-423b-9d95-e90a23f724dd",
"children_url": "https://globalcatalog.cloud.ibm.com/api/v1/f165dd34-3a40-423b-9d95-e90a23f724dd/%2A",
"complete": true,
"created": "2019-06-14T22:52:18.378Z",
"disabled": false,
"geo_tags": [
"che01",
"dal10",
"dal12",
"eu-de-1",
"eu-de-2",
"lon04",
"lon06",
"mad02",
"mad04",
"mon01",
"osa21",
"sao01",
"sao04",
"syd04",
"syd05",
"tok04",
"tor01",
"wdc06",
"wdc07",
"us-east",
"us-south"
],
"id": "f165dd34-3a40-423b-9d95-e90a23f724dd",
"images": {
"feature_image": "https://cache.globalcatalog.cloud.ibm.com/api/v1/abd259f0-9990-11e8-acc8-b9f54a8f1661/artifacts/cache/66c89a2644c2ac54745d6ab9ecf4da8e-public/IBM_Power_CloudCatalog%202.svg",
"image": "https://cache.globalcatalog.cloud.ibm.com/api/v1/abd259f0-9990-11e8-acc8-b9f54a8f1661/artifacts/cache/66c89a2644c2ac54745d6ab9ecf4da8e-public/IBM_Power_CloudCatalog%202.svg",
"medium_image": "https://cache.globalcatalog.cloud.ibm.com/api/v1/abd259f0-9990-11e8-acc8-b9f54a8f1661/artifacts/cache/66c89a2644c2ac54745d6ab9ecf4da8e-public/IBM_Power_CloudCatalog%202.svg",
"small_image": "https://cache.globalcatalog.cloud.ibm.com/api/v1/abd259f0-9990-11e8-acc8-b9f54a8f1661/artifacts/cache/66c89a2644c2ac54745d6ab9ecf4da8e-public/IBM_Power_CloudCatalog%202.svg"
},
"kind": "plan",
"metadata": {
"compliance": [
"minisd"
],
"original_name": "power-virtual-server-project",
"other": {
"pricing_schema_url": "https://power-iaas.cloud.ibm.com/cost-estimator"
},
"plan": {
"allow_internal_users": true,
"async_provisioning_supported": true,
"async_unprovisioning_supported": true,
"bindable": false,
"reservable": false,
"service_check_enabled": false,
"single_scope_instance": "",
"test_check_interval": 0
},
"pricing": {
"metrics": null,
"origin": "pricing_catalog",
"starting_price": {},
"type": "Paid",
"url": "https://globalcatalog.cloud.ibm.com/api/v1/f165dd34-3a40-423b-9d95-e90a23f724dd/pricing"
},
"rc_compatible": true,
"service": {
"async_provisioning_supported": true,
"async_unprovisioning_supported": true,
"bindable": false,
"custom_create_page_hybrid_enabled": false,
"extension": null,
"iam_compatible": true,
"parameters": [],
"plan_updateable": true,
"rc_provisionable": true,
"service_check_enabled": false,
"service_key_supported": false,
"state": "",
"test_check_interval": 0,
"type": "",
"unique_api_key": false,
"user_defined_service": null
},
"ui": {
"strings": {
"en": {
"bullets": [
{
"description": "Enables provisioning of Power Virtual Server LPARs in the chosen region."
}
]
}
}
}
},
"name": "power-virtual-server-group",
"overview_ui": {
"en": {
"description": "A Power Systems Virtual Server group for the specified IBM Cloud region.",
"display_name": "Power Systems Virtual Server Group",
"long_description": "A Power Systems Virtual Server group for the specified IBM Cloud region."
}
},
"parent_id": "abd259f0-9990-11e8-acc8-b9f54a8f1661",
"parent_url": "https://globalcatalog.cloud.ibm.com/api/v1/abd259f0-9990-11e8-acc8-b9f54a8f1661",
"pricing_tags": [
"allow_internal_users",
"paid",
"paid_only"
],
"provider": {
"email": "pil@us.ibm.com",
"name": "IBM"
},
"tags": [
"apidocs_enabled",
"beryllium",
"freesia",
"ibm_created",
"rc_compatible"
],
"updated": "2024-03-15T13:14:09.574263813-04:00",
"url": "https://globalcatalog.cloud.ibm.com/api/v1/f165dd34-3a40-423b-9d95-e90a23f724dd?languages=en-US%2Cen%3Bq%3D0.9",
"visibility": {
"restrictions": "public"
}
},
{
"_id": "1112d6a9-71d6-4968-956b-eb3edbf0225b",
"_rev": "22-c4780dfb7c2ca400029754649383507e",
"active": true,
"catalog_crn": "crn:v1:bluemix:public:globalcatalog::::plan:1112d6a9-71d6-4968-956b-eb3edbf0225b",
"children_url": "https://globalcatalog.cloud.ibm.com/api/v1/1112d6a9-71d6-4968-956b-eb3edbf0225b/%2A",
"complete": true,
"created": "2024-02-14T11:00:24.476151306-05:00",
"disabled": false,
"geo_tags": [
"satcon_dal",
"satcon_fra",
"satcon_mad",
"satcon_osa",
"satcon_sao",
"satcon_syd",
"satcon_tok",
"satcon_tor",
"satcon_wdc"
],
"id": "1112d6a9-71d6-4968-956b-eb3edbf0225b",
"images": {
"feature_image": "https://cache.globalcatalog.cloud.ibm.com/api/v1/abd259f0-9990-11e8-acc8-b9f54a8f1661/artifacts/cache/66c89a2644c2ac54745d6ab9ecf4da8e-public/IBM_Power_CloudCatalog%202.svg",
"image": "https://cache.globalcatalog.cloud.ibm.com/api/v1/abd259f0-9990-11e8-acc8-b9f54a8f1661/artifacts/cache/66c89a2644c2ac54745d6ab9ecf4da8e-public/IBM_Power_CloudCatalog%202.svg",
"medium_image": "https://cache.globalcatalog.cloud.ibm.com/api/v1/abd259f0-9990-11e8-acc8-b9f54a8f1661/artifacts/cache/66c89a2644c2ac54745d6ab9ecf4da8e-public/IBM_Power_CloudCatalog%202.svg",
"small_image": "https://cache.globalcatalog.cloud.ibm.com/api/v1/abd259f0-9990-11e8-acc8-b9f54a8f1661/artifacts/cache/66c89a2644c2ac54745d6ab9ecf4da8e-public/IBM_Power_CloudCatalog%202.svg"
},
"kind": "plan",
"metadata": {
"compliance": [
"minisd"
],
"original_name": "power-virtual-server-private-group",
"plan": {
"allow_internal_users": true,
"async_provisioning_supported": false,
"async_unprovisioning_supported": false,
"bindable": false,
"reservable": false,
"service_check_enabled": false,
"single_scope_instance": "",
"test_check_interval": 0
},
"pricing": {
"metrics": null,
"origin": "pricing_catalog",
"starting_price": {},
"type": "free",
"url": "https://globalcatalog.cloud.ibm.com/api/v1/1112d6a9-71d6-4968-956b-eb3edbf0225b/pricing"
},
"rc_compatible": true,
"service": {
"async_provisioning_supported": false,
"async_unprovisioning_supported": false,
"bindable": false,
"custom_create_page_hybrid_enabled": false,
"extension": null,
"iam_compatible": true,
"parameters": [],
"plan_updateable": false,
"rc_provisionable": true,
"service_check_enabled": false,
"service_key_supported": false,
"state": "",
"test_check_interval": 0,
"type": "",
"unique_api_key": false,
"user_defined_service": null
},
"sla": {
"dr": {
"dr": true
}
},
"ui": {
"strings": {
"en": {
"bullets": [
{
"description": "Enables use of Power Virtual Server Private Cloud resources in the chosen satellite location."
}
]
}
}
}
},
"name": "power-virtual-server-private-group",
"overview_ui": {
"en": {
"description": "A Power Systems Virtual Server Private Cloud group for the specified IBM Cloud Satellite location.",
"display_name": "Power Virtual Server Private Cloud Group",
"long_description": "A Power Systems Virtual Server Private Cloud group for the specified IBM Cloud Satellite location."
}
},
"parent_id": "abd259f0-9990-11e8-acc8-b9f54a8f1661",
"parent_url": "https://globalcatalog.cloud.ibm.com/api/v1/abd259f0-9990-11e8-acc8-b9f54a8f1661",
"pricing_tags": [
"free",
"allow_internal_users"
],
"provider": {
"email": "pil@us.ibm.com",
"name": "IBM"
},
"tags": [
"rc_compatible",
"apidocs_enabled",
"compute",
"virtualservers",
"ibm_created",
"satellite_enabled"
],
"updated": "2024-06-20T10:12:47.969618989-04:00",
"url": "https://globalcatalog.cloud.ibm.com/api/v1/1112d6a9-71d6-4968-956b-eb3edbf0225b?languages=en-US%2Cen%3Bq%3D0.9",
"visibility": {
"restrictions": "public"
}
}
]
}
特定の地域で有効なプランの決定
次の例では、特定の地域の有効なプランを検索する方法を説明する。これを行うには、APIコールを行って、指定した地域のオファーの有効なプランのリストを取得し、APIレスポンスを解釈して利用可能なプランを理解する。 詳細はAPIドキュメントをご覧ください:料金プランのデプロイメントを取得する。
curl --request GET
--url 'https://globalcatalog.cloud.ibm.com/api/v1/{id}/pricing/deployment'
--header 'accept: application/json'
この例では、前のステップで見つけたプランIDを「ID
代わりに入力する。
curl --request GET
--url 'https://globalcatalog.cloud.ibm.com/api/v1/f165dd34-3a40-423b-9d95-e90a23f724dd/pricing/deployment'
--header 'accept: application/json'
以下は、最初のメトリックのみをリストした応答例である:
{
"offset":0,
"limit":50,
"count":5,
"resource_count":5,
"resources":[
{
"deployment_id":"f165dd34-3a40-423b-9d95-e90a23f724dd:eu-de-114101",
"deployment_location":"eu-de-1",
"deployment_region":"eu-de-1",
"origin":"pricing_catalog",
"type":"Paid",
"i18n":{
},
"starting_price":{
},
"effective_from":"2024-11-01T00:00:00Z",
"effective_until":"9999-09-30T00:00:00Z",
"metrics":[
{
"part_ref":"",
"metric_id":"ibm-i-rds",
"tier_model":"Linear Tier",
"resource_display_name":"APPLICATION_INSTANCES",
"charge_unit_display_name":"IBM i RDS License/user-hour",
"charge_unit_name":"IBMIRDS_APPLICATION_INSTANCES",
"charge_unit":"Application Instance",
"charge_unit_quantity":1,
"amounts":[
{
"country":"USA",
"currency":"USD",
"prices":[
{
"quantity_tier":1,
"price":0.1808
}
]
},
{
"country":"USD",
"currency":"USD",
"prices":[
{
"quantity_tier":1,
"price":0.1808
}
]
},
{
"country":"CAN",
"currency":"CAD",
"prices":[
{
"quantity_tier":1,
"price":0.24962151999999999
}
]
},
{
"country":"AUS",
"currency":"AUD",
"prices":[
{
"quantity_tier":1,
"price":0.2696696184
}
]
},
{
"country":"ISA",
"currency":"USD",
"prices":[
{
"quantity_tier":1,
"price":0.1808
}
]
},
"usage_cap_qty":0,
"display_cap":0,
"effective_from":"2024-11-01T00:00:00Z",
"effective_until":"9999-12-31T00:00:00Z",
"additional_properties":{
"included_quantities":{
"account":0,
"instance":0
}
}
},
レスポンスのresourcesオブジェクトは、そのプランが利用可能なデプロイメントやロケーションのリストです。 この場合、このプランは全世界で利用できる。 他にも、「us-south
、「us-east
」など、地域に特化した配備もある。
プラン展開がグローバルな場合、特定の地域の価格は以下のAPIを使用して照会できる:
curl --request GET
--url 'https://globalcatalog.cloud.ibm.com/api/v1/{id}:global/pricing?deployment_region={ region_id}'
--header 'accept: application/json'
前のステップで見つけたプランIDを使用する:
curl --request GET
--url 'https://globalcatalog.cloud.ibm.com/api/v1/f165dd34-3a40-423b-9d95-e90a23f724dd:global/pricing?deployment_region={ region_id}'
--header 'accept: application/json'
グローバルに展開され、地域固有の価格設定を持つプランの例として、Cloud Object StorageStandard Planがある。 プランIDは'744bfc56-d12c-4866-88d5-dac9139e0e5d
である。 このプランでは、「eu-de
」に特定の地域を設定している。 この'region_id
と、前のレスポンスの'deployment_locations
配列の'deployment_region
値のいずれかと一致しなければならない。
また、'deployment_regions
オーバーライド変数を使用しないグローバル価格のグローバルプランもある。
以下は、APIエンドポイントを'eu-de
'deployment_region
で使用した例である。
https://globalcatalog.cloud.ibm.com/api/v1/744bfc56-d12c-4866-88d5-dac9139e0e5d:global/pricing?deployment_region=eu-de
以下は、その回答例です
{
"deployment_id": "744bfc56-d12c-4866-88d5-dac9139e0e5d:global",
"deployment_location": "global",
"deployment_region": "eu-de",
"origin": "pricing_catalog",
"type": "paygo",
"url": "https://globalcatalog.cloud.ibm.com/api/v1/744bfc56-d12c-4866-88d5-dac9139e0e5d:global/pricing?deployment_region=eu-de",
"i18n": {},
"starting_price": {},
"effective_from": "2024-09-01T00:00:00Z",
"effective_until": "9999-12-31T00:00:00Z",
"metrics": [
{
"part_ref": "",
"metric_id": "COSVLTBCALL",
"tier_model": "Granular Tier",
"resource_display_name": "Vault Class B calls",
"charge_unit_display_name": "API_CALLS",
"charge_unit_name": "VAULT_CLASS_B_CALLS",
"charge_unit": "API_CALLS",
"charge_unit_quantity": 10000,
"amounts": [
{
"country": "USA",
"currency": "USD",
"prices": [
{
"quantity_tier": 1,
"price": 0.01045
}
]
}
],
"usage_cap_qty": 0,
"display_cap": 0,
"effective_from": "2024-09-01T00:00:00Z",
"effective_until": "9999-12-31T00:00:00Z",
"additional_properties": {}
}
]
}
プランの展開がグローバルでない場合、特定の展開場所の価格は、以下のAPIを使用して照会できる:
curl --request GET
--url 'https://globalcatalog.cloud.ibm.com/api/v1/{id}/pricing'
--header 'accept: application/json'
前のステップで取得したプランIDを使用します
curl --request GET
--url 'https://globalcatalog.cloud.ibm.com/api/v1/f165dd34-3a40-423b-9d95-e90a23f724dd/pricing'
--header 'accept: application/json'
{id}
」はデプロイの「deployment_id
」のIDである。 先に説明したAPIを使用することで、デプロイメントの場所と関連する「deployment_id
」を見つけることができる。
プランID「databases-for-postgresql-standard
」を使って、このシナリオを説明しよう。 サービス'Databases for PostgreSQL、サービスID:'databases-for-postgresql
のプラン。
このプランの配備場所の1つは「au-syd
」で利用可能であり、この場所の「deployment_id
」は「databases-for-postgresql-standard:au-syd
である。
APIコールは次のようになる: https://globalcatalog.cloud.ibm.com/api/v1/databases-for-postgresql-standard:au-syd
.
以下はAPIコールのレスポンスである:
{
"deployment_id": "databases-for-postgresql-standard:au-syd",
"deployment_location": "au-syd",
"deployment_region": "au-syd",
"origin": "pricing_catalog",
"type": "paygo",
"url": "https://globalcatalog.cloud.ibm.com/api/v1/databases-for-postgresql-standard:au-syd/pricing",
"i18n": {},
"starting_price": {},
"effective_from": "2024-09-01T00:00:00Z",
"effective_until": "9999-12-31T00:00:00Z",
"metrics": [
{
"part_ref": "",
"metric_id": "databases-for-postgresql-cpu",
"tier_model": "Linear Tier",
"resource_display_name": "Databases for PostgreSQL CPU",
"charge_unit_display_name": "CPU",
"charge_unit_name": "VIRTUAL_PROCESSOR_CORES",
"charge_unit": "Virtual Processor Core-Hour",
"charge_unit_quantity": 1,
"amounts": [
{
"country": "USA",
"currency": "USD",
"prices": [
{
"quantity_tier": 1,
"price": 32.342
}
]
}
],
"usage_cap_qty": 0,
"display_cap": 0,
"effective_from": "2024-09-01T00:00:00Z",
"effective_until": "9999-12-31T00:00:00Z"
}
]
}
特定のプランまたは地域に有効な測定基準を特定する
以下の情報は、特定の計画や地域に有効な指標を特定するためのものである。 メトリックスとは、価格設定のための利用を決定するリソースやオペレーションの仕様のことである。 APIコールを行い、指定された地域の指定されたプランの有効なメトリクスを一覧表示し、そのレスポンスを解析してメトリクスの詳細を取得します。
次の例は、Power Systems Virtual ServerGroup サービスの API 呼び出しを示しています。 前に見つけたように、IDは'f165dd34-3a40-423b-9d95-e90a23f724dd
である。
curl --request GET
--url 'https://globalcatalog.cloud.ibm.com/api/v1/f165dd34-3a40-423b-9d95-e90a23f724dd/pricing/deployment'
--header 'accept: application/json'
以下は回答例である:
{
"offset": 0,
"limit": 1,
"count": 21,
"resource_count": 1,
"resources": [
{
"deployment_id": "f165dd34-3a40-423b-9d95-e90a23f724dd:che0142579",
"deployment_location": "che01",
"deployment_region": "che01",
"origin": "pricing_catalog",
"type": "Paid",
"i18n": {},
"starting_price": {},
"effective_from": "2024-07-01T00:00:00Z",
"effective_until": "9999-09-30T00:00:00Z",
"metrics": [
{
"part_ref": "",
"metric_id": "tier3-storage",
"tier_model": "Linear Tier",
"resource_display_name": "HDD Storage Gigabyte-Hours",
"charge_unit_display_name": "HDD Storage Gigabyte-Hour",
"charge_unit_name": "TIER_THREE_STORAGE_GIGABYTE_HOURS",
"charge_unit": "HDD Storage Gigabyte-Hour",
"charge_unit_quantity": 1,
"amounts": [
{
"country": "USA",
"currency": "USD",
"prices": [
{
"quantity_tier": 1,
"price": 0.000171798
}
]
}
],
"usage_cap_qty": 0,
"display_cap": 0,
"effective_from": "2024-07-01T00:00:00Z",
"effective_until": "9999-12-31T00:00:00Z"
}
]
}
]
}
デプロイメント用のリソース・アレイを検査する。 各配備には、プランが利用可能な特定の場所または地域を指す「deployment_location
フィールドがあります。
以下の表に、レスポンス・ボディのフィールドとその説明を示す。 詳細については、グローバルカタログAPIのドキュメント を参照してください。
JSONフィールド | 説明 |
---|---|
deployment_id |
この価格設定が適用されたディプロイメント・オブジェクトID。 |
deployment_location |
この価格が適用される配備場所。 che01 ように。 |
deployment_region |
これは、展開プランがグローバル展開のプラン価格を取得するリージョンです。 この例では、 che01 です。 |
origin |
価格データの出所 この例では'pricing_catalog で、グローバルカタログUIのプライシングソースで指定されている。 |
type |
プランの種類 有効な値は、free 、trial 、paygo 、paid 、bluemix-subscription 、およびibm-subscription です。 詳しくは、アカウント・タイプを参照してください。 |
url |
アーティファクトのURL。 これは、価格を取得するために使用できるURLです。 |
starting_price |
プランごとの開始価格情報。 |
effective_from |
利用可能な価格の開始日。 |
effective_until |
利用可能な価格の終了日。 |
metrics |
価格設定のための使用量を決定するリソースまたはオペレーションの仕様。 |
part_ref |
IBMが割り当てたメートル法の部品参照番号。 |
metric_id |
メトリックIDまたは部品番号。 |
tier_model |
ティア価格モデル「[1] 。 指定可能な値は「Simple Tier 、「Graduated Tier 、「Linear Tier 、「Block (Step) Tier 。 この例では'Linear Tier である。
詳しくは、課金方法を参照してください。 |
resource_display_name |
リソースの名前を表示します。 これがカタログに表示される指標である。 |
charge_unit_display_name |
チャージユニットの表示名。 charge_unit ユニットフレンドリーな表示名。 |
charge_unit_name |
チャージユニットに割り当てられた名前。 これは、指標の使用量を測定するために使用されるIDである。 |
charge_unit |
これが充電ユニット。 この例では'HDD Storage Gigabyte-Hour である。 |
charge_unit_quantity |
充電可能な単位量。 回答例では、チャージ単位は1であり、これは1ギガバイト使用するごとにチャージされることを意味する。 |
amounts |
国別、通貨別のメートル法ごとの価格。 |
country |
このオブジェクトの価格が適用される国。 |
currency |
物価の通貨。 |
quantity_tier |
そのティアでのその価格での利用レベル。 |
price |
このティアのユニットあたりの価格。 |
included_quanitities |
空きオブジェクトの総数。 |
価格設定APIの結果の解釈
以下の表では、リニア・ティアの価格設定の例を示している。 リニアティアの場合、リソース単価と利用数量を掛け合わせたものが総額となる。
次の表は、累進階層の価格モデルに基づくプランの場合にユーザーが支払う金額について説明しています。
項目の数量 | 料金計算 | 合計額 |
---|---|---|
500 | 500 ×0.000171798= .0859 | .0859ドル |
2000 | 2000 x0.000171798= .344 | 344米ドル |
10000 | 10000 x0.000171798=1.72 | 1.72ドル |
-
段階的価格設定では、実行時間とサービス利用量に応じてお支払いいただきます。 しかし、段階的な課金では、さらに価格レベルが追加され、多くの場合、消費量の多い段階に対して製品の割引料金が提供される。 段階的な価格設定は、シンプル、段階的、直線的、またはブロックで提供されます。 ↩︎