openapi: 3.0.3 info: title: Calyptia Cloud API version: "1.0" description: HTTP API service of Calyptia Cloud contact: name: Calyptia email: hello@calyptia.com url: "https://cloud.calyptia.com" termsOfService: "https://calyptia.com/terms/" servers: - url: "https://cloud-api.calyptia.com" description: prod - url: "https://cloud-api-dev.calyptia.com" description: dev - url: "http://localhost:{port}" description: local variables: port: default: "5000" tags: - name: user - name: project - name: token - name: membership - name: invitation - name: agent - name: agent_config - name: aggregator - name: resource_profile - name: core_instance_check - name: ingest_check - name: pipeline - name: pipeline_config - name: pipeline_status - name: pipeline_file - name: pipeline_secret - name: pipeline_port - name: pipeline_check - name: config_validator - name: config_validator_v2 - name: metric - name: environment - name: trace_session - name: trace_record components: securitySchemes: user: type: http scheme: bearer project: name: X-Project-Token type: apiKey in: header schemas: UpdateEnvironment: type: object properties: name: type: string nullable: true CreateEnvironment: type: object properties: name: type: string Environment: type: object description: Environment model. properties: id: type: string format: uuid name: type: string description: DNS label format as of defined on RFC1123 example: development createdAt: type: string format: date-time updatedAt: type: string format: date-time User: type: object description: User model. properties: id: type: string format: uuid email: type: string format: email name: type: string example: user avatarURL: type: string nullable: true format: uri createdAt: type: string format: date-time updatedAt: type: string format: date-time required: - id - email - name - avatarURL - createdAt - updatedAt CheckStatus: type: string description: The status of a check. default: new enum: - new - failed - running - ok PipelinePortProtocol: type: string description: Valid protocol types defined for a pipelines. enum: - tcp - udp Project: type: object description: Project model. properties: id: type: string format: uuid name: type: string example: my-project membersCount: type: integer minimum: 1 agentsCount: type: integer minimum: 0 aggregatorsCount: type: integer maximum: 0 createdAt: type: string format: date-time membership: $ref: "#/components/schemas/Membership" required: - id - name - membersCount - agentsCount - aggregatorsCount - createdAt Token: type: object properties: id: type: string format: uuid token: type: string example: redacted name: type: string example: my-token createdAt: type: string format: date-time required: - id - token - name - createdAt description: Token model. Membership: type: object properties: id: type: string format: uuid roles: type: array nullable: true uniqueItems: true items: type: string enum: - creator - admin createdAt: type: string format: date-time user: $ref: "#/components/schemas/User" required: - id - roles - createdAt description: Membership of a user in a project. Agent: type: object properties: id: type: string format: uuid token: type: string example: redacted name: type: string example: my-agent format: hostname machineID: type: string type: type: string enum: - fluentbit - fluentd version: type: string example: v1.8.6 edition: type: string enum: - community - enterprise flags: type: array nullable: true uniqueItems: true items: type: string tags: type: array nullable: true uniqueItems: true items: type: string rawConfig: type: string metadata: type: object nullable: true firstMetricsAddedAt: type: string format: date-time lastMetricsAddedAt: type: string format: date-time metricsCount: type: integer minimum: 0 createdAt: type: string format: date-time updatedAt: type: string format: date-time environmentName: type: string default: default example: default required: - id - token - name - machineID - type - version - edition - flags - rawConfig - metadata - environmentName - firstMetricsAddedAt - lastMetricsAddedAt - metricsCount - createdAt - updatedAt description: Agent model. AgentConfig: type: object description: Agent configuration history entry. properties: id: type: string format: uuid rawConfig: type: string createdAt: type: string format: date-time required: - id - rawConfig - createdAt AggregatorPingResponse: type: object description: Aggregator Ping Response model. properties: nextPing: type: string format: duration default: "30s" MetadataGCP: type: object description: | Metadata model for GCP metadata fields accepted by a Core Instance. See: https://cloud.google.com/compute/docs/metadata/default-metadata-values. properties: gcp.project_number: type: number gcp.project_id: type: string gcp.instance_id: type: number gcp.instance_image: type: string gcp.machine_type: type: string gcp.instance_name: type: string gcp.zone: type: string MetadataK8S: type: object description: | Metadata model for kubernetes metadata fields accepted by a Core Instance. See: https://github.com/kubernetes/website/blob/60390ff3c0ef0043a58568ad2e4c2b7634028074/content/en/examples/pods/inject/dapi-volume.yaml#L5 properties: k8s.namespace: type: string k8s.cluster_name: type: string k8s.zone: type: string k8s.cluster_version: type: string k8s.cluster_platform: type: string MetadataAWS: type: object description: | Metadata model for AWS metadata fields accepted by a Core Instance. See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html properties: aws.ami_id: type: string aws.account_id: type: string aws.hostname: type: string aws.vpc_id: type: string aws.private_ipv4: type: string aws.public_ipv4: type: string aws.ec2_instance_id: type: string aws.ec2_instance_type: type: string aws.az: type: string CoreInstanceMetadata: type: object description: Core Instance Metadata model. anyOf: - $ref: "#/components/schemas/MetadataAWS" - $ref: "#/components/schemas/MetadataGCP" - $ref: "#/components/schemas/MetadataK8S" Aggregator: type: object description: Aggregator model. (to be renamed as CoreInstance). properties: id: type: string format: uuid token: type: string example: redacted name: type: string format: hostname example: my-aggregator version: type: string example: v0.1.12 status: type: string description: | Running status of the aggregator instance in reference to the last ping. Refer to https://pkg.go.dev/github.com/calyptia/api@main/types#pkg-constants if looking up for the current timeout defaults. enum: - running - waiting - unreachable metadata: $ref: "#/components/schemas/CoreInstanceMetadata" pipelinesCount: type: integer minimum: 0 createdAt: type: string format: date-time updatedAt: type: string format: date-time tags: type: array nullable: true uniqueItems: true items: type: string environmentName: type: string default: default example: default required: - id - token - name - pipelinesCount - environmentName - createdAt - updatedAt ResourceProfile: type: object description: Resource profile model. properties: id: type: string format: uuid name: type: string example: my-resource-profile storageMaxChunksUp: type: integer format: int32 storageSyncFull: type: boolean storageBacklogMemLimit: type: string example: 1Mi storageVolumeSize: type: string example: 2Mi storageMaxChunksPause: type: boolean cpuBufferWorkers: type: integer format: int32 cpuLimit: type: string example: 3Mi cpuRequest: type: string example: 4Mi memoryLimit: type: string example: 5Mi memoryRequest: type: string example: 6Mi createdAt: type: string format: date-time updatedAt: type: string format: date-time required: - id - name - storageMaxChunksUp - storageSyncFull - storageBacklogMemLimit - storageVolumeSize - storageMaxChunksPause - cpuBufferWorkers - cpuLimit - cpuRequest - memoryLimit - memoryRequest - createdAt - updatedAt Pipeline: type: object description: Pipeline model. properties: id: type: string format: uuid name: type: string description: DNS label format as of defined on RFC1123 example: my-pipeline kind: type: string description: Kind of deployment used when deploying this pipeline default: deployment enum: - daemonSet - deployment config: $ref: "#/components/schemas/PipelineConfig" configSections: type: array items: $ref: "#/components/schemas/ConfigSection" status: $ref: "#/components/schemas/PipelineStatus" resourceProfile: $ref: "#/components/schemas/ResourceProfile" replicasCount: type: integer minimum: 0 checksTotal: type: integer minimum: 0 description: total number of checks associated with the pipeline. checksOK: type: integer minimum: 0 description: total number of checks with ok status. checksRunning: type: integer minimum: 0 description: total number of checks with running status. tags: type: array nullable: true uniqueItems: true items: type: string metadata: type: object nullable: true properties: nodeSelector: type: object nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time required: - id - name - config - configSections - status - resourceProfile - replicasCount - metadata - createdAt - updatedAt PipelineConfig: type: object description: Pipeline configuration history entry. properties: id: type: string format: uuid rawConfig: type: string configFormat: type: string enum: - ini - json - yaml createdAt: type: string format: date-time required: - id - rawConfig - configFormat - createdAt PipelineStatus: type: object description: Pipeline status history entry. properties: id: type: string format: uuid config: $ref: "#/components/schemas/AgentConfig" status: type: string enum: - NEW - FAILED - STARTING - STARTED - SCALING - CHECKS_OK - CHECKS_FAILED events: type: array items: $ref: '#/components/schemas/PipelineEvent' createdAt: type: string format: date-time required: - id - config - status - createdAt PipelineEvent: type: object description: Pipeline Status event. properties: source: type: string enum: - k8s:deployment - k8s:pod reason: type: string message: type: string loggedAt: type: string format: date-time required: - source - reason - loggedAt PipelineCheck: type: object description: Pipeline check model. properties: id: type: string format: uuid protocol: $ref: "#/components/schemas/PipelinePortProtocol" status: $ref: "#/components/schemas/CheckStatus" retries: type: number default: 3 description: number of retries for the check before marking it as failed port: type: number minimum: 0 maximum: 65535 description: valid 0-65535 port number host: type: string description: DNS label format as of defined on RFC1123 or an IPv4 address. example: localhost createdAt: type: string format: date-time updatedAt: type: string format: date-time required: - id - protocol - status - retries - port - host - createdAt - updatedAt CoreInstanceCheck: type: object description: Core instance(aggregator) check model. properties: id: type: string format: uuid protocol: $ref: "#/components/schemas/PipelinePortProtocol" status: $ref: "#/components/schemas/CheckStatus" retries: type: number default: 0 description: number of retries for the check before marking it as failed host: type: string description: DNS label format as of defined on RFC1123 or an IPv4 address. example: localhost port: type: number minimum: 0 maximum: 65535 createdAt: type: string format: date-time updatedAt: type: string format: date-time required: - id - protocol - status - retries - host - port - createdAt - updatedAt IngestCheck: type: object description: Core Ingest check model. properties: id: type: string format: uuid config: type: string format: fluent-bit configuration status: $ref: "#/components/schemas/CheckStatus" retries: type: number default: 0 description: number of retries for the check before marking it as failed createdAt: type: string format: date-time updatedAt: type: string format: date-time required: - id - config - status - retries - createdAt - updatedAt PipelineFile: type: object description: Pipeline file model. properties: id: type: string format: uuid processingRuleID: type: string format: uuid nullable: true name: type: string example: myfile contents: type: string format: byte encrypted: type: boolean createdAt: type: string format: date-time updatedAt: type: string format: date-time required: - id - processingRuleID - name - contents - encrypted - createdAt - updatedAt PipelineSecret: type: object description: Pipeline secret model. properties: id: type: string format: uuid key: type: string example: mysecret value: type: string format: byte createdAt: type: string format: date-time updatedAt: type: string format: date-time required: - id - key - value - createdAt - updatedAt PipelinePort: type: object description: Pipeline port model. properties: id: type: string format: uuid protocol: type: string example: tcp frontendPort: type: integer format: int32 minimum: 0 backendPort: type: integer format: int32 minimum: 0 endpoint: type: string pluginID: type: string nullable: true example: forward.0 pluginName: type: string nullable: true example: forward pluginAlias: type: string nullable: true example: myforwardinput createdAt: type: string format: date-time updatedAt: type: string format: date-time required: - id - protocol - frontendPort - backendPort - endpoint - pluginID - pluginName - pluginAlias - createdAt - updatedAt ProjectMetrics: type: object description: Project metrics model. properties: measurements: type: object additionalProperties: type: object properties: totals: type: object additionalProperties: type: number format: float nullable: true plugins: type: object additionalProperties: $ref: "#/components/schemas/Metrics" required: - totals - plugins topPlugins: type: object additionalProperties: type: object additionalProperties: type: number format: float nullable: true required: - measurements - topPlugins AgentMetrics: type: object description: Agent metrics model. properties: measurements: type: object additionalProperties: type: object properties: plugins: type: object additionalProperties: $ref: "#/components/schemas/Metrics" totals: type: object additionalProperties: type: array items: $ref: "#/components/schemas/MetricFields" required: - plugins - totals required: - measurements AggregatorMetrics: type: object description: Agent metrics model. properties: measurements: type: object additionalProperties: type: object properties: metrics: type: object additionalProperties: type: array items: $ref: "#/components/schemas/MetricFields" totals: type: object additionalProperties: type: array items: $ref: "#/components/schemas/MetricFields" required: - metrics - totals required: - measurements example: | { "measurements": { "fluentbit_filter": { "metrics": { "drop_records": [ { "time": "2022-02-07T11:00:00Z", "value": 0 }, { "time": "2022-02-07T12:00:00Z", "value": 0 }, { "time": "2022-02-07T12:55:20.003028413Z", "value": 119 } ], "emit_records": [ { "time": "2022-02-07T11:00:00Z", "value": 0 }, { "time": "2022-02-07T12:00:00Z", "value": 0 }, { "time": "2022-02-07T12:55:20.003028413Z", "value": 119 } ] }, "totals": { "drop_records": [ { "time": "2022-02-07T12:55:04.78743322Z", "value": 119 } ], "emit_records": [ { "time": "2022-02-07T12:55:04.787434277Z", "value": 119 } ] } }, "fluentbit_input": { "metrics": { "bytes": [ { "time": "2022-02-07T11:00:00Z", "value": 0 }, { "time": "2022-02-07T12:00:00Z", "value": 0 }, { "time": "2022-02-07T12:55:20.029124832Z", "value": 4760 } ], "records": [ { "time": "2022-02-07T11:00:00Z", "value": 0 }, { "time": "2022-02-07T12:00:00Z", "value": 0 }, { "time": "2022-02-07T12:55:20.029124832Z", "value": 119 } ] }, "totals": { "bytes": [ { "time": "2022-02-07T12:55:04.787450155Z", "value": 4760 } ], "records": [ { "time": "2022-02-07T12:55:04.787450155Z", "value": 119 } ] } }, "fluentbit_output": { "metrics": { "bytes": [ { "time": "2022-02-07T11:00:00Z", "value": 0 }, { "time": "2022-02-07T12:00:00Z", "value": 0 }, { "time": "2022-02-07T12:55:20.059227599Z", "value": 4560 } ], "records": [ { "time": "2022-02-07T11:00:00Z", "value": 0 }, { "time": "2022-02-07T12:00:00Z", "value": 0 }, { "time": "2022-02-07T12:55:20.059227599Z", "value": 114 } ] }, "totals": { "bytes": [ { "time": "2022-02-07T12:55:00.785234434Z", "value": 4560 } ], "records": [ { "time": "2022-02-07T12:55:00.785234434Z", "value": 114 } ] } } } } AggregatorPipelinesMetrics: type: object description: Map of metrics/error for each pipeline ID. additionalProperties: type: object properties: data: nullable: true $ref: "#/components/schemas/AgentMetrics" error: type: string nullable: true required: [data, error] Metrics: type: object description: Metrics model. properties: metrics: type: object additionalProperties: type: array items: $ref: "#/components/schemas/MetricFields" required: - metrics MetricFields: type: object description: Metric fields model. properties: time: type: string format: date-time value: type: number format: float nullable: true required: - time - value CreateProject: description: Create project request body. type: object properties: name: type: string example: new-project required: - name UpdateProject: description: Update project request body. type: object properties: name: type: string example: new-project nullable: true CreateToken: description: Create token request body. type: object properties: name: type: string example: new-token required: - name UpdateToken: description: Update token request body. type: object properties: name: type: string example: new-token nullable: true CreateInvitation: description: Create invitation request body. type: object properties: email: type: string format: email redirectURI: type: string format: uri required: - email - redirectURI AcceptInvitation: description: Accept invitation request body. type: object properties: token: type: string example: redacted required: - token RegisterAgent: description: Register agent request body. type: object properties: name: type: string example: new-agent format: hostname machineID: type: string type: type: string enum: - fluentbit - fluentd version: type: string example: v1.8.6 edition: type: string enum: - community - enterprise flags: type: array nullable: true items: type: string rawConfig: type: string metadata: type: object nullable: true environmentID: type: string nullable: true description: environment ID to associate this agent with. required: - name - machineID - type - version - edition - flags - rawConfig UpdateAgent: description: Update agent request body. type: object properties: name: type: string example: new-agent format: hostname nullable: true version: type: string example: v1.8.6 nullable: true edition: type: string enum: - community - enterprise nullable: true flags: type: array nullable: true items: type: string rawConfig: type: string nullable: true metadata: type: object nullable: true environmentID: type: string nullable: true description: environment ID to associate this agent with. CreateAggregator: description: Create aggregator request body. type: object properties: name: type: string format: hostname example: new-aggregator version: type: string example: v0.1.12 addHealthCheckPipeline: type: boolean clusterLogging: type: boolean description: Enable cluster-logging functionality on this aggregator instance. healthCheckPipelinePort: type: integer format: int32 minimum: 0 metadata: type: object nullable: true environmentID: type: string nullable: true description: environment ID to associate this aggregator with. required: - name - version - addHealthCheckPipeline - healthCheckPipelinePort UpdateAggregator: description: Update aggregator request body. type: object properties: name: type: string format: hostname example: new-aggregator nullable: true clusterLogging: type: boolean description: enable or disable cluster-logging functionality. nullable: true version: type: string example: v0.1.12 nullable: true tags: type: array nullable: true items: type: string metadata: $ref: "#/components/schemas/CoreInstanceMetadata" environmentID: type: string nullable: true description: environment ID to associate this aggregator with. CreateResourceProfile: description: Create resource profile request body. type: object properties: name: type: string example: my-resource-profile storageMaxChunksUp: type: integer format: int32 storageSyncFull: type: boolean storageBacklogMemLimit: type: string example: 1Mi storageVolumeSize: type: string example: 2Mi storageMaxChunksPause: type: boolean cpuBufferWorkers: type: integer format: int32 cpuLimit: type: string example: 3Mi cpuRequest: type: string example: 4Mi memoryLimit: type: string example: 5Mi memoryRequest: type: string example: 6Mi required: - name - storageMaxChunksUp - storageSyncFull - storageBacklogMemLimit - storageVolumeSize - storageMaxChunksPause - cpuBufferWorkers - cpuLimit - cpuRequest - memoryLimit - memoryRequest UpdateResourceProfile: description: Update resource profile request body. type: object properties: name: type: string example: my-resource-profile nullable: true storageMaxChunksUp: type: integer format: int32 nullable: true storageSyncFull: type: boolean nullable: true storageBacklogMemLimit: type: string example: 1Mi nullable: true storageVolumeSize: type: string example: 2Mi nullable: true storageMaxChunksPause: type: boolean nullable: true cpuBufferWorkers: type: integer format: int32 nullable: true cpuLimit: type: string example: 3Mi nullable: true cpuRequest: type: string example: 4Mi nullable: true memoryLimit: type: string example: 5Mi nullable: true memoryRequest: type: string example: 6Mi nullable: true CreatePipeline: description: Create pipeline request body. type: object properties: name: type: string description: DNS label format as of defined on RFC1123 example: new-pipeline kind: type: string description: Kind of deployment used when deploying this pipeline default: deployment enum: - daemonSet - deployment replicasCount: type: integer minimum: 0 rawConfig: type: string configFormat: type: string enum: - ini - json - yaml secrets: type: array nullable: true items: $ref: "#/components/schemas/CreatePipelineSecret" files: type: array nullable: true items: $ref: "#/components/schemas/CreatePipelineFile" resourceProfile: type: string example: my-resource-profile autoCreateChecksFromConfig: type: boolean default: false description: | If true, this will automatically create a set of Pipeline checks to validate that the configured output services are reachable. waitForChecksBeforeDeploying: type: boolean default: false description: | If set to true: If all checks associated with the pipeline run successfully, the status of the pipeline will be switched to CHECKS_OK and the deployment will be executed. If any of the checks associated with the pipeline fails, the status of the pipeline will be switched to CHECKS_FAILED and the deployment of the pipeline will be blocked. If set to false (default): If all checks associated with the pipeline run successfully, the status of the pipeline will be switched to CHECKS_OK and the deployment will be executed. If any of the checks associated with the pipeline fails, the status of the pipeline will be switched to CHECKS_FAILED and the deployment of the pipeline will be executed. autoCreatePortsFromConfig: type: boolean skipConfigValidation: type: boolean metadata: type: object nullable: true properties: nodeSelector: type: object nullable: true required: - name - replicasCount - rawConfig - secrets - files - resourceProfile - autoCreatePortsFromConfig - autoCreateChecksFromConfig - skipConfigValidation UpdatePipeline: description: Update pipeline request body. type: object properties: name: type: string description: DNS label format as of defined on RFC1123 example: new-pipeline nullable: true kind: type: string description: Kind of deployment used when deploying this pipeline default: deployment enum: - daemonSet - deployment replicasCount: type: integer minimum: 0 nullable: true rawConfig: type: string nullable: true configFormat: type: string enum: - ini - json - yaml nullable: true secrets: type: array nullable: true items: $ref: "#/components/schemas/UpdatePipelineSecret" files: type: array nullable: true items: $ref: "#/components/schemas/UpdatePipelineFile" resourceProfile: type: string example: my-resource-profile nullable: true autoCreatePortsFromConfig: type: boolean nullable: true autoCreateChecksFromConfig: type: boolean nullable: true skipConfigValidation: type: boolean default: false checksBeforeDeploying: type: boolean nullable: true description: | If set to true: If all checks associated with the pipeline run successfully, the status of the pipeline will be switched to CHECKS_OK and the deployment will be executed. If any of the checks associated with the pipeline fails, the status of the pipeline will be switched to CHECKS_FAILED and the deployment of the pipeline will be blocked. If set to false (default): If all checks associated with the pipeline run successfully, the status of the pipeline will be switched to CHECKS_OK and the deployment will be executed. If any of the checks associated with the pipeline fails, the status of the pipeline will be switched to CHECKS_FAILED and the deployment of the pipeline status: type: string nullable: true enum: - NEW - FAILED - STARTING - STARTED - SCALING - CHECKS_OK - CHECKS_FAILED events: type: array nullable: true items: $ref: "#/components/schemas/PipelineEvent" metadata: type: object nullable: true properties: nodeSelector: type: object nullable: true CreatePipelineCheck: description: Create pipeline check request body. type: object properties: protocol: $ref: "#/components/schemas/PipelinePortProtocol" status: $ref: "#/components/schemas/CheckStatus" retries: type: number default: 3 description: number of retries for the check before marking it as failed host: type: string description: DNS label format as of defined on RFC1123 or an IPv4 address. example: localhost port: type: number minimum: 0 maximum: 65535 description: valid 0-65535 port number required: - protocol - host - port CreateCoreInstanceCheck: description: Create core instance (aggregator) check request body. type: object properties: protocol: $ref: "#/components/schemas/PipelinePortProtocol" status: $ref: "#/components/schemas/CheckStatus" retries: type: number default: 3 description: number of retries for the check before marking it as failed host: type: string description: DNS label format as of defined on RFC1123 or an IPv4 address. example: localhost port: type: number description: valid 0-65535 port number required: - protocol - host - port CreateIngestCheck: description: Create core instance Ingest check request body. type: object properties: status: $ref: "#/components/schemas/CheckStatus" retries: type: number default: 3 description: number of retries for the check before marking it as failed configSectionID: type: string description: config section UUID to be used on this Ingest check. format: uuid required: - status - retries - configSectionID CreatePipelineFile: description: Create pipeline file request body. type: object properties: name: type: string example: newfile contents: type: string format: byte encrypted: type: boolean required: - name - contents - encrypted UpdatePipelineFile: description: Update pipeline file request body. type: object properties: name: type: string example: newfile nullable: true contents: type: string format: byte nullable: true encrypted: type: boolean nullable: true UpdatePipelineCheck: description: Update pipeline check request body. type: object properties: protocol: $ref: "#/components/schemas/PipelinePortProtocol" nullable: true status: $ref: "#/components/schemas/CheckStatus" nullable: true retries: type: number nullable: true default: 3 description: number of retries for the check before marking it as unreachable. host: type: string nullable: true description: DNS label format as of defined on RFC1123 or an IPv4 address. example: localhost port: type: number minimum: 0 maximum: 65535 nullable: true description: valid 0-65535 port number UpdateCoreInstanceCheck: description: Update a core instance check request body. type: object properties: protocol: $ref: "#/components/schemas/PipelinePortProtocol" nullable: true status: $ref: "#/components/schemas/CheckStatus" nullable: true host: type: string nullable: true description: DNS label format as of defined on RFC1123 or an IPv4 address. example: localhost port: type: number minimum: 0 maximum: 65535 nullable: true description: valid 0-65535 port number retries: type: number nullable: true default: 3 description: number of retries for the check before marking it as unreachable. UpdateIngestCheck: description: Update a core instance Ingest check request body. type: object properties: status: $ref: "#/components/schemas/CheckStatus" nullable: true configSectionID: type: string format: uuid nullable: true description: UUID of a configSection to be related to this Ingest check. retries: type: number nullable: true default: 3 description: number of retries for the check before marking it as unreachable. CreatePipelineSecret: description: Create pipeline secret request body. type: object properties: key: type: string example: newsecret value: type: string format: byte required: - key - value UpdatePipelineSecret: description: Update pipeline secret request body. type: object properties: key: type: string example: newsecret nullable: true value: type: string format: byte nullable: true CreatePipelinePort: description: Create pipeline port request body. type: object properties: protocol: type: string example: tcp frontendPort: type: integer format: int32 minimum: 0 backendPort: type: integer format: int32 minimum: 0 endpoint: type: string required: - protocol - frontendPort - backendPort - endpoint UpdatePipelinePort: description: Update pipeline port request body. type: object properties: protocol: type: string example: tcp nullable: true frontendPort: type: integer format: int32 nullable: true backendPort: type: integer format: int32 nullable: true endpoint: type: string nullable: true ValidatingConfig: description: Validating configuration request body. type: object properties: config: type: array items: type: object properties: command: type: string name: type: string optional: type: object additionalProperties: type: string nullable: true id: type: string required: - command - name - id required: - config CreatedProject: type: object description: Created project response body. properties: id: type: string token: type: string example: redacted createdAt: type: string format: date-time membership: $ref: "#/components/schemas/Membership" required: - id - token - createdAt - membership RegisteredAgent: type: object description: Registered agent response body. properties: id: type: string format: uuid token: type: string example: redacted name: type: string example: my-agent createdAt: type: string format: date-time environmentName: type: string description: environment name on which the agent belongs to. default: default required: - id - token - name - createdAt CreatedAggregator: type: object description: Created aggregator response body. properties: id: type: string format: uuid token: type: string example: redacted privateRSAKey: type: string format: byte publicRSAKey: type: string format: byte name: type: string format: hostname example: my-aggregator version: type: string example: v0.1.12 createdAt: type: string format: date-time healthCheckPipeline: $ref: "#/components/schemas/Pipeline" clusterLoggingPipeline: $ref: "#/components/schemas/Pipeline" resourceProfiles: type: array items: $ref: "#/components/schemas/ResourceProfile" environmentName: type: string description: environment name on which the agent belongs to. default: default required: - id - token - privateRSAKey - publicRSAKey - name - createdAt - resourceProfiles CreatedResourceProfile: type: object description: Created resource profile response body. properties: id: type: string format: uuid createdAt: type: string format: date-time required: - id - createdAt CreatedPipeline: type: object description: Created pipeline response body. properties: id: type: string format: uuid name: type: string example: my-pipeline kind: type: string description: Kind of deployment used when deploying this pipeline default: deployment enum: - daemonSet - deployment config: $ref: "#/components/schemas/PipelineConfig" secrets: type: array items: $ref: "#/components/schemas/PipelineSecret" files: type: array items: $ref: "#/components/schemas/PipelineFile" status: $ref: "#/components/schemas/PipelineStatus" resourceProfile: $ref: "#/components/schemas/ResourceProfile" checks: type: array items: $ref: "#/components/schemas/PipelineCheck" replicasCount: type: integer minimum: 0 createdAt: type: string format: date-time UpdatedPipeline: type: object description: Updated pipeline response body. properties: addedPorts: type: array items: $ref: "#/components/schemas/PipelinePort" removedPorts: type: array items: $ref: "#/components/schemas/PipelinePort" addedChecks: type: array items: $ref: "#/components/schemas/PipelineCheck" removedChecks: type: array items: $ref: "#/components/schemas/PipelineCheck" CreatedPipelineFile: type: object description: Created pipeline file response body. properties: id: type: string format: uuid createdAt: type: string format: date-time required: - id - createdAt CreatedPipelineCheck: type: object description: Created pipeline check response body. properties: id: type: string format: uuid createdAt: type: string format: date-time required: - id - createdAt CreatedCoreInstanceCheck: type: object description: Created core instance (aggregator) check response body. properties: id: type: string format: uuid createdAt: type: string format: date-time required: - id - createdAt CreatedIngestCheck: type: object description: Created core instance Ingest check response body. properties: id: type: string format: uuid createdAt: type: string format: date-time required: - id - createdAt CreatedPipelineSecret: type: object description: Created pipeline secret response body. properties: id: type: string format: uuid createdAt: type: string format: date-time required: - id - createdAt CreatedPipelinePort: type: object description: Created pipeline port response body. properties: id: type: string format: uuid pluginID: type: string nullable: true example: forward.0 pluginName: type: string nullable: true example: forward pluginAlias: type: string nullable: true example: myforwardinput createdAt: type: string format: date-time required: - id - pluginID - pluginName - pluginAlias - createdAt ValidatedConfig: type: object description: Validate config response body. properties: errors: type: object properties: runtime: type: array items: type: string input: type: object additionalProperties: type: array items: type: string output: type: object additionalProperties: type: array items: type: string filter: type: object additionalProperties: type: array items: type: string required: - runtime - input - output - filter required: - errors ConfigValidityV2Property: type: object description: Property of the validated configuration section properties: id: description: ID of the configuration section type: string property: description: property name type: string text: description: property name, value type: string nullable: true errors: type: array items: type: string required: - id - property - text - errors ConfigValidityV2Runtime: type: object description: Runtime errors for the validated configuration. properties: errors: type: array items: type: string id: description: Id of the configuration section type: string required: - id - errors ValidatedConfigV2: type: object description: Validation V2 config response. properties: errors: type: object properties: runtime: type: array items: $ref: "#/components/schemas/ConfigValidityV2Runtime" input: type: object additionalProperties: type: array items: $ref: "#/components/schemas/ConfigValidityV2Property" output: type: object additionalProperties: type: array items: $ref: "#/components/schemas/ConfigValidityV2Property" filter: type: object additionalProperties: type: array items: $ref: "#/components/schemas/ConfigValidityV2Property" required: - runtime - input - output - filter required: - errors TraceSession: type: object description: | Trace session model. There can only be one active session at a moment on a pipeline. Either terminate it and create a new one, or update and extend the lifespan of the current active one. properties: id: type: string format: uuid pipelineID: type: string format: uuid plugins: description: List of Fluent-bit plugin IDs ar aliases to trace. type: array items: type: string example: "dummy.0" lifespan: description: For how long will this session be active and process records. type: string format: duration example: "10m" createdAt: type: string format: date-time updatedAt: type: string format: date-time required: - id - pipelineID - plugins - lifespan - createdAt - updatedAt CreateTraceSession: type: object description: | Request body to create a new trace session on a pipeline. properties: plugins: description: List of Fluent-bit plugin IDs ar aliases to trace. type: array items: type: string example: "dummy.0" lifespan: description: For how long will this session be active and process records. type: string format: duration example: "10m" required: - plugins - lifespan CreatedTraceSession: type: object description: Response body for a newly created trace session. properties: id: type: string format: uuid createdAt: type: string format: date-time required: [id, createdAt] UpdateTraceSession: type: object description: | Request body to update an active trace session on a pipeline. properties: plugins: description: List of Fluent-bit plugin IDs ar aliases to trace. type: array items: type: string example: "dummy.0" nullable: true lifespan: description: For how long will this session be active and process records. type: string format: duration example: "10m" nullable: true UpdatedTraceSession: type: object description: Response body for an updated trace session. properties: updatedAt: type: string format: date-time required: [updatedAt] TraceRecord: type: object description: | Trace record model. Trace Records comming from fluent-bit once trace is enabled. It contains trace records for all the fluen-bit plugins configured on the trace session. properties: id: type: string format: uuid sessionID: type: string format: uuid type: $ref: "#/components/schemas/TraceRecordKind" trace_id: type: string example: trace.5 start_time: description: Unix timestamp with seconds precision. type: integer format: int64 example: 1658953439 end_time: description: Unix timestamp with seconds precision. type: integer format: int64 example: 1658953439 plugin_instance: type: string example: nest.2 plugin_alias: type: string example: nest_2 return_code: type: integer records: type: array items: type: object properties: timestamp: description: Unix timestamp with seconds precision. type: integer format: int64 example: 1658953439 record: type: object additionalProperties: true example: |- { "dummy": "dummy_0", "powered_by": "calyptia", "data": { "key_name": "foo", "key_cnt": "1" } } additionalProperties: true required: - timestamp - record createdAt: type: string format: date-time required: - id - sessionID - type - trace_id - start_time - end_time - plugin_instance - plugin_alias - return_code - records - createdAt TraceRecordKind: type: integer enum: [1, 2, 3, 4] # Custom enum names supported by openapi-typescript-codegen. # See https://github.com/ferdikoomen/openapi-typescript-codegen/blob/master/docs/custom-enums.md x-enum-varnames: [INPUT, FILTER, PRE_OUTPUT, OUTPUT] CreateTraceRecord: type: object description: | Request body to create a trace record on an active session. properties: type: $ref: "#/components/schemas/TraceRecordKind" trace_id: type: string example: trace.5 start_time: description: Unix timestamp with seconds precision. type: integer format: int64 example: 1658953439 end_time: description: Unix timestamp with seconds precision. type: integer format: int64 example: 1658953439 plugin_instance: type: string example: nest.2 plugin_alias: type: string example: nest_2 return_code: type: integer records: type: array items: type: object properties: timestamp: description: Unix timestamp with seconds precision. type: integer format: int64 example: 1658953439 record: type: object additionalProperties: true example: |- { "dummy": "dummy_0", "powered_by": "calyptia", "data": { "key_name": "foo", "key_cnt": "1" } } additionalProperties: true required: - timestamp - record required: - type - trace_id - start_time - end_time - plugin_instance - plugin_alias - return_code - records CreatedTraceRecord: type: object description: Response body when a trace record is created. properties: id: type: string format: uuid sessionID: type: string format: uuid createdAt: type: string format: date-time required: - id - sessionID - createdAt TerminatedTraceSession: type: object description: Response body when a trace session is terminated. properties: id: type: string format: uuid lifespan: type: string format: duration example: "10m" updatedAt: type: string format: date-time required: - id - lifespan - updatedAt ConfigSection: type: object properties: id: type: string format: uuid projectID: type: string format: uuid processingRuleID: type: string format: uuid nullable: true kind: $ref: "#/components/schemas/ConfigSectionKind" properties: $ref: "#/components/schemas/Pairs" createdAt: type: string format: date-time updatedAt: type: string format: date-time required: - id - projectID - processingRuleID - kind - properties - createdAt - updatedAt ConfigSectionKind: type: string enum: - input - filter - output Pairs: type: array items: $ref: "#/components/schemas/Pair" Pair: type: object properties: key: type: string example: name value: anyOf: - type: integer - type: number - type: boolean - type: string - type: array items: type: string example: dummy required: [key, value] CreateConfigSection: type: object properties: kind: $ref: "#/components/schemas/ConfigSectionKind" properties: $ref: "#/components/schemas/Pairs" required: [kind, properties] CreatedConfigSection: type: object properties: id: type: string format: uuid createdAt: type: string format: date-time required: [id, createdAt] UpdateConfigSection: type: object properties: properties: $ref: "#/components/schemas/Pairs" nullable: true UpdatedConfigSection: type: object properties: updatedAt: type: string format: date-time required: [updatedAt] ProcessingRule: type: object properties: id: type: string format: uuid pipelineID: type: string format: uuid configSectionID: type: string format: uuid fileID: type: string format: uuid match: type: string example: "*" isMatchRegexp: type: boolean default: false language: $ref: "#/components/schemas/ProcessingRuleLanguage" actions: type: array items: $ref: "#/components/schemas/RuleAction" createdAt: type: string format: date-time updatedAt: type: string format: date-time required: - id - pipelineID - configSectionID - fileID - match - isMatchRegexp - language - actions - createdAt - updatedAt ProcessingRuleLanguage: type: string enum: [lua] RuleAction: type: object properties: kind: $ref: "#/components/schemas/RuleActionKind" description: type: string example: Sample action enabled: type: boolean default: false example: true selectors: type: array items: $ref: "#/components/schemas/LogSelector" add: $ref: "#/components/schemas/LogAttr" nullable: true description: Only required when kind is "add". renameTo: type: string nullable: true example: renamed description: Only required when kind is "rename". copyAs: type: string nullable: true example: copied description: Only required when kind is "copy". maskWith: type: string nullable: true example: masked description: Only required when kind is "mask". required: - kind - description - enabled - selectors RuleActionKind: type: string enum: - add - rename - copy - mask - remove - skip LogSelector: type: object properties: kind: $ref: "#/components/schemas/LogSelectorKind" op: $ref: "#/components/schemas/LogSelectorOpKind" expr: type: string example: some_key required: - kind - op - expr LogSelectorKind: type: string enum: [key] LogSelectorOpKind: type: string enum: [equal] LogAttr: type: object properties: key: type: string example: some_key value: description: Any value. example: some_value required: - key - value CreateProcessingRule: type: object properties: match: type: string example: "*" isMatchRegexp: type: boolean default: false language: $ref: "#/components/schemas/ProcessingRuleLanguage" actions: type: array items: $ref: "#/components/schemas/RuleAction" required: - match - isMatchRegexp - language - actions CreatedProcessingRule: type: object properties: id: type: string format: uuid configSectionID: type: string format: uuid fileID: type: string format: uuid createdAt: type: string format: uuid required: - id - configSectionID - fileID - createdAt UpdateProcessingRule: type: object properties: match: type: string example: "*" nullable: true isMatchRegexp: type: boolean nullable: true language: $ref: "#/components/schemas/ProcessingRuleLanguage" nullable: true actions: type: array items: $ref: "#/components/schemas/RuleAction" nullable: true UpdatedProcessingRule: type: object properties: updatedAt: type: string format: date-time required: [updatedAt] MetricsByPlugin: type: object properties: inputs: type: array items: type: object properties: instance: type: string example: "storage_backlog.3" description: plugin alias metrics: $ref: "#/components/schemas/InputMetrics" outputs: type: array items: type: object properties: instance: type: string example: "storage_backlog.3" description: plugin alias metrics: $ref: "#/components/schemas/OutputMetrics" filters: type: array items: type: object properties: instance: type: string example: "filter.3" description: plugin alias metrics: $ref: "#/components/schemas/FilterMetrics" example: | { "inputs": [ { "instance": "storage_backlog.3", "metrics": { "bytes": 0, "records": 0 } } ], "outputs": [ { "instance": "stdout.0", "metrics": { "bytes": 5811996, "records": 25697, "errors": 0, "retries": 0, "retriedRecords": 0, "retriesFailed": 0, "droppedRecords": 0, "loads": 0 } } ], "filters": [ { "instance": "filter.3", "metrics": { "dropRecords": 0, "emitRecords": 0 } } ] } InputMetrics: type: object properties: metrics: type: object properties: bytes: type: integer example: 0 records: type: integer example: 0 OutputMetrics: type: object properties: metrics: type: object properties: bytes: type: integer example: 0 records: type: integer example: 0 errors: type: integer example: 0 retries: type: integer example: 0 retriedRecords: type: integer example: 0 retriesFailed: type: integer example: 0 droppedRecords: type: integer example: 0 loads: type: integer example: 0 FilterMetrics: type: object properties: instance: type: string example: "filter.0" metrics: type: object properties: dropRecords: type: integer example: 0 emitRecords: type: integer example: 0 MetricsSummary: type: object properties: inputs: $ref: "#/components/schemas/InputMetrics" outputs: $ref: "#/components/schemas/OutputMetrics" filters: $ref: "#/components/schemas/FilterMetrics" example: | { "inputs": { "metrics": { "bytes": 0, "records": 0 } }, "outputs": { "metrics": { "bytes": 0, "records": 0, "errors": 0, "retries": 0, "retriedRecords": 0, "retriesFailed": 0, "droppedRecords": 0, "loads": 0 } }, "filters": { "instance": "filter.0", "metrics": { "dropRecords": 0, "emitRecords": 0 } } } MetricsOvertime: type: object properties: input: $ref: "#/components/schemas/MetricsOverTimeInput" filter: $ref: "#/components/schemas/MetricsOverTimeFilter" output: $ref: "#/components/schemas/MetricsOverTimeOutput" required: - input - filter - output MetricsOverTimeInput: type: object properties: bytes: type: array items: $ref: "#/components/schemas/MetricOverTime" records: type: array items: $ref: "#/components/schemas/MetricOverTime" required: - bytes - records MetricsOverTimeFilter: type: object properties: dropRecords: type: array items: $ref: "#/components/schemas/MetricOverTime" emitRecords: type: array items: $ref: "#/components/schemas/MetricOverTime" required: - dropRecords - emitRecords MetricsOverTimeOutput: type: object properties: bytes: type: array items: $ref: "#/components/schemas/MetricOverTime" records: type: array items: $ref: "#/components/schemas/MetricOverTime" errors: type: array items: $ref: "#/components/schemas/MetricOverTime" retries: type: array items: $ref: "#/components/schemas/MetricOverTime" retriedRecords: type: array items: $ref: "#/components/schemas/MetricOverTime" retriesFailed: type: array items: $ref: "#/components/schemas/MetricOverTime" droppedRecords: type: array items: $ref: "#/components/schemas/MetricOverTime" loads: type: array items: $ref: "#/components/schemas/MetricOverTime" required: - bytes - records - errors - retries - retriedRecords - retriesFailed - droppedRecords - loads MetricsOverTimeByPlugin: type: object properties: input: type: array items: $ref: "#/components/schemas/MetricsOverTimeByPluginInput" filter: type: array items: $ref: "#/components/schemas/MetricsOverTimeByPluginFilter" output: type: array items: $ref: "#/components/schemas/MetricsOverTimeByPluginOutput" required: - input - filter - output MetricsOverTimeByPluginInput: type: object properties: instance: type: string example: "storage_backlog.3" description: plugin alias metrics: $ref: "#/components/schemas/MetricsOverTimeInput" required: - instance - metrics MetricsOverTimeByPluginFilter: type: object properties: instance: type: string example: "storage_backlog.3" description: plugin alias metrics: $ref: "#/components/schemas/MetricsOverTimeInput" required: - instance - metrics MetricsOverTimeByPluginOutput: type: object properties: instance: type: string example: "storage_backlog.3" description: plugin alias metrics: $ref: "#/components/schemas/MetricsOverTimeInput" required: - instance - metrics MetricOverTime: type: object properties: time: type: string format: date-time value: type: number format: float nullable: true required: - time - value PreviewProcessingRule: type: object properties: language: $ref: "#/components/schemas/ProcessingRuleLanguage" actions: type: array items: $ref: "#/components/schemas/RuleAction" logs: type: array items: $ref: "#/components/schemas/FluentBitLog" required: - language - actions - logs FluentBitLog: description: | Represents a fluent-bit log. It's an array with 2 items: - 0 being a unix timestamp with nanoseconds fraction. - 1 being an object of string key-values. type: array items: anyOf: - type: number - type: object additionalProperties: type: string example: '[1234.5, {"key": "value"}]' paths: /v1/verification_email: post: tags: - user summary: Send verification email operationId: sendVerificationEmail description: |- Sends a verification email to the user. When a new user registers within Calyptia Cloud with password, it should receive a verification email, in the case it didn't receive it, or the email expired already, use this endpoint to request a new one. security: - user: [] responses: "204": description: No Content /v1/projects: post: tags: - project summary: Create project operationId: createProject description: |- Creates a new project. A project is the base unit of work at Calyptia Cloud. You can register agents here, create aggregators in which you can deploy an entire set of pipelines, and monitor them. You can even invite other people to the project and have a team. security: - user: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateProject" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/CreatedProject" get: tags: - project summary: Projects operationId: projects description: Projects you are a member of. security: - user: [] parameters: - schema: type: integer minimum: 0 in: query name: last description: Last projects. - schema: type: string in: query name: name description: Name matching projects. responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/Project" "/v1/projects/{projectID}": parameters: - schema: type: string format: uuid name: projectID in: path required: true get: tags: - project summary: Project operationId: project description: Project by ID. security: - user: [] - project: [] responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/Project" patch: tags: - project summary: Update project operationId: updateProject description: Update project by its ID. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateProject" responses: "204": description: No Content "/v1/projects/{projectID}/tokens": parameters: - schema: type: string format: uuid name: projectID in: path required: true post: tags: - token summary: Create token operationId: createToken description: |- Create token within a project. These tokens are to authorize other applications to access the project. For example: - an agent might use it to register itself to the project. - you might create a new aggregator in the project using the aggregator CLI. - you might use it within the Calyptia CLI to grant access to your project. security: - user: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateToken" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/Token" get: tags: - token summary: Tokens operationId: tokens description: Tokens from a project. security: - user: [] parameters: - schema: type: integer minimum: 0 in: query name: last description: Last tokens. - schema: type: string in: query name: name description: Name matching tokens. responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/Token" "/v1/project_tokens/{tokenID}": parameters: - schema: type: string format: uuid name: tokenID in: path required: true get: tags: - token summary: Token operationId: token description: Token by ID. security: - user: [] - project: [] responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/Token" patch: tags: - token summary: Update token operationId: updateToken description: Update token by its ID. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateToken" responses: "204": description: No Content delete: tags: - token summary: Delete token operationId: deleteToken description: Delete token by its ID. security: - user: [] - project: [] responses: "204": description: No Content "/v1/projects/{projectID}/members": parameters: - schema: type: string format: uuid name: projectID in: path required: true get: tags: - membership summary: Members operationId: members description: Members from a project. security: - user: [] - project: [] parameters: - schema: type: integer minimum: 0 in: query name: last description: Last members. responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/Membership" "/v1/projects/{projectID}/invite": parameters: - schema: type: string format: uuid name: projectID in: path required: true post: tags: - invitation summary: Create invitation operationId: createInvitation description: |- Create invitation to a project. This will send an invitation email with a link to join to the email address provided. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateInvitation" responses: "204": description: No Content /v1/join_project: post: tags: - invitation summary: Accept invitation operationId: acceptInvitation description: |- Accept invitation to a project. The project to which you join is parsed from the token. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/AcceptInvitation" responses: "204": description: No Content /v1/agents: post: tags: - agent summary: Register agent operationId: registerAgent description: |- Register agent within a project. The project in which the agent is registered is parsed from the authorization token. Users are not allowed to register agents. security: - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/RegisterAgent" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/RegisteredAgent" "/v1/projects/{projectID}/agents": parameters: - schema: type: string format: uuid name: projectID in: path required: true get: tags: - agent summary: Agents operationId: agents description: Agents from a project. security: - user: [] - project: [] parameters: - schema: type: integer minimum: 0 in: query name: last description: Last agents. - schema: type: string in: query name: before description: Agents before the given cursor. - schema: type: string in: query name: name description: Name matching agents. - schema: type: string example: tagone AND tagtwo in: query name: tags_query description: Tag query. - schema: type: string in: query name: environment_id description: Environment ID for matching agents. responses: "200": description: OK headers: Link: schema: type: string example: ; rel="next" description: RFC5988 with `rel="next"`. links: NextAgentsPage: operationId: agents parameters: before: "$response.header.Link#rel=next" content: application/json: schema: type: array items: $ref: "#/components/schemas/Agent" delete: tags: - agent summary: Delete Agents operationId: deleteAgents description: Delete agents from a project. security: - user: [] - project: [] parameters: - schema: type: array items: type: string format: uuid in: query name: agent_id description: List of agent IDs to delete. responses: "204": description: Deleted "/v1/agents/{agentID}": parameters: - schema: type: string format: uuid name: agentID in: path required: true get: tags: - agent summary: Agent operationId: agent description: Agents by ID. security: - user: [] - project: [] responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/Agent" patch: tags: - agent summary: Update agent operationId: updateAgent description: Update agent by its ID. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateAgent" responses: "204": description: No Content delete: tags: - agent summary: Delete agent operationId: deleteAgent description: Delete agent by its ID. security: - user: [] - project: [] responses: "204": description: No Content "/v1/agents/{agentID}/config_history": parameters: - schema: type: string format: uuid name: agentID in: path required: true get: tags: - agent_config summary: Agent configuration history operationId: agentConfigHistory description: |- Configuration history from an agent. Every time an agent config is updated, a new history entry with the change is created. security: - user: [] - project: [] parameters: - schema: type: integer minimum: 0 in: query name: last description: Last config history entries. responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/AgentConfig" /v1/aggregators: post: tags: - aggregator summary: Create aggregator operationId: createAggregator description: |- Create aggregator within a project. The project in which the aggregator is created is parser from the authorization token. Users are not allowed to create aggregators. security: - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateAggregator" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/CreatedAggregator" "/v1/projects/{projectID}/aggregators": parameters: - schema: type: string format: uuid name: projectID in: path required: true get: tags: - aggregator summary: Aggregators operationId: aggregators description: Aggregators from a project. security: - user: [] - project: [] parameters: - schema: type: integer minimum: 0 in: query name: last description: Last aggregators. - schema: type: string in: query name: before description: Aggregators before the given cursor. - schema: type: string in: query name: name description: Name matching aggregators. - schema: type: string in: query name: environment_id description: Environment ID for matching aggregators. - schema: type: string example: tagone AND tagtwo in: query name: tags_query description: Tag query. responses: "200": description: OK headers: Link: schema: type: string example: ; rel="next" description: RFC5988 with `rel="next"`. links: NextAggregatorsPage: operationId: aggregators parameters: before: "$response.header.Link#rel=next" content: application/json: schema: type: array items: $ref: "#/components/schemas/Aggregator" delete: tags: - aggregator summary: Delete Aggregators operationId: deleteAggregators description: Delete aggregators from a project. security: - user: [] - project: [] parameters: - schema: type: array items: type: string format: uuid in: query name: aggregator_id description: List of aggregator IDs to delete. responses: "204": description: Deleted "/v1/aggregators/{aggregatorID}/ping": parameters: - schema: type: string format: uuid name: aggregatorID in: path required: true post: tags: - aggregator summary: Ping Cloud API by Aggregator ID operationId: aggregatorPing description: Ping Cloud API by aggregator ID security: - user: [] - project: [] responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/AggregatorPingResponse" "/v1/aggregators/{aggregatorID}": parameters: - schema: type: string format: uuid name: aggregatorID in: path required: true get: tags: - aggregator summary: Aggregator operationId: aggregator description: Aggregator by ID. security: - user: [] - project: [] responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/Aggregator" patch: tags: - aggregator summary: Update aggregator operationId: updateAggregator description: Update aggregator by its ID. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateAggregator" responses: "204": description: No Content delete: tags: - aggregator summary: Delete aggregator operationId: deleteAggregator description: Delete aggregator by its ID. security: - user: [] - project: [] responses: "204": description: No Content "/v1/aggregators/{aggregatorID}/resource_profiles": parameters: - schema: type: string format: uuid name: aggregatorID in: path required: true post: tags: - resource_profile summary: Create resource profile operationId: createResourceProfile description: |- Create resource profile within an aggregator. A resource profile is a specification of a resource used during the deployment of a pipeline. By default, when you setup an aggregator, Calyptia Cloud will generate 3 resource profiles for you: - high-performance-guaranteed-delivery. - high-performance-optimal-throughput. - best-effort-low-resource. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateResourceProfile" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/CreatedResourceProfile" get: tags: - resource_profile summary: Resource profiles operationId: resourceProfiles description: Resource profiles from an aggregator. security: - user: [] - project: [] parameters: - schema: type: integer minimum: 0 in: query name: last description: Last tokens. responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/ResourceProfile" "/v1/resource_profiles/{resourceProfileID}": parameters: - schema: type: string format: uuid name: resourceProfileID in: path required: true get: tags: - resource_profile summary: Resource profile operationId: resourceProfile description: Resource profile by ID. security: - user: [] - project: [] responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ResourceProfile" patch: tags: - resource_profile summary: Update resource profile operationId: updateResourceProfile description: Update resource profile by its ID. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateResourceProfile" responses: "204": description: No Content delete: tags: - resource_profile summary: Delete resource profile operationId: deleteResourceProfile description: Delete resource profile by its ID. security: - user: [] - project: [] responses: "204": description: No Content "/v1/aggregators/{aggregatorID}/pipelines": parameters: - schema: type: string format: uuid name: aggregatorID in: path required: true post: tags: - pipeline summary: Create pipeline operationId: createPipeline description: |- Create pipeline within an aggregator. The pipeline name must be unique within the aggregator. The resource profile must exist already. If you don't provide one, it will default to "best-effort-low-resource". Use them to easily deploy configured agents to the aggregator. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/CreatePipeline" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/CreatedPipeline" get: tags: - pipeline summary: Pipelines operationId: pipelines description: Pipelines from an aggregator. security: - user: [] - project: [] parameters: - schema: type: integer minimum: 0 in: query name: last description: Last pipelines. - schema: type: string in: query name: before description: Pipelines before the given cursor. - schema: type: string in: query name: name description: Name matching pipelines. - schema: type: string example: tagone AND tagtwo in: query name: tags_query description: Tag query. - schema: type: string enum: - ini - json - yaml in: query name: config_format description: Desired output config format. responses: "200": description: OK headers: Link: schema: type: string example: ; rel="next" description: RFC5988 with `rel="next"`. links: NextPipelinesPage: operationId: pipelines parameters: before: "$response.header.Link#rel=next" content: application/json: schema: type: array items: $ref: "#/components/schemas/Pipeline" delete: tags: - pipeline summary: Delete Pipelines operationId: deletePipelines description: Delete pipelines from an aggregator. security: - user: [] - project: [] parameters: - schema: type: array items: type: string format: uuid in: query name: pipeline_id description: List of pipeline IDs to delete. responses: "204": description: Deleted "/v1/projects/{projectID}/pipelines": parameters: - schema: type: string format: uuid name: projectID in: path required: true get: tags: - pipeline summary: Project pipelines operationId: projectPipelines description: Pipelines from a project. security: - user: [] - project: [] parameters: - schema: type: integer minimum: 0 in: query name: last description: Last pipelines. - schema: type: string in: query name: name description: Name matching pipelines. - schema: type: string example: tagone AND tagtwo in: query name: tags_query description: Tag query. - schema: type: string enum: - ini - json - yaml in: query name: config_format description: Desired output config format. responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/Pipeline" "/v1/aggregator_pipelines/{pipelineID}": parameters: - schema: type: string format: uuid name: pipelineID in: path required: true get: tags: - pipeline summary: Pipeline operationId: pipeline description: Pipeline by ID. security: - user: [] - project: [] parameters: - schema: type: string enum: - ini - json - yaml in: query name: config_format description: Desired output config format. responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/Pipeline" patch: tags: - pipeline summary: Update pipeline operationId: updatePipeline description: Update pipeline by its ID. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdatePipeline" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/UpdatedPipeline" delete: tags: - pipeline summary: Delete pipeline operationId: deletePipeline description: Delete pipeline by its ID. security: - user: [] - project: [] responses: "204": description: No Content "/v1/aggregator_pipelines/{pipeline}/config_history": parameters: - schema: type: string format: uuid name: pipeline in: path required: true get: tags: - pipeline_config summary: Pipeline configuration history operationId: pipelineConfigHistory description: |- Configuration history from a pipeline. Every time a pipeline config is updated, a new history entry with the change is created. security: - user: [] - project: [] parameters: - schema: type: integer minimum: 0 in: query name: last description: Last history entries. responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/PipelineConfig" "/v1/aggregator_pipelines/{pipeline}/status_history": parameters: - schema: type: string format: uuid name: pipeline in: path required: true get: tags: - pipeline_status summary: Pipeline status history operationId: pipelineStatusHistory description: |- Status history from a pipeline. Every time a pipeline status is changed, a new history entry with the change is created. security: - user: [] - project: [] parameters: - schema: type: integer minimum: 0 in: query name: last description: Last history entries. - schema: type: string enum: - NEW - FAILED - STARTING - STARTED - DELETED in: query name: status description: Filter status entries with matching status. - schema: type: string enum: - ini - json - yaml in: query name: config_format description: Desired output config format. responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/PipelineStatus" "/v1/aggregator_pipelines/{pipelineID}/files": parameters: - schema: type: string format: uuid name: pipelineID in: path required: true post: tags: - pipeline_file summary: Create pipeline file operationId: createPipelineFile description: |- Create file within a pipeline. The given name is unique within the pipeline. These files can be referenced by their name within a fluentbit configuration file like so `{{files.thename}}`. Use them to share common stuff like parsers. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/CreatePipelineFile" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/CreatedPipelineFile" get: tags: - pipeline_file summary: Pipeline files operationId: pipelineFiles description: Files from a pipeline. security: - user: [] - project: [] parameters: - schema: type: integer minimum: 0 in: query name: last description: Last files. responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/PipelineFile" "/v1/pipeline_files/{fileID}": parameters: - schema: type: string format: uuid name: fileID in: path required: true get: tags: - pipeline_file summary: Pipeline file operationId: pipelineFile description: File by ID. security: - user: [] - project: [] responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/PipelineFile" patch: tags: - pipeline_file summary: Update pipeline file operationId: updatePipelineFile description: Update file by its ID. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdatePipelineFile" responses: "204": description: No Content delete: tags: - pipeline_file summary: Delete pipeline file operationId: deletePipelineFile description: |- Delete pipeline file by its ID. The file cannot be deleted if some pipeline config is still referencing it; you must delete the pipeline first if you want to delete the file. security: - user: [] - project: [] responses: "204": description: No Content "/v1/pipelines/{pipelineID}/checks": parameters: - schema: type: string format: uuid name: pipelineID in: path required: true post: tags: - pipeline_check summary: Create pipeline check operationId: createPipelineCheck description: |- Create check within a pipeline. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/CreatePipelineCheck" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/CreatedPipelineCheck" get: tags: - pipeline_check summary: Pipeline checks operationId: pipelineChecks description: Checks associated to a pipeline. security: - user: [] - project: [] parameters: - schema: type: integer minimum: 0 in: query name: last description: Last files. - schema: type: string in: query name: before description: End cursor. responses: "200": description: OK headers: Link: schema: type: string example: ; rel="next" description: RFC5988 with `rel="next"`. links: NextChecksPage: operationId: pipelineChecks parameters: before: "$response.header.Link#rel=next" content: application/json: schema: type: array items: $ref: "#/components/schemas/PipelineCheck" "/v1/pipeline_checks/{checkID}": parameters: - schema: type: string format: uuid name: checkID in: path required: true get: tags: - pipeline_check summary: Pipeline check operationId: pipelineCheck description: Check by ID. security: - user: [] - project: [] responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/PipelineCheck" patch: tags: - pipeline_check summary: Update pipeline check operationId: updatePipelineCheck description: Update check by its ID. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdatePipelineCheck" responses: "204": description: No Content delete: tags: - pipeline_check summary: Delete pipeline check operationId: deletePipelineCheck description: |- Delete pipeline check by its ID. security: - user: [] - project: [] responses: "204": description: No Content "/v1/core_instances/{coreInstanceID}/ingest_checks": parameters: - schema: type: string format: uuid name: coreInstanceID in: path required: true post: tags: - ingest_check summary: Create Ingest check operationId: createIngestCheck description: |- Create an Ingest check within a core instance. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateIngestCheck" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/CreatedIngestCheck" get: tags: - ingest_check summary: Ingest checks operationId: IngestChecks description: Ingest checks associated to a core instance. security: - user: [] - project: [] parameters: - schema: type: integer minimum: 0 in: query name: last description: Last Ingest checks. - schema: type: string in: query name: before description: End cursor. responses: "200": description: OK headers: Link: schema: type: string example: ; rel="next" description: RFC5988 with `rel="next"`. links: NextChecksPage: operationId: IngestChecks parameters: before: "$response.header.Link#rel=next" content: application/json: schema: type: array items: $ref: "#/components/schemas/IngestCheck" "/v1/core_instances/{coreInstanceID}/checks": parameters: - schema: type: string format: uuid name: coreInstanceID in: path required: true post: tags: - core_instance_check summary: Create core instance check operationId: createCoreInstanceCheck description: |- Create check within a core instance. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateCoreInstanceCheck" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/CreatedCoreInstanceCheck" get: tags: - core_instance_check summary: Core Instance checks operationId: coreInstanceChecks description: Checks associated to a core instance. security: - user: [] - project: [] parameters: - schema: type: integer minimum: 0 in: query name: last description: Last checks. - schema: type: string in: query name: before description: End cursor. responses: "200": description: OK headers: Link: schema: type: string example: ; rel="next" description: RFC5988 with `rel="next"`. links: NextChecksPage: operationId: coreInstanceChecks parameters: before: "$response.header.Link#rel=next" content: application/json: schema: type: array items: $ref: "#/components/schemas/CoreInstanceCheck" "/v1/core_instance_checks/{checkID}": parameters: - schema: type: string format: uuid name: checkID in: path required: true get: tags: - core_instance_check summary: Core Instance check operationId: coreInstanceCheck description: Check by ID. security: - user: [] - project: [] responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/CoreInstanceCheck" patch: tags: - core_instance_check summary: Update core instance check operationId: updateCoreInstanceCheck description: Update check by its ID. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateCoreInstanceCheck" responses: "204": description: No Content delete: tags: - core_instance_check summary: Delete core instance check operationId: deleteCoreInstanceCheck description: |- Delete core instance check by its ID. security: - user: [] - project: [] responses: "204": description: No Content "/v1/ingest_checks/{checkID}": parameters: - schema: type: string format: uuid name: checkID in: path required: true get: tags: - ingest_check summary: Ingest Check operationId: ingestCheck description: Check by ID. security: - user: [] - project: [] responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/IngestCheck" patch: tags: - ingest_check summary: Update Ingest check operationId: updateIngestCheck description: Update a Ingest check by its ID. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateIngestCheck" responses: "204": description: No Content delete: tags: - ingest_check summary: Delete a Ingest check. operationId: deleteIngestCheck description: |- Delete Ingest check by its ID. security: - user: [] - project: [] responses: "204": description: No Content "/v1/aggregator_pipelines/{pipelineID}/secrets": parameters: - schema: type: string format: uuid name: pipelineID in: path required: true post: tags: - pipeline_secret summary: Create pipeline secret operationId: createPipelineSecret description: |- Create secret within a pipeline. The given name is unique within the pipeline. These secrets can be referenced by their name within a fluentbit configuration file like so `{{secrets.thename}}`. Use them to hide sensible values from your config file. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/CreatePipelineSecret" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/CreatedPipelineSecret" get: tags: - pipeline_secret summary: Pipeline secrets operationId: pipelineSecrets description: Secrets from a pipeline. security: - user: [] - project: [] parameters: - schema: type: integer minimum: 0 in: query name: last description: Last secrets. responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/PipelineSecret" "/v1/pipeline_secrets/{secretID}": parameters: - schema: type: string format: uuid name: secretID in: path required: true get: tags: - pipeline_secret summary: Pipeline secret operationId: pipelineSecret description: Secret by ID. security: - user: [] - project: [] responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/PipelineSecret" patch: tags: - pipeline_secret summary: Update pipeline secret operationId: updatePipelineSecret description: Update secret by its ID. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdatePipelineSecret" responses: "204": description: No Content delete: tags: - pipeline_secret summary: Delete pipeline secret operationId: deletePipelineSecret description: |- Delete pipeline secret by its ID. The secret cannot be deleted if some pipeline config is still referencing it; you must delete the pipeline first if you want to delete the secret. security: - user: [] - project: [] responses: "204": description: No Content "/v1/aggregator_pipelines/{pipelineID}/ports": parameters: - schema: type: string format: uuid name: pipelineID in: path required: true post: tags: - pipeline_port summary: Create pipeline port operationId: createPipelinePort description: |- Create port within a pipeline. Ports can automatically be parsed from a config file, but this action allows you to programatically add more. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/CreatePipelinePort" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/CreatedPipelinePort" get: tags: - pipeline_port summary: Pipeline ports operationId: pipelinePorts description: Ports from a pipeline. security: - user: [] - project: [] parameters: - schema: type: integer minimum: 0 in: query name: last description: Last ports. responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/PipelinePort" "/v1/pipeline_ports/{portID}": parameters: - schema: type: string format: uuid name: portID in: path required: true get: tags: - pipeline_port summary: Pipeline port operationId: pipelinePort description: Port by ID. security: - user: [] - project: [] responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/PipelinePort" patch: tags: - pipeline_port summary: Update pipeline port operationId: updatePipelinePort description: Update port by its ID. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdatePipelinePort" responses: "204": description: No Content delete: tags: - pipeline_port summary: Delete pipeline port operationId: deletePipelinePort description: Delete port by its ID. security: - user: [] - project: [] responses: "204": description: No Content "/v1/config_validate/{agentType}": parameters: - schema: type: string enum: - fluentbit - fluentd name: agentType in: path required: true post: tags: - config_validator summary: Validate configuration operationId: validateConfig description: |- Validates that an already parsed fluentbit or fluentd config is semantically valid. To parse the raw agent config take a look at https://github.com/calyptia/fluent-bit-config-parser. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/ValidatingConfig" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ValidatedConfig" "/v1/config_validate_v2": post: tags: - config_validator_v2 summary: Validate configuration on the v2 endpoint of the service operationId: validateConfigV2 description: |- Validates that an already parsed fluentbit config is semantically valid under the V2 error specification To parse the raw agent config take a look at https://github.com/calyptia/fluent-bit-config-parser. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/ValidatingConfig" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ValidatedConfigV2" "/v1/projects/{projectID}/environments": parameters: - schema: type: string format: uuid name: projectID in: path required: true get: tags: - environment summary: Project environments operationId: projectEnvironments description: Environments from a project. security: - user: [] - project: [] parameters: - schema: type: integer minimum: 0 in: query name: last description: Last environments. - schema: type: string in: query name: before description: Environments before the given cursor. - schema: type: string in: query name: name description: Name matching environmets. responses: "200": description: OK headers: Link: schema: type: string example: ; rel="next" description: RFC5988 with `rel="next"`. links: NextEnvironmentsPage: operationId: environments parameters: before: "$response.header.Link#rel=next" content: application/json: schema: type: array items: $ref: "#/components/schemas/Environment" post: tags: - environment summary: Create environment operationId: createEnvironment description: Create a environment to a given project. security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateEnvironment" responses: "201": description: Created content: application/json: schema: type: object properties: id: type: string format: uuid createdAt: type: string format: date-time "/v1/environments/{environmentID}": parameters: - schema: type: string format: uuid name: environmentID in: path required: true patch: tags: - environment summary: Update environment operationId: updateEnvironments description: Updates a given environment security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateEnvironment" responses: "200": description: No Content delete: tags: - environment summary: Delete environment operationId: deleteEnvironment description: Delete a given environment security: - user: [] - project: [] responses: "200": description: OK # TODO: due to limitations on the way x-msgpack body fields are processed # by schemathesis, we aren't not exposing this endpoint yet until # we have a valid cmetrics encoder. #"/v1/agent_metrics": # post: # tags: # - metric # summary: Add agent metrics # operationId: addAgentMetrics # description: |- # Store the incomming metrics from the agent. # security: # - project: [] # requestBody: # content: # application/x-msgpack: # schema: # type: string # format: binary # description: |- # Msgpack encoded metrics using cmetrics library. # responses: # "201": # description: Created # content: # application/json: # schema: # type: object # description: Total number of inserted metrics. # properties: # totalInserted: # type: integer # minimum: 0 # required: # - totalInserted "/v1/projects/{projectID}/metrics": parameters: - schema: type: string format: uuid name: projectID in: path required: true get: tags: - metric summary: Project metrics deprecated: true operationId: projectMetrics description: |- Contains an overview of the aggregated metrics for a project. It includes metrics link the amount of records, bytes, and errors per plugin. security: - user: [] - project: [] parameters: - schema: type: string format: duration default: "-24h" name: start in: query - schema: type: string format: duration default: 1h name: interval in: query responses: "200": description: OK headers: Sunset: schema: type: string example: "Tue, 01 Nov 2022 00:00:00 GMT" description: RFC1123 date when the endpoint will be removed. content: application/json: schema: $ref: "#/components/schemas/ProjectMetrics" "/v1/agents/{agentID}/metrics": parameters: - schema: type: string format: uuid name: agentID in: path required: true get: tags: - metric summary: Agent metrics deprecated: true operationId: agentMetricsV1 description: |- Contains an overview of the aggregated metrics for an agent. It includes metrics link the amount of records, bytes, and errors per plugin. security: - user: [] - project: [] parameters: - schema: type: string format: duration default: "-24h" name: start in: query - schema: type: string format: duration default: 1h name: interval in: query responses: "200": description: OK headers: Sunset: schema: type: string example: "Tue, 01 Nov 2022 00:00:00 GMT" description: RFC1123 date when the endpoint will be removed. content: application/json: schema: $ref: "#/components/schemas/AgentMetrics" "/v1/pipeline_metrics/{pipelineID}": parameters: - schema: type: string format: uuid name: pipelineID in: path required: true get: tags: - metric summary: Pipeline metrics deprecated: true operationId: pipelineMetricsV1 description: |- Contains an overview of the aggregated metrics for a pipeline. It includes metrics link the amount of records, bytes, and errors per plugin. security: - user: [] - project: [] parameters: - schema: type: string format: duration default: "-24h" name: start in: query - schema: type: string format: duration default: 1h name: interval in: query responses: "200": description: OK headers: Sunset: schema: type: string example: "Tue, 01 Nov 2022 00:00:00 GMT" description: RFC1123 date when the endpoint will be removed. content: application/json: schema: $ref: "#/components/schemas/AgentMetrics" "/v1/aggregator_metrics/{aggregatorID}": parameters: - name: aggregatorID in: path required: true schema: type: string format: uuid get: parameters: - name: start required: false in: query description: | Option to filter metrics since the given time ago schema: type: string format: duration default: -24h - name: interval required: false in: query description: | Option to set the time window to group metrics schema: type: string format: duration default: 1h security: - user: [] - project: [] summary: Aggregator metrics deprecated: true operationId: aggregatorMetrics tags: - metric responses: "200": description: OK headers: Sunset: schema: type: string example: "Tue, 01 Nov 2022 00:00:00 GMT" description: RFC1123 date when the endpoint will be removed. content: application/json: schema: $ref: "#/components/schemas/AggregatorMetrics" "/v1/aggregators/{aggregatorID}/pipelines_metrics": parameters: - name: aggregatorID in: path required: true schema: type: string format: uuid get: parameters: - name: start required: false in: query description: | Option to filter metrics since the given time ago schema: type: string format: duration default: -24h - name: interval required: false in: query description: | Option to set the time window to group metrics schema: type: string format: duration default: 1h - name: pipeline_id required: true in: query description: List of pipeline IDs. schema: type: array items: type: string format: uuid security: - user: [] - project: [] summary: Aggregator pipelines metrics (bulk) deprecated: true operationId: aggregatorPipelinesMetrics tags: - metric responses: "200": description: OK headers: Sunset: schema: type: string example: "Tue, 01 Nov 2022 00:00:00 GMT" description: RFC1123 date when the endpoint will be removed. content: application/json: schema: $ref: "#/components/schemas/AggregatorPipelinesMetrics" "/v1/pipelines/{pipelineID}/trace_sessions": parameters: - name: pipelineID in: path schema: type: string format: uuid required: true post: tags: [trace_session] security: - user: [] - project: [] summary: Create trace session operationId: createTraceSession requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateTraceSession" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/CreatedTraceSession" get: tags: [trace_session] security: - user: [] - project: [] summary: Trace sessions operationId: traceSessions responses: "200": description: OK headers: Link: schema: type: string example: ; rel="next" description: RFC5988 with `rel="next"`. links: NextTraceSessionsPage: operationId: traceSessions parameters: before: "$response.header.Link#rel=next" content: application/json: schema: type: array items: $ref: "#/components/schemas/TraceSession" "/v1/pipelines/{pipelineID}/trace_session": parameters: - name: pipelineID in: path schema: type: string format: uuid required: true get: tags: [trace_session] security: - user: [] - project: [] summary: Active trace session operationId: activeTraceSession responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/TraceSession" delete: tags: [trace_session] security: - user: [] - project: [] summary: Terminate active trace session operationId: terminateActiveTraceSession responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/TerminatedTraceSession" "/v1/trace_sessions/{sessionID}": parameters: - name: sessionID in: path schema: type: string format: uuid required: true get: tags: [trace_session] security: - user: [] - project: [] summary: Trace session operationId: traceSession responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/TraceSession" patch: tags: [trace_session] security: - user: [] - project: [] summary: Update trace session operationId: updateTraceSession requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateTraceSession" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/UpdatedTraceSession" "/v1/pipelines/{pipelineID}/trace_session/records": parameters: - name: pipelineID in: path schema: type: string format: uuid required: true post: tags: [trace_record] security: - user: [] - project: [] summary: Create trace record operationId: createTraceRecord requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateTraceRecord" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/CreatedTraceRecord" "/v1/trace_sessions/{sessionID}/records": parameters: - name: sessionID in: path schema: type: string format: uuid required: true get: tags: [trace_record] security: - user: [] - project: [] summary: Trace records operationId: traceRecords responses: "200": description: OK headers: Link: schema: type: string example: ; rel="next" description: RFC5988 with `rel="next"`. links: NextTraceRecordsPage: operationId: traceRecords parameters: before: "$response.header.Link#rel=next" content: application/json: schema: type: array items: $ref: "#/components/schemas/TraceRecord" "/v1/projects/{projectID}/config_sections": parameters: - name: projectID in: path schema: type: string format: uuid required: true post: tags: [config_section] security: - user: [] - project: [] summary: Create config section operationId: createConfigSection requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateConfigSection" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/CreatedConfigSection" get: tags: [config_section] security: - user: [] - project: [] parameters: - name: last schema: type: integer minimum: 0 in: query description: Last config sections. - name: before schema: type: string in: query description: Config sections before the given cursor. - name: include_processing_rules schema: type: boolean in: query description: | Include config sections that were created through a processing rule. summary: Config sections operationId: configSections responses: "200": description: OK headers: Link: schema: type: string example: ; rel="next" description: RFC5988 with `rel="next"`. links: NextTraceRecordsPage: operationId: configSections parameters: before: "$response.header.Link#rel=next" content: application/json: schema: type: array items: $ref: "#/components/schemas/ConfigSection" "/v1/config_sections/{configSectionID}": parameters: - name: configSectionID in: path schema: type: string format: uuid required: true get: tags: [config_section] security: - user: [] - project: [] summary: Config section operationId: configSection responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ConfigSection" links: Project: operationId: project parameters: projectID: "$response.body.projectID" patch: tags: [config_section] summary: Update config section operationId: updateConfigSection security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateConfigSection" responses: "200": description: Updated content: application/json: schema: $ref: "#/components/schemas/UpdatedConfigSection" delete: tags: [config_section] summary: Delete config section operationId: deleteConfigSection security: - user: [] - project: [] responses: "204": description: Deleted "/v1/pipelines/{pipelineID}/config_section_set": parameters: - name: pipelineID in: path schema: type: string format: uuid required: true patch: tags: [config_section] summary: Update config section set operationId: updateConfigSectionSet security: - user: [] - project: [] requestBody: content: application/json: schema: type: array items: type: string format: uuid description: Config section IDs. responses: "204": description: Updated "/v1/pipelines/{pipelineID}/processing_rules": parameters: - name: pipelineID in: path schema: type: string format: uuid required: true post: tags: [processing_rule] security: - user: [] - project: [] summary: Create a processing rule description: | Create a processing rule in the given pipeline. Only one processing rule is allowed per pipeline. operationId: createProcessingRule requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateProcessingRule" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/CreatedProcessingRule" get: tags: [processing_rule] security: - user: [] - project: [] parameters: - name: last schema: type: integer minimum: 0 in: query description: Last processing rules. - name: before schema: type: string in: query description: Processing rules before the given cursor. summary: Processing rules operationId: processingRules responses: "200": description: OK headers: Link: schema: type: string example: ; rel="next" description: RFC5988 with `rel="next"`. links: NextTraceRecordsPage: operationId: processingRules parameters: before: "$response.header.Link#rel=next" content: application/json: schema: type: array items: $ref: "#/components/schemas/ProcessingRule" "/v1/processing_rules/{processingRuleID}": parameters: - name: processingRuleID in: path schema: type: string format: uuid required: true get: tags: [processing_rule] security: - user: [] - project: [] summary: Processing rule operationId: processingRule responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ProcessingRule" links: Pipeline: operationId: pipeline parameters: projectID: "$response.body.pipelineID" ConfigSection: operationId: configSection parameters: projectID: "$response.body.configSectionID" File: operationId: pipelineFile parameters: projectID: "$response.body.fileID" patch: tags: [processing_rule] summary: Update processing rule operationId: updateProcessingRule security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateProcessingRule" responses: "200": description: Updated content: application/json: schema: $ref: "#/components/schemas/UpdatedProcessingRule" delete: tags: [processing_rule] summary: Delete processing rule operationId: deleteProcessingRule security: - user: [] - project: [] responses: "204": description: Deleted "/v1/preview_processing_rule": post: tags: [processing_rule] summary: Preview processing rule operationId: previewProcessingRule security: - user: [] - project: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/PreviewProcessingRule" responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/FluentBitLog" "/v2/core_instances/{coreInstanceID}/metrics": description: | Metrics for a core instance. parameters: - name: coreInstanceID in: path required: true schema: type: string format: uuid get: parameters: - name: start required: false in: query description: | Option to filter metrics since the given time ago schema: type: string format: duration default: -24h security: - user: [] - project: [] summary: Core instance metrics operationId: coreInstanceMetrics tags: - metric responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/MetricsSummary" "/v2/core_instances/{coreInstanceID}/metrics_by_plugin": description: | Metrics for a core instance organized by plugin. parameters: - name: coreInstanceID in: path required: true schema: type: string format: uuid get: parameters: - name: start required: false in: query description: | Option to filter metrics since the given time ago schema: type: string format: duration default: -24h security: - user: [ ] - project: [ ] summary: Core instance metrics by plugin. operationId: coreInstanceMetricsByPlugin tags: - metric responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/MetricsByPlugin" "/v2/core_instances/{coreInstanceID}/metrics_over_time": description: | Metrics over time for a core instance. parameters: - name: coreInstanceID in: path required: true schema: type: string format: uuid get: parameters: - name: start required: false in: query description: | Option to filter metrics since the given time ago schema: type: string format: duration default: -24h - name: interval required: false in: query description: | Option to set the time window to group metrics schema: type: string format: duration default: 1h security: - user: [] - project: [] summary: Core instance metrics over time operationId: coreInstanceMetricsOverTime tags: - metric responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/MetricsOvertime" "/v2/core_instances/{coreInstanceID}/metrics_over_time_by_plugin": description: | Metrics over time for a core instance. parameters: - name: coreInstanceID in: path required: true schema: type: string format: uuid get: parameters: - name: start required: false in: query description: | Option to filter metrics since the given time ago schema: type: string format: duration default: -24h - name: interval required: false in: query description: | Option to set the time window to group metrics schema: type: string format: duration default: 1h security: - user: [] - project: [] summary: Core instance metrics over time organized by plugin operationId: coreInstanceMetricsOverTimeByPlugin tags: - metric responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/MetricsOverTimeByPlugin" "/v2/pipelines/{pipelineID}/metrics": description: | Metrics for a pipeline. parameters: - name: pipelineID in: path required: true schema: type: string format: uuid get: parameters: - name: start required: false in: query description: | Option to filter metrics since the given time ago schema: type: string format: duration default: -24h security: - user: [] - project: [] summary: Pipeline metrics operationId: pipelineMetrics tags: - metric responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/MetricsSummary" "/v2/pipelines/{pipelineID}/metrics_by_plugin": description: | Metrics for a pipeline organized by plugin. parameters: - name: pipelineID in: path required: true schema: type: string format: uuid get: parameters: - name: start required: false in: query description: | Option to filter metrics since the given time ago schema: type: string format: duration default: -24h security: - user: [ ] - project: [ ] summary: Pipeline metrics by plugin. operationId: pipelineMetricsByPlugin tags: - metric responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/MetricsByPlugin" "/v2/pipelines/{pipelineID}/metrics_over_time": description: | Metrics over time for a pipeline. parameters: - name: pipelineID in: path required: true schema: type: string format: uuid get: parameters: - name: start required: false in: query description: | Option to filter metrics since the given time ago schema: type: string format: duration default: -24h - name: interval required: false in: query description: | Option to set the time window to group metrics schema: type: string format: duration default: 1h security: - user: [] - project: [] summary: Pipeline metrics over time operationId: pipelineMetricsOverTime tags: - metric responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/MetricsOvertime" "/v2/pipelines/{pipelineID}/metrics_over_time_by_plugin": description: | Metrics over time for a pipeline. parameters: - name: pipelineID in: path required: true schema: type: string format: uuid get: parameters: - name: start required: false in: query description: | Option to filter metrics since the given time ago schema: type: string format: duration default: -24h - name: interval required: false in: query description: | Option to set the time window to group metrics schema: type: string format: duration default: 1h security: - user: [] - project: [] summary: Pipeline metrics over time organized by plugin operationId: pipelineMetricsOverTimeByPlugin tags: - metric responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/MetricsOverTimeByPlugin" "/v2/agents/{agentID}/metrics": description: | Metrics for a agent. parameters: - name: agentID in: path required: true schema: type: string format: uuid get: parameters: - name: start required: false in: query description: | Option to filter metrics since the given time ago schema: type: string format: duration default: -24h security: - user: [] - project: [] summary: Agent metrics operationId: agentMetrics tags: - metric responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/MetricsSummary" "/v2/agents/{agentID}/metrics_by_plugin": description: | Metrics for a agent organized by plugin. parameters: - name: agentID in: path required: true schema: type: string format: uuid get: parameters: - name: start required: false in: query description: | Option to filter metrics since the given time ago schema: type: string format: duration default: -24h security: - user: [ ] - project: [ ] summary: Agent metrics by plugin. operationId: agentMetricsByPlugin tags: - metric responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/MetricsByPlugin" "/v2/agents/{agentID}/metrics_over_time": description: | Metrics over time for a agent. parameters: - name: agentID in: path required: true schema: type: string format: uuid get: parameters: - name: start required: false in: query description: | Option to filter metrics since the given time ago schema: type: string format: duration default: -24h - name: interval required: false in: query description: | Option to set the time window to group metrics schema: type: string format: duration default: 1h security: - user: [] - project: [] summary: Agent metrics over time operationId: agentMetricsOverTime tags: - metric responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/MetricsOvertime" "/v2/agents/{agentID}/metrics_over_time_by_plugin": description: | Metrics over time for a agent. parameters: - name: agentID in: path required: true schema: type: string format: uuid get: parameters: - name: start required: false in: query description: | Option to filter metrics since the given time ago schema: type: string format: duration default: -24h - name: interval required: false in: query description: | Option to set the time window to group metrics schema: type: string format: duration default: 1h security: - user: [] - project: [] summary: Agent metrics over time organized by plugin operationId: agentMetricsOverTimeByPlugin tags: - metric responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/MetricsOverTimeByPlugin"