このページの内容

APIリファレンス:シミュレーション

シミュレーションでは、プロセスモデルに対してWhat-ifシナリオを実行できます。処理時間、リソース配分、到着率を設定し、プロセスの動作を予測できます。

プロセスのシミュレーション一覧

エンドポイント: GET /v1/tenant/{tenantId}/processes/{processId}/simulations

認証: テナント単位のAPIキー · read スコープ

パラメーター:

名前 場所 必須 説明
tenantId string パス はい 形式:uuid
processId string パス はい 形式:uuid
limit integer クエリ いいえ 返す項目の最大数
offset integer クエリ いいえ スキップする項目数

レスポンス(200):

シミュレーション一覧

[
	{
		"id": "00000000-0000-0000-0000-000000000000",
		"displayName": "string",
		"datasetName": "string",
		"startTime": "2024-03-15T16:30:00Z",
		"endTime": "2024-03-15T16:30:00Z",
		"useWarmUp": true
	}
]

エラー:

  • 400 不正なリクエスト:無効なフィルター式、モデルのないプロセス、サポートされていないアップロード形式、必須フィールドの欠落など
  • 401 APIキーがない、無効、無効化済み、または期限切れ
  • 404 リソースが見つかりません

シミュレーションを作成(ID指定時は冪等)

エンドポイント: POST /v1/tenant/{tenantId}/processes/{processId}/simulations

認証: テナント単位のAPIキー · write スコープ

パラメーター:

名前 場所 必須 説明
tenantId string パス はい 形式:uuid
processId string パス はい 形式:uuid

リクエストボディ:

{
	"id": "00000000-0000-0000-0000-000000000000",
	"displayName": "string",
	"datasetName": "string",
	"startTime": "2024-03-15T16:30:00Z",
	"endTime": "2024-03-15T16:30:00Z",
	"useWarmUp": true
}
フィールド 必須 説明
id string いいえ 冪等な再試行に使用する任意のID(UUID必須)
形式:uuid
displayName string いいえ シミュレーション名
デフォルト:New Simulation
datasetName string いいえ シミュレーションを実行するデータセット名
startTime string いいえ シミュレーション開始時刻
形式:date-time
endTime string いいえ シミュレーション終了時刻
形式:date-time
useWarmUp boolean いいえ ウォームアップ期間を破棄するかどうか
デフォルト:false

レスポンス(201):

シミュレーションを作成しました

{
	"simulation": {
		"id": "00000000-0000-0000-0000-000000000000",
		"displayName": "string"
	},
	"message": "string"
}
フィールド 必須 説明
simulation object はい
message string はい

エラー:

  • 400 不正なリクエスト:無効なフィルター式、モデルのないプロセス、サポートされていないアップロード形式、必須フィールドの欠落など
  • 401 APIキーがない、無効、無効化済み、または期限切れ
  • 404 リソースが見つかりません
  • 409 現在の状態とリクエストが競合しています(シート数の制限やIDの再利用など)

要素設定、属性、リソースを含むシミュレーションを取得

エンドポイント: GET /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}

認証: テナント単位のAPIキー · read スコープ

パラメーター:

名前 場所 必須 説明
tenantId string パス はい 形式:uuid
processId string パス はい 形式:uuid
simulationId string パス はい 形式:uuid

レスポンス(200):

シミュレーション詳細

