Nesta página

Referência da API: Simulações

As simulações permitem executar cenários hipotéticos nos seus modelos de processo. Você pode configurar tempos de processamento, alocação de recursos e taxas de chegada para prever o comportamento do processo.

Listar simulações de um processo

Endpoint: GET /v1/tenant/{tenantId}/processes/{processId}/simulations

Autenticação: Chave de API com escopo do ambiente · escopo read

Parâmetros:

Nome Tipo Localização Obrigatório Descrição
tenantId string path Sim Formato: uuid
processId string path Sim Formato: uuid
limit integer query Não Número máximo de itens a retornar
offset integer query Não Número de itens a ignorar

Resposta (200):

Lista de simulações

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

Erros:

  • 400 Solicitação inválida: por exemplo, uma expressão de filtro inválida, um processo sem modelo, um tipo de upload não compatível ou um campo obrigatório ausente
  • 401 Chave de API ausente, inválida, desativada ou expirada
  • 404 Recurso não encontrado

Criar uma simulação (idempotente quando um ID é informado)

Endpoint: POST /v1/tenant/{tenantId}/processes/{processId}/simulations

Autenticação: Chave de API com escopo do ambiente · escopo write

Parâmetros:

Nome Tipo Localização Obrigatório Descrição
tenantId string path Sim Formato: uuid
processId string path Sim Formato: uuid

Corpo da solicitação:

{
	"id": "00000000-0000-0000-0000-000000000000",
	"displayName": "string",
	"datasetName": "string",
	"startTime": "2024-03-15T16:30:00Z",
	"endTime": "2024-03-15T16:30:00Z",
	"useWarmUp": true
}
Campo Tipo Obrigatório Descrição
id string Não ID opcional para novas tentativas idempotentes (deve ser um UUID)
Formato: uuid
displayName string Não Nome da simulação
Padrão: New Simulation
datasetName string Não Nome do conjunto de dados em que a simulação é executada
startTime string Não Hora de início da simulação
Formato: date-time
endTime string Não Hora de término da simulação
Formato: date-time
useWarmUp boolean Não Indica se o período de aquecimento deve ser descartado
Padrão: false

Resposta (201):

Simulação criada

{
	"simulation": {
		"id": "00000000-0000-0000-0000-000000000000",
		"displayName": "string"
	},
	"message": "string"
}
Campo Tipo Obrigatório Descrição
simulation object Sim
message string Sim

Erros:

  • 400 Solicitação inválida: por exemplo, uma expressão de filtro inválida, um processo sem modelo, um tipo de upload não compatível ou um campo obrigatório ausente
  • 401 Chave de API ausente, inválida, desativada ou expirada
  • 404 Recurso não encontrado
  • 409 A solicitação entra em conflito com o estado atual (por exemplo, uma restrição de licença ou um ID reutilizado)

Obter uma simulação com as configurações dos elementos, atributos e recursos

Endpoint: GET /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}

Autenticação: Chave de API com escopo do ambiente · escopo read

Parâmetros:

Nome Tipo Localização Obrigatório Descrição
tenantId string path Sim Formato: uuid
processId string path Sim Formato: uuid
simulationId string path Sim Formato: uuid

Resposta (200):

Detalhes da simulação

{
	"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"
		}
	]
}
Campo Tipo Obrigatório Descrição
simulation object Sim Cabeçalho da simulação
elementSettings object[] Sim Configurações da simulação por elemento
attributes object[] Sim Atributos simulados
resources object[] Sim Pools de recursos

Erros:

  • 400 Solicitação inválida: por exemplo, uma expressão de filtro inválida, um processo sem modelo, um tipo de upload não compatível ou um campo obrigatório ausente
  • 401 Chave de API ausente, inválida, desativada ou expirada
  • 404 Recurso não encontrado

Atualizar uma simulação (campos e/ou configurações dos elementos)

Endpoint: PUT /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}

Autenticação: Chave de API com escopo do ambiente · escopo write

Parâmetros:

Nome Tipo Localização Obrigatório Descrição
tenantId string path Sim Formato: uuid
processId string path Sim Formato: uuid
simulationId string path Sim Formato: uuid

Corpo da solicitação:

{
	"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"
					}
				]
			}
		}
	]
}
Campo Tipo Obrigatório Descrição
displayName string Não Nome da simulação
datasetName string Não Nome do conjunto de dados em que a simulação é executada
startTime string Não Hora de início da simulação
Formato: date-time
endTime string Não Hora de término da simulação
Formato: date-time
useWarmUp boolean Não Indica se o período de aquecimento deve ser descartado
elementSettings object[] Não Substituições das configurações por elemento

Resposta (200):

Simulação atualizada

{
	"message": "string"
}
Campo Tipo Obrigatório Descrição
message string Sim