{
	"simulation": {
		"id": "00000000-0000-0000-0000-000000000000",
		"displayName": "string",
		"datasetName": "string",
		"startTime": "2024-03-15T16:30:00Z",
		"endTime": "2024-03-15T16:30:00Z",
		"useWarmUp": true
	},
	"elementSettings": [
		{
			"simulationId": "00000000-0000-0000-0000-000000000000",
			"modelElementId": "00000000-0000-0000-0000-000000000000",
			"settings": {
				"processingTimeDistribution": [
					{
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"distribution": {
							"type": "Fixed",
							"value": 0
						},
						"timeUnit": "seconds",
						"rateUnit": "perTimeSlot"
					}
				],
				"processingTimeUnit": "seconds",
				"updateAttributeRules": [
					{
						"id": "string",
						"attributeId": "00000000-0000-0000-0000-000000000000",
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"newValue": "string",
						"isEnabled": true
					}
				],
				"requiredResources": [
					{
						"resourceId": "00000000-0000-0000-0000-000000000000",
						"amount": 0
					}
				],
				"caseStartsDistribution": [
					{
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"distribution": {
							"type": "Fixed",
							"value": 0
						},
						"timeUnit": "seconds",
						"rateUnit": "perTimeSlot"
					}
				],
				"caseStartsTimeUnit": "perTimeSlot",
				"capacityInterval": "perHour",
				"skipChanceDistribution": [
					{
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"distribution": {
							"type": "Fixed",
							"value": 0
						},
						"timeUnit": "seconds",
						"rateUnit": "perTimeSlot"
					}
				],
				"queueStrategy": "fifo",
				"chanceToTakeDistribution": [
					{
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"distribution": {
							"type": "Fixed",
							"value": 0
						},
						"timeUnit": "seconds",
						"rateUnit": "perTimeSlot"
					}
				]
			}
		}
	],
	"attributes": [
		{
			"id": "00000000-0000-0000-0000-000000000000",
			"simulationId": "00000000-0000-0000-0000-000000000000",
			"displayName": "string",
			"valueDistribution": {
				"type": "Number",
				"numberDistributions": [
					{
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"distribution": {
							"type": "Fixed",
							"value": 0
						},
						"timeUnit": "seconds",
						"rateUnit": "perTimeSlot",
						"id": "string",
						"isEnabled": true,
						"isDefault": true
					}
				],
				"textDistributions": [
					{
						"id": "string",
						"timeslot": {
							"periodicity": "Always"
						},
						"isEnabled": true,
						"isDefault": true,
						"mode": "list",
						"textValues": [
							{
								"id": "string",
								"value": "string",
								"chance": 0
							}
						]
					}
				]
			},
			"simulationAttributeType": "string"
		}
	],
	"resources": [
		{
			"id": "00000000-0000-0000-0000-000000000000",
			"simulationId": "00000000-0000-0000-0000-000000000000",
			"displayName": "string",
			"levelDistribution": [
				{
					"timeslot": {
						"periodicity": "Always"
					},
					"conditions": [
						{
							"type": "Values",
							"attribute": "string",
							"values": [
								"string"
							]
						}
					],
					"distribution": {
						"type": "Fixed",
						"value": 0
					},
					"timeUnit": "seconds",
					"rateUnit": "perTimeSlot"
				}
			],
			"attributeId": "00000000-0000-0000-0000-000000000000"
		}
	]
}
フィールド 必須 説明
simulation object はい シミュレーションヘッダー
elementSettings object[] はい 要素ごとのシミュレーション設定
attributes object[] はい シミュレーション対象の属性
resources object[] はい リソースプール

エラー:

  • 400 不正なリクエスト:無効なフィルター式、モデルのないプロセス、サポートされていないアップロード形式、必須フィールドの欠落など
  • 401 APIキーがない、無効、無効化済み、または期限切れ
  • 404 リソースが見つかりません

シミュレーションを更新(フィールドまたは要素設定)

エンドポイント: PUT /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}

認証: テナント単位のAPIキー · write スコープ

パラメーター:

名前 場所 必須 説明
tenantId string パス はい 形式:uuid
processId string パス はい 形式:uuid
simulationId string パス はい 形式:uuid

リクエストボディ:

{
	"displayName": "string",
	"datasetName": "string",
	"startTime": "2024-03-15T16:30:00Z",
	"endTime": "2024-03-15T16:30:00Z",
	"useWarmUp": true,
	"elementSettings": [
		{
			"modelElementId": "00000000-0000-0000-0000-000000000000",
			"settings": {
				"caseStartsDistribution": [
					{
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"distribution": {
							"type": "Fixed",
							"value": 0
						},
						"timeUnit": "seconds",
						"rateUnit": "perTimeSlot"
					}
				],
				"processingTimeDistribution": [
					{
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"distribution": {
							"type": "Fixed",
							"value": 0
						},
						"timeUnit": "seconds",
						"rateUnit": "perTimeSlot"
					}
				]
			}
		}
	]
}
フィールド 必須 説明
displayName string いいえ シミュレーション名
datasetName string いいえ シミュレーションを実行するデータセット名
startTime string いいえ シミュレーション開始時刻
形式:date-time
endTime string いいえ シミュレーション終了時刻
形式:date-time
useWarmUp boolean いいえ ウォームアップ期間を破棄するかどうか
elementSettings object[] いいえ 要素ごとの設定の上書き

レスポンス(200):

シミュレーションを更新しました

{
	"message": "string"
}
フィールド 必須 説明
message string はい

エラー:

  • 400 不正なリクエスト:無効なフィルター式、モデルのないプロセス、サポートされていないアップロード形式、必須フィールドの欠落など
  • 401 APIキーがない、無効、無効化済み、または期限切れ
  • 404 リソースが見つかりません

シミュレーションを完全削除

エンドポイント: DELETE /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}

認証: テナントスコープのAPIキー · write スコープ

パラメーター:

名前 場所 必須 説明
tenantId string パス はい 形式:uuid
processId string パス はい 形式:uuid
simulationId string パス はい 形式:uuid

レスポンス(200):

シミュレーションを削除しました

{
	"message": "string"
}
フィールド 必須 説明
message string はい

エラー:

  • 400 不正なリクエスト:無効なフィルター式、モデルのないプロセス、サポートされていないアップロード形式、必須フィールドの欠落など
  • 401 APIキーがない、無効、無効化済み、または期限切れ
  • 404 リソースが見つかりません

これらのエンドポイントでは、プロセスモデルに基づいてAIがシミュレーション設定を自動作成します。

AIでシミュレーション設定を作成(非同期:ステータスエンドポイントをポーリング)

エンドポイント: POST /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}/generate-settings

認証: テナントスコープのAPIキー · write スコープ · レート制限2 req/s(バースト4)

パラメーター:

名前 場所 必須 説明
tenantId string パス はい 形式:uuid
processId string パス はい 形式:uuid
simulationId string パス はい 形式:uuid

リクエスト本文:

{
	"processDescription": "string",
	"additionalContext": "string"
}
フィールド 必須 説明
processDescription string いいえ
additionalContext string いいえ

レスポンス(200):

作成開始/結果

{
	"message": "string"
}
フィールド 必須 説明
message string はい

エラー:

  • 400 不正なリクエスト:無効なフィルター式、モデルのないプロセス、サポートされていないアップロード形式、必須フィールドの欠落など
  • 401 APIキーがない、無効、無効化済み、または期限切れ
  • 404 リソースが見つかりません

シミュレーション設定の作成ステータスをポーリング

エンドポイント: GET /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}/generate-settings/status

認証: テナントスコープのAPIキー · write スコープ

パラメーター:

名前 場所 必須 説明
tenantId string パス はい 形式:uuid
processId string パス はい 形式:uuid
simulationId string パス はい 形式:uuid

レスポンス(200):

作成ステータス

{
	"message": "string"
}
フィールド 必須 説明
message string はい

エラー:

  • 400 不正なリクエスト:無効なフィルター式、モデルのないプロセス、サポートされていないアップロード形式、必須フィールドの欠落など
  • 401 APIキーがない、無効、無効化済み、または期限切れ
  • 404 リソースが見つかりません

シミュレーション実行を開始(非同期:結果はプロセスのデータテーブルに格納)

エンドポイント: POST /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}/run

認証: テナントスコープのAPIキー · write スコープ · レート制限5 req/s(バースト10)

パラメーター:

名前 場所 必須 説明
tenantId string パス はい 形式:uuid
processId string パス はい 形式:uuid
simulationId string パス はい 形式:uuid

レスポンス(200):

シミュレーションを開始しました

{
	"message": "string"
}
フィールド 必須 説明
message string はい

エラー:

  • 400 不正なリクエスト:無効なフィルター式、モデルのないプロセス、サポートされていないアップロード形式、必須フィールドの欠落など
  • 401 APIキーがない、無効、無効化済み、または期限切れ
  • 404 リソースが見つかりません

最後のシミュレーション実行のステータスを取得(出力データテーブルから算出)

エンドポイント: GET /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}/run/status

認証: テナントスコープのAPIキー · read スコープ

パラメーター:

名前 場所 必須 説明
tenantId string パス はい 形式:uuid
processId string パス はい 形式:uuid
simulationId string パス はい 形式:uuid

レスポンス(200):

実行ステータス

{
	"state": "notStarted",
	"startedAt": "2024-03-15T16:30:00Z",
	"completedAt": "2024-03-15T16:30:00Z",
	"step": "string",
	"casesSimulated": 0,
	"targetCases": 0,
	"eventsGenerated": 0,
	"errorMessage": "string",
	"simulationId": "00000000-0000-0000-0000-000000000000"
}
フィールド 必須 説明
state notStarted | running | processing | ready | error はい 許可される値:notStartedrunningprocessingreadyerror
startedAt string いいえ 形式:date-time
completedAt string いいえ 形式:date-time
step string いいえ
casesSimulated number いいえ
targetCases number いいえ
eventsGenerated number いいえ
errorMessage string いいえ
simulationId string はい 形式:uuid

エラー:

  • 400 不正なリクエスト:無効なフィルター式、モデルのないプロセス、サポートされていないアップロード形式、必須フィールドの欠落など
  • 401 APIキーがない、無効、無効化済み、または期限切れ
  • 404 リソースが見つかりません