Erros:

  • 400 Solicitação inválida: por exemplo, uma expressão de filtro inválida, um processo sem modelo, um tipo de upload não compatível ou um campo obrigatório ausente
  • 401 Chave de API ausente, inválida, desativada ou expirada
  • 404 Recurso não encontrado

Excluir permanentemente uma simulação

Endpoint: DELETE /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}

Autenticação: Chave de API com escopo de ambiente · write escopo

Parâmetros:

Nome Tipo Localização Obrigatório Descrição
tenantId string caminho Sim Formato: uuid
processId string caminho Sim Formato: uuid
simulationId string caminho Sim Formato: uuid

Resposta (200):

Simulação excluída

{
	"message": "string"
}
Campo Tipo Obrigatório Descrição
message string Sim

Erros:

  • 400 Solicitação inválida: por exemplo, uma expressão de filtro inválida, um processo sem modelo, um tipo de upload não compatível ou um campo obrigatório ausente
  • 401 Chave de API ausente, inválida, desativada ou expirada
  • 404 Recurso não encontrado

Esses endpoints usam IA para gerar automaticamente as configurações de simulação com base no modelo do processo.

Gerar configurações de simulação com IA (assíncrono; consulte o endpoint de status)

Endpoint: POST /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}/generate-settings

Autenticação: Chave de API com escopo de ambiente · write escopo · limite de taxa de 2 req/s (rajada de 4)

Parâmetros:

Nome Tipo Localização Obrigatório Descrição
tenantId string caminho Sim Formato: uuid
processId string caminho Sim Formato: uuid
simulationId string caminho Sim Formato: uuid

Corpo da solicitação:

{
	"processDescription": "string",
	"additionalContext": "string"
}
Campo Tipo Obrigatório Descrição
processDescription string Não
additionalContext string Não

Resposta (200):

Geração iniciada / resultado

{
	"message": "string"
}
Campo Tipo Obrigatório Descrição
message string Sim

Erros:

  • 400 Solicitação inválida: por exemplo, uma expressão de filtro inválida, um processo sem modelo, um tipo de upload não compatível ou um campo obrigatório ausente
  • 401 Chave de API ausente, inválida, desativada ou expirada
  • 404 Recurso não encontrado

Consultar o status da geração das configurações de simulação

Endpoint: GET /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}/generate-settings/status

Autenticação: Chave de API com escopo de ambiente · write escopo

Parâmetros:

Nome Tipo Localização Obrigatório Descrição
tenantId string caminho Sim Formato: uuid
processId string caminho Sim Formato: uuid
simulationId string caminho Sim Formato: uuid

Resposta (200):

Status da geração

{
	"message": "string"
}
Campo Tipo Obrigatório Descrição
message string Sim

Erros:

  • 400 Solicitação inválida: por exemplo, uma expressão de filtro inválida, um processo sem modelo, um tipo de upload não compatível ou um campo obrigatório ausente
  • 401 Chave de API ausente, inválida, desativada ou expirada
  • 404 Recurso não encontrado

Iniciar uma execução de simulação (assíncrona; os resultados são gravados nas tabelas de dados do processo)

Endpoint: POST /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}/run

Autenticação: Chave de API com escopo de ambiente · write escopo · limite de taxa de 5 req/s (rajada de 10)

Parâmetros:

Nome Tipo Localização Obrigatório Descrição
tenantId string caminho Sim Formato: uuid
processId string caminho Sim Formato: uuid
simulationId string caminho Sim Formato: uuid

Resposta (200):

Simulação iniciada

{
	"message": "string"
}
Campo Tipo Obrigatório Descrição
message string Sim

Erros:

  • 400 Solicitação inválida: por exemplo, uma expressão de filtro inválida, um processo sem modelo, um tipo de upload não compatível ou um campo obrigatório ausente
  • 401 Chave de API ausente, inválida, desativada ou expirada
  • 404 Recurso não encontrado

Obter o status da última execução de simulação (derivado da tabela de dados de saída)

Endpoint: GET /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}/run/status

Autenticação: Chave de API com escopo de ambiente · read escopo

Parâmetros:

Nome Tipo Localização Obrigatório Descrição
tenantId string caminho Sim Formato: uuid
processId string caminho Sim Formato: uuid
simulationId string caminho Sim Formato: uuid

Resposta (200):

Status da execução

{
	"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"
}
Campo Tipo Obrigatório Descrição
state notStarted | running | processing | ready | error Sim Valores permitidos: notStarted, running, processing, ready, error
startedAt string Não Formato: date-time
completedAt string Não Formato: date-time
step string Não
casesSimulated number Não
targetCases number Não
eventsGenerated number Não
errorMessage string Não
simulationId string Sim Formato: uuid

Erros:

  • 400 Solicitação inválida: por exemplo, uma expressão de filtro inválida, um processo sem modelo, um tipo de upload não compatível ou um campo obrigatório ausente
  • 401 Chave de API ausente, inválida, desativada ou expirada
  • 404 Recurso não encontrado