-
Notifications
You must be signed in to change notification settings - Fork 0
/
openapi.json
1 lines (1 loc) · 557 KB
/
openapi.json
1
{"components":{"parameters":{"returnTo":{"description":"URL to redirect browser to after operation completes","in":"query","name":"returnTo","schema":{"type":"string"}}},"schemas":{"AutoscalerAPI_GenerateRebalancingPlan_request":{"description":"Defines the cluster rebalance request.","properties":{"evictGracefully":{"description":"Defines whether the nodes that failed to get drained until a predefined timeout, will be kept with a\nrebalancing.cast.ai/status=drain-failed annotation instead of forcefully drained.","nullable":true,"type":"boolean"},"executionConditions":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.ExecutionConditions"},"keepDrainTimeoutNodes":{"nullable":true,"title":"Deprecated, use evictGracefully instead","type":"boolean"},"minNodes":{"default":3,"description":"Minimum number of nodes that the cluster should have after rebalancing is done.","format":"int32","type":"integer"},"rebalancingNodes":{"description":"Subset of nodes to rebalance. If empty, it is considered to include all nodes (full rebalancing).","items":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingNode"},"type":"array"}},"type":"object"},"ErrorResponse":{"properties":{"fieldViolations":{"description":"in case the error is related to specific field, this list will contain","items":{"$ref":"#/components/schemas/FieldViolation"},"type":"array"},"message":{"type":"string"}},"required":["message","fieldViolations"],"type":"object"},"FieldViolation":{"properties":{"description":{"type":"string"},"field":{"type":"string"}},"required":["field","description"],"type":"object"},"HostedPage":{"description":"chargeBee hosted page object.","properties":{"created_at":{"description":"Indicates when this hosted page url is generated.","type":"integer"},"embed":{"description":"If true then hosted page formatted to be shown in iframe. If false, it is formatted to be shown as a separate page.","type":"boolean"},"expires_at":{"description":"Indicates when this hosted page url will expire. After this, the hosted page cannot be accessed.","type":"integer"},"id":{"description":"Unique identifier generated for each hosted page requested.","type":"string"},"state":{"description":"Indicating the current state of the hosted page resource.","type":"string"},"type":{"description":"Type of the requested hosted page.","example":"checkout_new","type":"string"},"url":{"description":"Unique URL for the hosted page that will be included in your website.","type":"string"}},"required":["id","type","url","state","embed","created_at","expires_at"],"type":"object"},"InsightsAPI_ConfigureClusterSecuritySettings_request":{"properties":{"features":{"items":{"$ref":"#/components/schemas/insights.v1.SecurityFeature"},"title":"A list of security features to enable on the cluster","type":"array"}},"type":"object"},"InsightsAPI_CreateTicket_request":{"properties":{"consoleUrl":{"type":"string"},"description":{"type":"string"},"summary":{"type":"string"},"type":{"$ref":"#/components/schemas/insights.v1.CreateTicketRequest.Type"},"typeIds":{"items":{"type":"string"},"type":"array"}},"required":["consoleUrl","description","summary","type","typeIds"],"type":"object"},"InsightsAPI_EnforceCheckPolicy_request":{"properties":{"clusterIds":{"items":{"type":"string"},"title":"(required) clusters that should have this linting rule enforced","type":"array"}},"type":"object"},"InsightsAPI_GetCheckResources_request":{"properties":{"clusterIds":{"items":{"type":"string"},"type":"array"},"namespaces":{"items":{"type":"string"},"type":"array"},"page":{"$ref":"#/components/schemas/castai.pagination.v1beta1.Page"},"resourceKinds":{"items":{"type":"string"},"type":"array"},"resourceName":{"nullable":true,"type":"string"},"sort":{"$ref":"#/components/schemas/castai.pagination.v1beta1.Sort"},"standard":{"$ref":"#/components/schemas/insights.v1.BestPracticesStandard"},"status":{"$ref":"#/components/schemas/insights.v1.CheckClusterResourceStatus"}},"type":"object"},"InsightsAPI_PostAgentTelemetry_request":{"properties":{"initialSync":{"title":"(required) is this an initial agent sync","type":"boolean"},"policyEnforcement":{"type":"boolean"}},"type":"object"},"Plan":{"description":"Specifies details of a subscription plan.","properties":{"id":{"description":"plan id.","example":"super_plan_1","type":"string"},"name":{"description":"plan name.","example":"Super Plan 1","type":"string"}},"required":["id","name"],"type":"object"},"PortalSession":{"description":"chargeBee portal session object.","properties":{"access_url":{"description":"Unique URL for accessing the customer portal. Once accessed, this cannot be reused.","type":"string"},"created_at":{"description":"Timestamp indicating when this portal session was generated.","type":"integer"},"customer_id":{"description":"Identifier of the customer.","type":"string"},"expires_at":{"description":"Timestamp indicating when the access URL will expire. Once expired, the URL cannot be used to login into the portal.","type":"integer"},"id":{"description":"Unique identifier for the portal session.","type":"string"},"object":{"description":"Response object type.","type":"string"},"status":{"description":"Indicates the current status of the portal session.","type":"string"},"token":{"description":"Unique pre-authenticated portal session token to access customer portal directly.","example":"checkout_new","type":"string"}},"required":["id","token","access_url","status","created_at","expires_at","object","customer_id"],"type":"object"},"Request_to_submit_algorithm_stats":{"properties":{"algorithmStats":{"items":{"$ref":"#/components/schemas/castai.algorithmstats.v1beta1.AlgorithmStats"},"title":"algorithm stats","type":"array"},"createdAt":{"format":"date-time","title":"timestamp when the stats were collected","type":"string"},"nodeStats":{"items":{"$ref":"#/components/schemas/castai.algorithmstats.v1beta1.NodeStats"},"title":"node statistics for the cluster","type":"array"},"pricingModel":{"$ref":"#/components/schemas/castai.algorithmstats.v1beta1.PricingModel"}},"title":"Request to submit algorithm stats","type":"object"},"Subscription":{"properties":{"billingPeriod":{"description":"Defines billing frequency.","enum":["month","year"],"type":"string"},"currentTermEnd":{"description":"End of the current billing period of the subscription. Subscription is renewed immediately after this. UTC time in RFC3339 format.","example":"2022-10-02T15:00:00Z","format":"date-time","type":"string"},"currentTermStart":{"description":"Start of the current billing period of the subscription. UTC time in RFC3339 format.","example":"2022-10-02T15:00:00Z","format":"date-time","type":"string"},"id":{"description":"Subscription id.","example":"AzZltkSPw1tgCe5C","type":"string"},"paymentSourceAvailable":{"description":"is payment source setup for the subscription.","type":"boolean"},"plan":{"$ref":"#/components/schemas/Plan"},"status":{"description":"Current state of the subscription.","enum":["future","in_trial","active","non_renewing","paused","cancelled"],"type":"string"},"trialEnd":{"description":"End of the trial period for the subscription. UTC time in RFC3339 format.","example":"2022-10-02T15:00:00Z","format":"date-time","type":"string"}},"required":["id","status","plan","paymentSourceAvailable"],"type":"object"},"UserSession":{"properties":{"email":{"description":"corresponds to Auth0 JWT claim","example":"[email protected]","type":"string"},"name":{"description":"full name of logged-in user, e.g. \"John Doe\". Managed by Auth0 and directly taken from login JWT claim \"name\".","example":"John Doe","type":"string"},"nickname":{"description":"corresponds to Auth0 JWT claim","example":"heresjohnny","type":"string"},"picture":{"description":"corresponds to Auth0 JWT claim","example":"https://path-to-image/1.png","type":"string"},"userHash":{"description":"user identity verification - salted SHA256 hash of user ID. For use with Intercom identity verification (see https://www.intercom.com/help/en/articles/183-enable-identity-verification-for-web-and-mobile)","example":"85711c2dfd6c1b32b6c10bd49f452368197a2478b7a7b86c061356ebe0b65b38","type":"string"},"userId":{"description":"user id of logged in user.","example":"github|123456","type":"string"}},"required":["userId","userHash","name","email","nickname","picture"],"type":"object"},"UsersAPI_UpdateOrganizationUser_request":{"properties":{"role":{"type":"string"}},"type":"object"},"WorkloadOptimizationAPI_AssignScalingPolicyWorkloads_request":{"properties":{"workloadIds":{"items":{"type":"string"},"title":"Workload IDs to assign the policy for","type":"array"}},"type":"object"},"billing.v1.ClusterMetadata":{"properties":{"id":{"description":"The cluster id.","readOnly":true,"type":"string"},"name":{"description":"The cluster name.","readOnly":true,"type":"string"},"providerNamespaceId":{"description":"The project the cluster belongs to.","readOnly":true,"type":"string"},"providerType":{"description":"The cloud provider.","readOnly":true,"type":"string"}},"title":"Cluster information","type":"object"},"billing.v1.ClusterUsage":{"description":"ClusterUsage represents the usage of a cluster.","properties":{"cluster":{"$ref":"#/components/schemas/billing.v1.ClusterMetadata"},"cumulativeBillableCpus":{"description":"Cumulative billable cpu usage.","format":"double","readOnly":true,"type":"number"},"cumulativeCpuHours":{"description":"Cumulative cpu hours usage.","format":"double","readOnly":true,"type":"number"},"dailyUsages":{"description":"The usage of the cluster.","items":{"$ref":"#/components/schemas/billing.v1.DailyUsage"},"readOnly":true,"type":"array"},"forecastedCumulativeBillableCpus":{"description":"Forecasted cumulative billable cpu usage.","format":"double","readOnly":true,"type":"number"},"forecastedCumulativeCpuHours":{"description":"Forecasted cumulative cpu hours usage.","format":"double","readOnly":true,"type":"number"}},"type":"object"},"billing.v1.DailyUsage":{"description":"DailyUsage defines resources usage for a given day.","properties":{"billableCpus":{"description":"Average count of CPU used in the given day.","format":"double","readOnly":true,"type":"number"},"cpuHours":{"description":"Average hour usage in the given day.","format":"double","readOnly":true,"type":"number"},"day":{"description":"The day of usage.","format":"date-time","readOnly":true,"type":"string"},"movingAverageBillableCpus":{"description":"TODO maybe we can drop this fields because we now have 10 min interval data.\nLast 7 days moving average of billable CPU usage.","format":"double","readOnly":true,"type":"number"},"movingAverageCpuHours":{"description":"TODO maybe we can drop this fields because we now have 10 min interval data.\nLast 7 days moving average of CPU hours usage.","format":"double","readOnly":true,"type":"number"}},"type":"object"},"billing.v1.GetUsageReportResponse":{"description":"GetUsageReportResponse is the response for GetUsageReport.","properties":{"clusters":{"description":"UsageDetails is the details of the usage for the period aggregated per cluster.","items":{"$ref":"#/components/schemas/billing.v1.ClusterUsage"},"readOnly":true,"type":"array"},"summary":{"$ref":"#/components/schemas/billing.v1.UsageSummary"}},"type":"object"},"billing.v1.UsageSummary":{"description":"UsageSummary represents the summary of the usage for the given period.","properties":{"averageBillableCpus":{"description":"Last 3 months average billable CPU usage.","format":"double","readOnly":true,"type":"number"},"billableCpus":{"description":"billable CPU usage.","format":"double","readOnly":true,"type":"number"},"forecastedBillableCpus":{"description":"Forecasted billable CPU usage.","format":"double","readOnly":true,"type":"number"}},"type":"object"},"castai.algorithmstats.v1beta1.AlgorithmStats":{"properties":{"algorithmId":{"title":"algorithm id","type":"string"},"isActive":{"title":"Flag to indicate if the algorithm is active for scheduling evictions or running in shadow mode","type":"boolean"},"pickedNodes":{"items":{"type":"string"},"title":"nodes picked by the algorithm for eviction","type":"array"},"sortedNodes":{"items":{"type":"string"},"title":"sorted list of nodes based on the algorithm","type":"array"}},"title":"Message for algorithm statistics","type":"object"},"castai.algorithmstats.v1beta1.NodeStats":{"properties":{"cpuUtilization":{"format":"float","title":"cpu utilization in percentage","type":"number"},"distributedPodsCount":{"format":"int32","title":"number of pods running on the node","type":"integer"},"instanceType":{"title":"instance type of the node","type":"string"},"lifeCycle":{"$ref":"#/components/schemas/castai.algorithmstats.v1beta1.NodeStats.LifeCycle"},"memoryUtilization":{"format":"float","title":"memory utilization in percentage","type":"number"},"nodeId":{"nullable":true,"title":"node id","type":"string"},"nodeName":{"title":"node name","type":"string"},"os":{"title":"operating system of the node","type":"string"}},"title":"Message for individual node statistics","type":"object"},"castai.algorithmstats.v1beta1.NodeStats.LifeCycle":{"default":"UNKNOWN","enum":["UNKNOWN","SPOT","ON_DEMAND","SPOT_FALLBACK"],"title":"defines the lifecycle of the node","type":"string"},"castai.algorithmstats.v1beta1.PricingModel":{"properties":{"baseCpuCost":{"format":"float","type":"number"},"baseMemCost":{"format":"float","type":"number"},"spotDiscount":{"format":"float","type":"number"}},"title":"Message for pricing model used by evictor","type":"object"},"castai.algorithmstats.v1beta1.SubmitResponse":{"title":"Response for the submit request","type":"object"},"castai.audit.v1beta1.AuditEntry":{"description":"AuditEntry is audit entry.","properties":{"event":{"type":"object"},"eventType":{"type":"string"},"id":{"type":"string"},"initiatedBy":{"$ref":"#/components/schemas/castai.audit.v1beta1.InitiatedBy"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"time":{"format":"date-time","type":"string"}},"type":"object"},"castai.audit.v1beta1.InitiatedBy":{"description":"InitiatedBy describes change initiator.","properties":{"email":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"}},"type":"object"},"castai.audit.v1beta1.ListAuditEntriesResponse":{"description":"ListAuditEntriesResponse defines audit entries response.","properties":{"count":{"format":"int32","title":"count of audits restricted by the filters","type":"integer"},"items":{"items":{"$ref":"#/components/schemas/castai.audit.v1beta1.AuditEntry"},"type":"array"},"nextCursor":{"description":"next_cursor is a token to be used in future request to retrieve subsequent items. If empty - no more items present.","type":"string"},"previousCursor":{"description":"previous_cursor is a token that may be used to retrieve items from the previous logical page. If empty - there were no previous page provided.","type":"string"}},"type":"object"},"castai.authtoken.v1beta1.AuthToken":{"description":"Auth token used to authenticate via api.","properties":{"active":{"description":"(read only) Indicates whether the token is active.","readOnly":true,"type":"boolean"},"createdAt":{"description":"(read only) Time when the token was created (unix timestamp in nanoseconds).","format":"date-time","readOnly":true,"type":"string"},"createdBy":{"description":"created_by is used to link this token to a user who created it.","nullable":true,"readOnly":true,"type":"string"},"id":{"description":"(read only) ID of the token.","readOnly":true,"type":"string"},"lastUsedAt":{"description":"(read only) Time when this token was last used (unix timestamp in nanoseconds).","format":"date-time","readOnly":true,"type":"string"},"name":{"description":"(required) User provided name of the token.","type":"string"},"readonly":{"description":"whether token has readonly permissions.","type":"boolean"},"serviceAccountId":{"description":"service_account_id is used to link this token to a service account.","nullable":true,"type":"string"},"token":{"description":"(read only, visible once on creation) actual token used to authenticate via api.","nullable":true,"readOnly":true,"type":"string"}},"required":["name","readonly"],"type":"object"},"castai.authtoken.v1beta1.AuthTokenUpdate":{"description":"AuthTokenUpdate is used to update an existing auth token.","properties":{"active":{"type":"boolean"}},"type":"object"},"castai.authtoken.v1beta1.DeleteAuthTokenResponse":{"type":"object"},"castai.authtoken.v1beta1.ListAuthTokensResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/castai.authtoken.v1beta1.AuthToken"},"type":"array"}},"type":"object"},"castai.autoscaler.v1beta1.AWSNodeTemplateMigrationIntent":{"properties":{"canMigrate":{"description":"Indicates whether the AWSNodeTemplate can be migrated.","type":"boolean"},"castaiNodeConfigurationName":{"description":"The name given to the CAST AI Node Configuration after migration.","type":"string"},"error":{"description":"Error describing why AWSNodeTemplate migration cannot be performed.\nDeprecated: Use errors instead.","nullable":true,"type":"string"},"errorMessages":{"description":"Error messages describing why AWSNodeTemplate migration cannot be performed or won't be performed fully.","items":{"type":"string"},"type":"array"},"name":{"description":"Karpenter AWSNodeTemplate name.","type":"string"},"valid":{"description":"Indicates whether AWSNodeTemplate migration intent can be executed.\nDeprecated: Use can_migrate instead.","type":"boolean"}},"type":"object"},"castai.autoscaler.v1beta1.AWSNodeTemplateMigrationResult":{"properties":{"castaiNodeConfigurationId":{"description":"The id of the CAST AI Node Configuration.","type":"string"},"castaiNodeConfigurationName":{"description":"The name of the CAST AI Node Configuration.","type":"string"},"error":{"description":"Error describing why AWSNodeTemplate migration failed.\nDeprecated: Use errors instead.","nullable":true,"type":"string"},"errorMessages":{"description":"Error messages describing why AWSNodeTemplate migration failed or couldn't complete fully.","items":{"type":"string"},"type":"array"},"name":{"description":"Karpenter AWSNodeTemplate name.","type":"string"},"success":{"description":"Indicates whether AWSNodeTemplate migration was successful.","type":"boolean"}},"type":"object"},"castai.autoscaler.v1beta1.EC2NodeClassMigrationIntent":{"properties":{"canMigrate":{"description":"Indicates whether the EC2NodeClass can be migrated.","type":"boolean"},"castaiNodeConfigurationName":{"description":"The name given to the CAST AI Node Configuration after migration.","type":"string"},"error":{"description":"Error describing why EC2NodeClass migration cannot be performed.\nDeprecated: Use errors instead.","nullable":true,"type":"string"},"errorMessages":{"description":"Error messages describing why EC2NodeClass migration cannot be performed or won't be performed fully.","items":{"type":"string"},"type":"array"},"name":{"description":"Karpenter EC2NodeClass name.","type":"string"},"valid":{"description":"Indicates whether EC2NodeClass migration intent can be executed.\nDeprecated: Use can_migrate instead.","type":"boolean"}},"type":"object"},"castai.autoscaler.v1beta1.EC2NodeClassMigrationResult":{"properties":{"castaiNodeConfigurationId":{"description":"The id of the CAST AI Node Configuration.","type":"string"},"castaiNodeConfigurationName":{"description":"The name of the CAST AI Node Configuration.","type":"string"},"error":{"description":"Error describing why EC2NodeClass migration failed.\nDeprecated: Use errors instead.","nullable":true,"type":"string"},"errorMessages":{"description":"Error messages describing why EC2NodeClass migration failed or couldn't complete fully.","items":{"type":"string"},"type":"array"},"name":{"description":"Karpenter EC2NodeClass name.","type":"string"},"success":{"description":"Indicates whether EC2NodeClass migration was successful.","type":"boolean"}},"type":"object"},"castai.autoscaler.v1beta1.ExecutionConditions":{"description":"Defines the conditions which must be met in order to fully execute the plan.","properties":{"achievedSavingsPercentage":{"description":"Identifies the minimum percentage of predicted savings that should be achieved.\nThe rebalancing plan will not proceed after creating the nodes if the achieved savings percentage\nis not achieved.\nThis field's value will not be considered if the initially predicted savings are negative.","format":"int32","type":"integer"},"enabled":{"type":"boolean"}},"type":"object"},"castai.autoscaler.v1beta1.GenerateRebalancingPlanResponse":{"description":"Defines the cluster rebalance response.","properties":{"rebalancingPlanId":{"description":"ID of the rebalancing plan.","type":"string"}},"type":"object"},"castai.autoscaler.v1beta1.GetClusterSettingsResponse":{"description":"Defines the cluster settings response.","properties":{"agentVersion":{"description":"Return cluster agent version.","type":"string"},"arm64Supported":{"description":"Is ARM64 supported.","type":"boolean"},"enableDefaultNodeTemplate":{"description":"Is default node template enabled.","type":"boolean"},"evictorMaxTargetNodes":{"description":"Evictor maximum target nodes.","format":"int32","nullable":true,"type":"integer"},"evictorVersion":{"description":"Desired cluster evictor version.","type":"string"},"ipThresholdSubnetSpread":{"description":"The threshold for minimal number of available IPs in a subnet to be considered for subnet spread.","format":"int32","nullable":true,"type":"integer"},"karpenterInstalled":{"description":"Indicates whether Karpenter is installed in the cluster.","type":"boolean"},"karpenterVersion":{"description":"The version of Karpenter installed in the cluster. May be empty if Karpenter is not installed.","nullable":true,"type":"string"},"priceThresholdZoneSpread":{"description":"Price threshold zone spread.","format":"double","nullable":true,"type":"number"},"reservationsEnabled":{"description":"Is reservations support enabled.","type":"boolean"},"windowsAutoscalingEnabled":{"description":"Is autoscaling of Windows nodes enabled.","type":"boolean"}},"required":["arm64Supported","enableDefaultNodeTemplate","evictorVersion","karpenterInstalled","reservationsEnabled"],"type":"object"},"castai.autoscaler.v1beta1.GetClusterWorkloadsResponse":{"description":"Defines the cluster workloads response.","properties":{"clusterId":{"description":"ID of the cluster that is being rebalanced.","type":"string"},"workloads":{"description":"A list of workloads.","items":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.GetClusterWorkloadsResponse.Workload"},"type":"array"}},"type":"object"},"castai.autoscaler.v1beta1.GetClusterWorkloadsResponse.Workload":{"description":"Defines a cluster workload.","properties":{"costImpact":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.GetClusterWorkloadsResponse.Workload.CostImpact"},"issues":{"description":"A list of workload issues.","items":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.GetClusterWorkloadsResponse.Workload.Issue"},"type":"array"},"memoryMib":{"description":"Total memory capacity of this workload in MiBs.","format":"int32","type":"integer"},"milliCpu":{"description":"Total milli CPU capacity of this workload.","format":"int32","type":"integer"},"name":{"description":"Workload name.","type":"string"},"namespace":{"description":"Workload namespace.","type":"string"},"nodes":{"description":"Nodes used by this workload.","items":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.GetClusterWorkloadsResponse.Workload.Node"},"type":"array"},"replicas":{"description":"Replicas count.","format":"int32","type":"integer"},"resource":{"description":"Kubernetes resource name.","type":"string"},"status":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.GetClusterWorkloadsResponse.Workload.WorkloadStatus"}},"type":"object"},"castai.autoscaler.v1beta1.GetClusterWorkloadsResponse.Workload.CostImpact":{"description":"Defines the cost impact of rebalancing a workload.","properties":{"level":{"description":"Cost impact level.\n\n* `low` - low cost impact.\n* `medium` - medium cost impact.\n* `high` - high cost impact.","type":"string"},"value":{"description":"Numeric cost impact value.","format":"int32","type":"integer"}},"type":"object"},"castai.autoscaler.v1beta1.GetClusterWorkloadsResponse.Workload.Issue":{"description":"Defines the workload rebalancing issue.","properties":{"description":{"title":"Issue description","type":"string"},"kind":{"description":"Issue kind.","type":"string"}},"type":"object"},"castai.autoscaler.v1beta1.GetClusterWorkloadsResponse.Workload.Node":{"description":"Defines a workload node.","properties":{"id":{"description":"Node id.","type":"string"},"name":{"description":"Node name.","type":"string"},"specs":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.GetClusterWorkloadsResponse.Workload.Node.Specifications"},"status":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.GetClusterWorkloadsResponse.Workload.Node.NodeStatus"},"totalPods":{"description":"Pods count in node.","format":"int32","type":"integer"},"totalProblematicPods":{"description":"Problematic pods count in node.","format":"int32","type":"integer"},"workloadReplicas":{"description":"How many of this workload replicas exist on this particular node.","format":"int32","type":"integer"}},"type":"object"},"castai.autoscaler.v1beta1.GetClusterWorkloadsResponse.Workload.Node.NodeStatus":{"description":"Defines the migration status.","properties":{"migrationStatus":{"description":"Migration status.\n\n* `ready` - node is ready to be rebalanced.\n* `not-ready` - node is not ready to be rebalanced.","type":"string"},"reason":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.GetClusterWorkloadsResponse.Workload.Node.NotReadyStatusReason"}},"type":"object"},"castai.autoscaler.v1beta1.GetClusterWorkloadsResponse.Workload.Node.NotReadyStatusReason":{"default":"Invalid","description":"Defines the reason for the node to be considered as not ready.","enum":["Invalid","ProblematicWorkloads","AlreadyRebalancing","RebalancingNodeDrainFailed"],"type":"string"},"castai.autoscaler.v1beta1.GetClusterWorkloadsResponse.Workload.Node.Specifications":{"description":"Defines node specifications.","properties":{"instanceType":{"description":"Instance type of this node.","type":"string"},"memoryMib":{"description":"Total memory capacity of this node in MiBs.","format":"int32","type":"integer"},"milliCpu":{"description":"Total milli CPU capacity of this node.","format":"int32","type":"integer"}},"type":"object"},"castai.autoscaler.v1beta1.GetClusterWorkloadsResponse.Workload.WorkloadStatus":{"properties":{"migrationStatus":{"description":"* `ready` - the workload can be rebalanced.\n* `not-ready` - the workload cannot be rebalanced.","title":"Migration status","type":"string"}},"title":"Defines migration status","type":"object"},"castai.autoscaler.v1beta1.GetKarpenterMigrationIntentResponse":{"properties":{"awsNodeTemplates":{"items":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.AWSNodeTemplateMigrationIntent"},"type":"array"},"ec2NodeClasses":{"items":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.EC2NodeClassMigrationIntent"},"type":"array"},"nodePools":{"items":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.NodePoolMigrationIntent"},"type":"array"},"provisioners":{"items":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.ProvisionerMigrationIntent"},"type":"array"}},"type":"object"},"castai.autoscaler.v1beta1.GetProblematicNodesResponse":{"description":"Defines the requests for getting problematic nodes for a specific cluster.","properties":{"clusterId":{"description":"The id of the cluster.","type":"string"},"hasProblems":{"description":"Identifies whether cluster contains any problems.","type":"boolean"},"nodes":{"description":"Problematic nodes.","items":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.GetProblematicNodesResponse.Node"},"type":"array"}},"type":"object"},"castai.autoscaler.v1beta1.GetProblematicNodesResponse.Node":{"description":"Defines a problematic node.","properties":{"name":{"description":"Name of the node.","type":"string"},"nodeId":{"description":"ID of the node.","type":"string"},"problems":{"description":"List of controller problems.","items":{"type":"string"},"type":"array"}},"type":"object"},"castai.autoscaler.v1beta1.GetProblematicWorkloadsResponse":{"description":"Defines the requests for getting problematic workloads for a specific cluster.","properties":{"clusterId":{"description":"The id of the cluster.","type":"string"},"controllers":{"description":"Problematic workload controllers.","items":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.GetProblematicWorkloadsResponse.Controller"},"type":"array"},"hasProblems":{"description":"Identifies whether cluster contains any problems.","type":"boolean"},"standalonePods":{"description":"Problematic standalone pods.","items":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.GetProblematicWorkloadsResponse.StandalonePod"},"type":"array"}},"type":"object"},"castai.autoscaler.v1beta1.GetProblematicWorkloadsResponse.Controller":{"description":"Defines a problematic workloads controller.","properties":{"kind":{"description":"Kind of the controller.","type":"string"},"name":{"description":"Name of the controller.","type":"string"},"problems":{"description":"List of controller problems.","items":{"type":"string"},"type":"array"}},"type":"object"},"castai.autoscaler.v1beta1.GetProblematicWorkloadsResponse.StandalonePod":{"description":"Defines a problematic standalone pod.","properties":{"name":{"description":"Name of the pod.","type":"string"},"problems":{"description":"List of pod problems.","items":{"type":"string"},"type":"array"}},"type":"object"},"castai.autoscaler.v1beta1.GetRebalancedWorkloadsResponse":{"description":"Defines the rebalanced workloads response.","properties":{"isActive":{"description":"Whether rebalancing is active or not.","type":"boolean"},"selectors":{"description":"Label selectors matching workloads which are being rebalanced.","items":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.GetRebalancedWorkloadsResponse.LabelSelector"},"type":"array"}},"type":"object"},"castai.autoscaler.v1beta1.GetRebalancedWorkloadsResponse.LabelSelector":{"description":"Selector is a proto mirror of the metav1.LabelSelector K8s API object. Properties `match_labels` and\n`match_expressions` are ANDed.","properties":{"matchExpressions":{"description":"A more advanced label query with operators. Multiple expressions are ANDed.","items":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.GetRebalancedWorkloadsResponse.LabelSelector.Expression"},"type":"array"},"matchLabels":{"additionalProperties":{"type":"string"},"description":"Used to query resource labels.","type":"object"}},"type":"object"},"castai.autoscaler.v1beta1.GetRebalancedWorkloadsResponse.LabelSelector.Expression":{"description":"Expression is a proto mirror of the metav1.LabelSelectorRequirement K8s API object.","properties":{"key":{"description":"Key is a label.","type":"string"},"operator":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.GetRebalancedWorkloadsResponse.LabelSelector.Expression.Operator"},"values":{"description":"Values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the\noperator is Exists or DoesNotExist, the values array must be empty.","items":{"type":"string"},"type":"array"}},"type":"object"},"castai.autoscaler.v1beta1.GetRebalancedWorkloadsResponse.LabelSelector.Expression.Operator":{"default":"Invalid","description":"A set of operators which can be used in the label selector expressions.","enum":["Invalid","In","NotIn","Exists","DoesNotExist"],"type":"string"},"castai.autoscaler.v1beta1.ListRebalancingPlansResponse":{"description":"Defines list cluster rebalancing plans response.","properties":{"items":{"items":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse"},"type":"array"},"nextCursor":{"type":"string"}},"type":"object"},"castai.autoscaler.v1beta1.MigrateKarpenterDefinitionsResponse":{"properties":{"awsNodeTemplates":{"items":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.AWSNodeTemplateMigrationResult"},"type":"array"},"ec2NodeClasses":{"items":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.EC2NodeClassMigrationResult"},"type":"array"},"nodePools":{"items":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.NodePoolMigrationResult"},"type":"array"},"provisioners":{"items":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.ProvisionerMigrationResult"},"type":"array"}},"type":"object"},"castai.autoscaler.v1beta1.NodePoolMigrationIntent":{"properties":{"canMigrate":{"description":"Indicates whether the NodePool can be migrated.","type":"boolean"},"castaiNodeTemplateName":{"description":"The name given to the CAST AI Node Template after migration.","type":"string"},"ec2NodeClassName":{"description":"Karpenter's EC2NodeClass name that this NodePool is referencing.","type":"string"},"error":{"description":"Error describing why NodePool migration cannot be performed.\nDeprecated: Use errors instead.","nullable":true,"type":"string"},"errorMessages":{"description":"Error messages describing why NodePool migration cannot be performed or won't be performed fully.","items":{"type":"string"},"type":"array"},"name":{"description":"Karpenter NodePool name.","type":"string"},"valid":{"description":"Indicates whether NodePool migration intent can be executed.\nDeprecated: Use can_migrate instead.","type":"boolean"}},"type":"object"},"castai.autoscaler.v1beta1.NodePoolMigrationResult":{"properties":{"castaiNodeTemplateId":{"description":"The id of the CAST AI Node Template.","type":"string"},"castaiNodeTemplateName":{"description":"The name of the CAST AI Node Template.","type":"string"},"ec2NodeClassName":{"description":"Karpenter's EC2NodeClass name that this NodePool is referencing.","type":"string"},"error":{"description":"Error describing why NodePool migration failed.\nDeprecated: Use errors instead.","nullable":true,"type":"string"},"errorMessages":{"description":"Error messages describing why NodePool migration failed or couldn't complete fully.","items":{"type":"string"},"type":"array"},"name":{"description":"Karpenter NodePool name.","type":"string"},"success":{"description":"Indicates whether NodePool migration was successful.","type":"boolean"}},"type":"object"},"castai.autoscaler.v1beta1.Os":{"default":"unknown","enum":["unknown","linux","windows"],"title":"A set of operating system","type":"string"},"castai.autoscaler.v1beta1.ProvisionerMigrationIntent":{"properties":{"awsNodeTemplateName":{"description":"Karpenter's AWSNodeTemplate name that this Provisioner is referencing.","type":"string"},"canMigrate":{"description":"Indicates whether the Provisioner can be migrated.","type":"boolean"},"castaiNodeTemplateName":{"description":"The name given to the CAST AI Node Template after migration.","type":"string"},"error":{"description":"Error describing why Provisioner migration cannot be performed.\nDeprecated: Use errors instead.","nullable":true,"type":"string"},"errorMessages":{"description":"Error messages describing why Provisioner migration cannot be performed or won't be performed fully.","items":{"type":"string"},"type":"array"},"name":{"description":"Karpenter Provisioner name.","type":"string"},"valid":{"description":"Indicates whether Provisioner migration intent can be executed.\nDeprecated: Use can_migrate instead.","type":"boolean"}},"type":"object"},"castai.autoscaler.v1beta1.ProvisionerMigrationResult":{"properties":{"awsNodeTemplateName":{"description":"Karpenter's AWSNodeTemplate name that this Provisioner is referencing.","type":"string"},"castaiNodeTemplateId":{"description":"The id of the CAST AI Node Template.","type":"string"},"castaiNodeTemplateName":{"description":"The name of the CAST AI Node Template.","type":"string"},"error":{"description":"Error describing why Provisioner migration failed.\nDeprecated: Use errors instead.","nullable":true,"type":"string"},"errorMessages":{"description":"Error messages describing why Provisioner migration failed or couldn't complete fully.","items":{"type":"string"},"type":"array"},"name":{"description":"Karpenter Provisioner name.","type":"string"},"success":{"description":"Indicates whether Provisioner migration was successful.","type":"boolean"}},"type":"object"},"castai.autoscaler.v1beta1.RebalancingNode":{"properties":{"nodeId":{"title":"Node ID to rebalance","type":"string"}},"type":"object"},"castai.autoscaler.v1beta1.RebalancingPlanResponse":{"description":"Defines the cluster rebalancing plan response.","properties":{"clusterId":{"description":"ID of the cluster that is being rebalanced.","type":"string"},"configurations":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse.Configurations"},"createdAt":{"description":"Timestamp of the rebalancing plan creation.","format":"date-time","type":"string"},"createdNodesAt":{"description":"Timestamp of the rebalancing plan green node creation.","format":"date-time","type":"string"},"deletedNodesAt":{"description":"Timestamp of the rebalancing plan blue node deletion.","format":"date-time","type":"string"},"drainedNodesAt":{"description":"Timestamp of the rebalancing plan blue node draining.","format":"date-time","type":"string"},"errors":{"description":"Detailed error of rebalancing plan.","items":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse.PlanError"},"type":"array"},"evictGracefully":{"description":"During the drain \u0026 delete plan execution phase, if node eviction reaches a timeout, it will be deleted forcefully, terminating all workloads that failed to gracefully close on time.\nWhen this option is enabled, such nodes will be kept for manual inspection and/or eventual automatic cleanup when node becomes empty.\nSpecial annotation \"rebalancing.cast.ai/status=drain-failed\" will be added to these nodes.","type":"boolean"},"executionConditions":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.ExecutionConditions"},"finishedAt":{"description":"Timestamp of the rebalancing plan finishing.","format":"date-time","type":"string"},"generatedAt":{"description":"Timestamp of the rebalancing plan generation.","format":"date-time","type":"string"},"keepDrainTimeoutNodes":{"title":"Deprecated: use evict_gracefully instead","type":"boolean"},"minNodes":{"description":"Minimum count of worker nodes to be had in the rebalancing plan. Default is 3.","format":"int32","type":"integer"},"operations":{"description":"List of operations needed to execute this rebalancing plan. Documents the factual actions needed to be taken and/or\nactions already done.","items":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse.Operation"},"type":"array"},"rebalancingNodeIds":{"description":"Subset of the node IDs which were selected to rebalance. In case of full cluster rebalancing, this list\nwill be empty.","items":{"type":"string"},"type":"array"},"rebalancingPlanId":{"description":"ID of the rebalancing plan.","type":"string"},"scheduleId":{"description":"Defines the schedule ID that triggered the creation of this rebalancing plan. Can be null if the rebalancing\nplan didn't originate from a rebalancing schedule.","nullable":true,"type":"string"},"status":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.Status"},"triggeredAt":{"description":"Timestamp of the rebalancing plan triggering.","format":"date-time","type":"string"},"updatedAt":{"description":"Timestamp of the rebalancing plan last update.","format":"date-time","type":"string"}},"type":"object"},"castai.autoscaler.v1beta1.RebalancingPlanResponse.Configurations":{"description":"Defines the cluster rebalancing plan configurations.","properties":{"achieved":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse.Configurations.ConfigurationTotals"},"achievedDiff":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse.Configurations.Diff"},"blue":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse.Configurations.Configuration"},"diff":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse.Configurations.Diff"},"green":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse.Configurations.Configuration"}},"type":"object"},"castai.autoscaler.v1beta1.RebalancingPlanResponse.Configurations.Configuration":{"description":"Defines a single rebalancing plan configuration.","properties":{"clusterTotals":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse.Configurations.Totals"},"nodes":{"description":"A list of node in this configuration.","items":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse.Configurations.Configuration.Node"},"type":"array"},"totals":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse.Configurations.Totals"}},"type":"object"},"castai.autoscaler.v1beta1.RebalancingPlanResponse.Configurations.Configuration.Node":{"description":"Defines a single node in the configuration.","properties":{"createdAt":{"description":"Timestamp of the node creation date.","format":"date-time","type":"string"},"id":{"description":"Node ID, if the node already exists.\nGreen nodes, to be created, won't have node_id.","nullable":true,"type":"string"},"instanceType":{"description":"The instance type of this node.","type":"string"},"isControlPlane":{"description":"Whether this node is control plan node.","type":"boolean"},"isLegacy":{"description":"Whether the node is legacy.","type":"boolean"},"isSpot":{"description":"Whether this node is a spot instance.","type":"boolean"},"isSpotFallback":{"description":"Whether this node is a spot fallback.","type":"boolean"},"managedBy":{"description":"The provider name which managed this node.\n\nPossible types:\n* `CASTAI` - the node is managed by CAST AI.\n* `EKS` - the node is managed by the AWS EKS service.\n* `GKE` - the node is managed by the GCP GKE service.\n* `AKS` - the node is managed by the Azure AKS service.\n* `KOPS` - the node is managed by the cluster manager tool kOps.","type":"string"},"memoryMib":{"description":"Memory capacity of this node in MiBs.","format":"int32","type":"integer"},"milliCpu":{"description":"Milli CPU capacity of this node.","format":"int32","type":"integer"},"name":{"description":"Name of the node.","type":"string"},"os":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.Os"},"priceHourly":{"description":"The hourly price of this node in $ currency.","type":"string"},"provisionedNode":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse.Configurations.Configuration.ProvisionedNode"},"totalPods":{"description":"Total number of pods in this node.","format":"int32","type":"integer"},"totalProblematicPods":{"description":"Total number of problematic pods in this node.","format":"int32","type":"integer"}},"type":"object"},"castai.autoscaler.v1beta1.RebalancingPlanResponse.Configurations.Configuration.ProvisionedNode":{"description":"Defines a provisioned version of the node in the configuration.","properties":{"createdAt":{"description":"Timestamp of the node creation date.","format":"date-time","type":"string"},"instanceType":{"description":"The instance type of this node.","type":"string"},"isSpot":{"description":"Whether this node is a spot instance.","type":"boolean"},"isSpotFallback":{"description":"Whether this node is a spot fallback.","type":"boolean"},"memoryMib":{"description":"Memory capacity of this node in MiBs.","format":"int32","type":"integer"},"milliCpu":{"description":"Milli CPU capacity of this node.","format":"int32","type":"integer"},"os":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.Os"},"priceHourly":{"description":"The hourly price of this node in $ currency.","type":"string"}},"type":"object"},"castai.autoscaler.v1beta1.RebalancingPlanResponse.Configurations.ConfigurationTotals":{"description":"Contains affected and cluster node aggregated calculations.","properties":{"affectedNodeTotals":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse.Configurations.Totals"},"clusterTotals":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse.Configurations.Totals"}},"required":["affectedNodeTotals","clusterTotals"],"type":"object"},"castai.autoscaler.v1beta1.RebalancingPlanResponse.Configurations.Diff":{"description":"Defines the difference between blue and green node configurations.","properties":{"clusterSavingsPercentage":{"description":"Saving percentage achieved by rebalancing the selected nodes for the whole cluster.","type":"string"},"priceHourly":{"description":"Hourly price difference between blue and green node configurations in $ currency.","type":"string"},"priceMonthly":{"description":"Monthly price difference between blue and green node configurations in $ currency.","type":"string"},"savingsPercentage":{"description":"Savings percentage achieved by rebalancing the selected nodes.","type":"string"}},"type":"object"},"castai.autoscaler.v1beta1.RebalancingPlanResponse.Configurations.Totals":{"description":"Defines the totals of a single configuration.","properties":{"memoryMib":{"description":"Total memory capacity of this configuration in MiBs.","format":"int32","type":"integer"},"migratablePods":{"description":"Count of pods which can be migrated. They come from replaceable nodes.","format":"int32","type":"integer"},"milliCpu":{"description":"Total milli CPU capacity of this configuration.","format":"int32","type":"integer"},"nodes":{"description":"Count of nodes in this configuration.","format":"int32","type":"integer"},"pods":{"description":"Total number of pods in this configuration.","format":"int32","type":"integer"},"priceHourly":{"description":"Total hourly price of this configuration in $ currency.","type":"string"},"priceMonthly":{"description":"Total monthly price of this configuration in $ currency.","type":"string"},"problematicPods":{"description":"Total number of problematic pods in this configuration.","format":"int32","type":"integer"},"replaceableNodes":{"description":"Count of nodes which can be replaced in this configuration.","format":"int32","type":"integer"}},"type":"object"},"castai.autoscaler.v1beta1.RebalancingPlanResponse.Operation":{"description":"Defines an actual action needed to be taken and/or already done.","properties":{"createParams":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse.Operation.CreateParams"},"createdAt":{"description":"Timestamp of the operation creation.","format":"date-time","type":"string"},"deleteParams":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse.Operation.DeleteParams"},"drainParams":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse.Operation.DrainParams"},"error":{"description":"Error value if the operation has finished with an error.","nullable":true,"type":"string"},"finishedAt":{"description":"Timestamp of the operation finish date. Only present when the operation has finished, either with an error or not.","format":"date-time","nullable":true,"type":"string"},"id":{"description":"The id of the operation.","type":"string"},"nodeId":{"description":"The id of the node this operation will be executed on.","nullable":true,"type":"string"},"prepareParams":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse.Operation.PrepareParams"},"type":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse.Operation.Type"}},"type":"object"},"castai.autoscaler.v1beta1.RebalancingPlanResponse.Operation.CreateParams":{"description":"Defines the parameters used for the `create_node` operation type.","properties":{"azName":{"description":"The availability zone name of the created node. If empty - the AZ name will be random.","nullable":true,"type":"string"},"csp":{"description":"The cloud service provider name.","type":"string"},"instanceType":{"description":"The instance type of the created node.","type":"string"},"isSpot":{"description":"Whether the created node is a spot instance.","type":"boolean"},"isSpotFallback":{"description":"Whether the node is a spot fallback.","type":"boolean"},"nodeConfigurationId":{"description":"Node configuration ID to be used for the new node.","type":"string"},"subnetId":{"description":"The subnet id of the created node. if empty - the subnet id will be random based on the availability zone.","nullable":true,"type":"string"},"volumeSizeGib":{"description":"The volume size in GiB of the created node.","format":"int32","type":"integer"}},"type":"object"},"castai.autoscaler.v1beta1.RebalancingPlanResponse.Operation.DeleteParams":{"description":"Defines the parameters for the `delete_node` operation type.","properties":{"csp":{"description":"The cloud service provider name.","type":"string"},"instanceType":{"description":"The instance type of the node.","type":"string"},"isSpot":{"description":"Whether the node is a spot instance.","type":"boolean"},"isSpotFallback":{"description":"Whether the node is a spot fallback.","type":"boolean"}},"type":"object"},"castai.autoscaler.v1beta1.RebalancingPlanResponse.Operation.DrainParams":{"description":"Defines the parameters for the `drain_node` operation type.","properties":{"csp":{"description":"The cloud service provider name.","type":"string"},"instanceType":{"description":"The instance type of the node.","type":"string"},"isSpot":{"description":"Whether the node is a spot instance.","type":"boolean"},"isSpotFallback":{"description":"Whether the node is a spot fallback.","type":"boolean"}},"type":"object"},"castai.autoscaler.v1beta1.RebalancingPlanResponse.Operation.PrepareParams":{"description":"Defines the parameters for the `prepare_node` operation type.","properties":{"csp":{"description":"The cloud service provider name.","type":"string"},"instanceType":{"description":"The instance type of the node.","type":"string"},"isSpot":{"description":"Whether the node is a spot instance.","type":"boolean"},"isSpotFallback":{"description":"Whether the node is a spot fallback.","type":"boolean"}},"type":"object"},"castai.autoscaler.v1beta1.RebalancingPlanResponse.Operation.Type":{"default":"invalid","description":"Type of the operation.\n\nPossible types:\n* `create_node` - a node will be created with specific `create` `params`.\n* `prepare_node` - a node will be prepared with specific `prepared` `params`.\n* `drain_node` - a node will be drained with specific `drain` `params`.\n* `delete_node` - a node will be deleted with specific `delete` `params`.","enum":["invalid","create_node","prepare_node","drain_node","delete_node"],"type":"string"},"castai.autoscaler.v1beta1.RebalancingPlanResponse.PlanError":{"description":"Detailed error.","properties":{"message":{"description":"Detailed error message.","type":"string"},"node":{"description":"Node id.","nullable":true,"type":"string"},"pod":{"description":"Pod name.","nullable":true,"type":"string"},"reason":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse.PlanError.Reason"}},"type":"object"},"castai.autoscaler.v1beta1.RebalancingPlanResponse.PlanError.Reason":{"default":"invalid","description":"Defines the reason why the rebalancing plan failed.\n\n* `rebalancing_plan_generation_failed` - the rebalancing plan generation failed.\n* `upscaling_failed` - the upscaling of the cluster failed.\n* `node_drain_failed` - the drain of a node failed.\n* `node_create_failed` - the creation of a node failed.\n* `node_prepare_failed` - the preparation of a node failed.\n* `node_delete_failed` - the deletion of a node failed.\n* `rebalancing_plan_timeout` - the rebalancing plan timed out.\n* `achieved_savings_below_threshold` - the achieved savings are below the threshold.\n* `unknown` - the reason is unknown.","enum":["invalid","rebalancingPlanGenerationFailed","upscalingFailed","nodeDrainFailed","nodeCreateFailed","nodePrepareFailed","nodeDeleteFailed","rebalancingPlanTimeout","achievedSavingsBelowThreshold","unknown"],"type":"string"},"castai.autoscaler.v1beta1.Status":{"default":"invalid","description":"Status of the rebalancing plan.\n\n* `generating` - the rebalancing plan is new and currently is being generated.\n* `generated` - the rebalancing plan has been generated and can be previewed.\n* `creating_nodes` - the rebalancing plan is being executed, green nodes are being created.\n* `preparing_nodes` - the rebalancing plan is being executed, green nodes are being prepared.\n* `draining_nodes` - the rebalancing plan is being executed, blue nodes are being drained.\n* `deleting_nodes` - the rebalancing plan is being executed, blue nodes are being deleted.\n* `finished` - the rebalancing plan has finished successfully.\n* `partially_finished` - the rebalancing plan has partially finished. Used when graceful rebalancing is enabled.\n* `error` - the rebalancing plan has failed.","enum":["invalid","generating","generated","creating_nodes","preparing_nodes","draining_nodes","deleting_nodes","finished","error","partially_finished"],"type":"string"},"castai.evictor.v1.AdvancedConfig":{"description":"AdvancedConfig the evictor advanced configuration.","properties":{"evictionConfig":{"items":{"$ref":"#/components/schemas/castai.evictor.v1.EvictionConfig"},"title":"EvictionConfig specific settings targeting pods and nodes","type":"array"}},"required":["evictionConfig"],"type":"object"},"castai.evictor.v1.EvictionConfig":{"description":"EvictionConfig used to specify more granular settings per node/pod filters.","properties":{"nodeSelector":{"$ref":"#/components/schemas/castai.evictor.v1.NodeSelector"},"podSelector":{"$ref":"#/components/schemas/castai.evictor.v1.PodSelector"},"settings":{"$ref":"#/components/schemas/castai.evictor.v1.EvictionSettings"}},"required":["settings"],"type":"object"},"castai.evictor.v1.EvictionSettings":{"properties":{"aggressive":{"$ref":"#/components/schemas/castai.evictor.v1.EvictionSettings.SettingEnabled"},"disposable":{"$ref":"#/components/schemas/castai.evictor.v1.EvictionSettings.SettingEnabled"},"removalDisabled":{"$ref":"#/components/schemas/castai.evictor.v1.EvictionSettings.SettingEnabled"}},"title":"EvictionSettings defines eviction settings","type":"object"},"castai.evictor.v1.EvictionSettings.SettingEnabled":{"properties":{"enabled":{"type":"boolean"}},"required":["enabled"],"title":"SettingEnabled specify if the current setting is enabled/disabled","type":"object"},"castai.evictor.v1.LabelSelector":{"description":"LabelSelector is a proto mirror of the metav1.LabelSelector K8s API object. Properties `match_labels` and\n`match_expressions` are ANDed.","properties":{"matchExpressions":{"description":"A more advanced label query with operators. Multiple expressions are ANDed.","items":{"$ref":"#/components/schemas/castai.evictor.v1.LabelSelector.Expression"},"type":"array"},"matchLabels":{"additionalProperties":{"type":"string"},"description":"Used to query resource labels.","type":"object"}},"type":"object"},"castai.evictor.v1.LabelSelector.Expression":{"description":"Expression is a proto mirror of the metav1.LabelSelectorRequirement K8s API object.","properties":{"key":{"description":"Key is a label.","type":"string"},"operator":{"$ref":"#/components/schemas/castai.evictor.v1.LabelSelector.Expression.Operator"},"values":{"description":"Values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the\noperator is Exists or DoesNotExist, the values array must be empty.","items":{"type":"string"},"type":"array"}},"required":["key","operator"],"type":"object"},"castai.evictor.v1.LabelSelector.Expression.Operator":{"default":"Invalid","description":"Operator set of operators which can be used in the label selector expressions.","enum":["Invalid","In","NotIn","Exists","DoesNotExist"],"type":"string"},"castai.evictor.v1.NodeSelector":{"properties":{"labelSelector":{"$ref":"#/components/schemas/castai.evictor.v1.LabelSelector"}},"required":["labelSelector"],"title":"NodeSelector a set of constrains for targeting Nodes","type":"object"},"castai.evictor.v1.PodSelector":{"properties":{"kind":{"title":"kind can be Pod, Job, CronJob","type":"string"},"labelSelector":{"$ref":"#/components/schemas/castai.evictor.v1.LabelSelector"},"namespace":{"title":"namespace for the pod","type":"string"}},"title":"PodSelector a set of constrains for targeting pods","type":"object"},"castai.features.v1.FeatureFlag":{"properties":{"defaultValue":{"title":"Default value for the flag evaluation if error or not found","type":"string"},"description":{"description":"Description of the flag.","type":"string"},"key":{"description":"Flag key of the requested flag.","type":"string"},"variations":{"description":"Variations of the flag.","items":{"$ref":"#/components/schemas/castai.features.v1.Variation"},"type":"array"}},"required":["key"],"title":"ResolveResListResponseponse body for flag listing","type":"object"},"castai.features.v1.FeatureFlagResolved":{"description":"FeatureFlagResolved body for flag evaluation. used by the ResolveBoolean rpc.","properties":{"boolean":{"type":"boolean"},"flagName":{"description":"Key prefix is prefix of the requested flags. If not set will evaluate all flags.","type":"string"},"integer":{"format":"int64","type":"string"},"metadata":{"$ref":"#/components/schemas/castai.features.v1.Metadata"},"reason":{"title":"The reason for the given return value, see https://openfeature.dev/docs/specification/types#resolution-details","type":"string"},"string":{"type":"string"},"variant":{"description":"The variant name of the returned flag value.","type":"string"}},"required":["boolean","flagName","integer","string"],"type":"object"},"castai.features.v1.ListResponse":{"description":"ListResponse body for feature flag listing, used by the List rpc.","properties":{"items":{"description":"FeatureFlag is the feature flag.","items":{"$ref":"#/components/schemas/castai.features.v1.FeatureFlag"},"type":"array"}},"required":["items"],"type":"object"},"castai.features.v1.Metadata":{"properties":{"metadata":{"additionalProperties":{"type":"string"},"type":"object"}},"title":"Metadata for this evaluation is base64 encoded object structure describing the EvaluationMetadata used in the flag evaluation, see\nhttps://openfeature.dev/docs/reference/concepts/evaluation-metadata","type":"object"},"castai.features.v1.ResolveMessage":{"properties":{"flagName":{"type":"string"},"flagNamePrefix":{"type":"string"},"payload":{"$ref":"#/components/schemas/castai.features.v1.ResolvePayload"},"targetingKey":{"description":"Targeting key of the requested flag. If not provided, random will be generated at runtime.\nThis identifier is used to identify the user.","type":"string"}},"type":"object"},"castai.features.v1.ResolvePayload":{"properties":{"boolean":{"type":"boolean"},"context":{"title":"Key value pair for EvaluationContext used in the flag evaluation, see https://openfeature.dev/docs/reference/concepts/evaluation-context","type":"object"},"integer":{"format":"int64","type":"string"},"string":{"type":"string"}},"type":"object"},"castai.features.v1.ResolveResponse":{"properties":{"items":{"description":"FeatureFlagResolved is the resolved feature flag.","items":{"$ref":"#/components/schemas/castai.features.v1.FeatureFlagResolved"},"type":"array"}},"required":["items"],"type":"object"},"castai.features.v1.Variation":{"properties":{"boolean":{"type":"boolean"},"integer":{"format":"int64","type":"string"},"key":{"description":"The variant name of the returned flag value.","type":"string"},"string":{"type":"string"}},"required":["boolean","integer","key","string"],"type":"object"},"castai.inventory.v1beta1.AddReservationResponse":{"properties":{"reservation":{"$ref":"#/components/schemas/castai.inventory.v1beta1.ReservationDetails"}},"type":"object"},"castai.inventory.v1beta1.AttachableGPUDevice":{"properties":{"blacklistedAt":{"format":"date-time","title":"BlacklistedAt time when last ICE error was received","type":"string"},"count":{"description":"Count of GPU to be attached.","format":"int32","type":"integer"},"manufacturer":{"$ref":"#/components/schemas/castai.inventory.v1beta1.AttachableGPUDevice.Manufacturer"},"memoryMib":{"description":"Total amount of memory of the GPUs to be attached MiB.","format":"int32","type":"integer"},"name":{"description":"Name of the GPU. For example nvidia-tesla-k80.","type":"string"},"priceHourly":{"description":"Total price of GPUs per hour.","type":"string"}},"type":"object"},"castai.inventory.v1beta1.AttachableGPUDevice.Manufacturer":{"default":"UNKNOWN","description":"GPU manufacturer.","enum":["UNKNOWN","NVIDIA","AMD"],"type":"string"},"castai.inventory.v1beta1.AzureReservation":{"properties":{"count":{"format":"int32","title":"Count of reserved instances","type":"integer"},"id":{"title":"ID the reservation id","type":"string"},"instanceType":{"title":"Reserved instance type","type":"string"},"instanceTypeCpu":{"format":"int64","readOnly":true,"title":"Instance type CPU count","type":"string"},"instanceTypeMemoryMib":{"format":"int64","readOnly":true,"title":"Instance type memory in MiB","type":"string"},"instanceTypesUsage":{"$ref":"#/components/schemas/castai.inventory.v1beta1.InstanceTypeBasedUsage"},"plan":{"$ref":"#/components/schemas/castai.inventory.v1beta1.AzureReservation.ReservationPlan"},"scope":{"title":"Scope","type":"string"},"scopeResourceGroup":{"title":"Scope resource group","type":"string"},"scopeSubscription":{"title":"Scope subscription","type":"string"},"status":{"title":"Commitment status","type":"string"}},"title":"AzureReservationContext represents Azure reservation data","type":"object"},"castai.inventory.v1beta1.AzureReservation.ReservationPlan":{"default":"ONE_YEAR","description":"- ONE_YEAR: 1 year commitment plan\n - THREE_YEAR: 3 year commitment plan","enum":["ONE_YEAR","THREE_YEAR"],"title":"Reservation plan enum","type":"string"},"castai.inventory.v1beta1.AzureReservationImport":{"properties":{"expirationDate":{"title":"ExpirationDate end date of reservation","type":"string"},"name":{"title":"Name unique reservation name in region for specific instance type","type":"string"},"productName":{"title":"Product name contains the reserved instance type","type":"string"},"purchaseDate":{"title":"PurchaseDate start date of reservation","type":"string"},"quantity":{"format":"int32","title":"Quantity amount of reserved instances","type":"integer"},"region":{"title":"Region reservation region","type":"string"},"reservationId":{"title":"Reservation id unique reservation id","type":"string"},"scope":{"title":"Scope the reservation scope","type":"string"},"scopeResourceGroup":{"title":"Scope resource group the reservation resource group","type":"string"},"scopeSubscription":{"title":"Scope subscription the reservation scope subscription","type":"string"},"status":{"title":"Status reservation status (e.g. Succeeded)","type":"string"},"term":{"title":"Term the reservation term plan (e.g. P1Y, P3Y)","type":"string"},"type":{"title":"Type of reservation (VirtualMachines means instance type)","type":"string"}},"type":"object"},"castai.inventory.v1beta1.Commitment":{"properties":{"allowedUsage":{"description":"Allowed usage specifies the part of the commitment that is allowed to be used. 1.0 means 100% of the commitment. Currently it's only supported for GCP CUDs.","format":"float","type":"number"},"azureReservationContext":{"$ref":"#/components/schemas/castai.inventory.v1beta1.AzureReservation"},"endDate":{"format":"date-time","nullable":true,"title":"End date of commitment","type":"string"},"gcpResourceCudContext":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GCPResourceCUD"},"id":{"readOnly":true,"title":"Commitment ID","type":"string"},"name":{"title":"Commitment name","type":"string"},"prioritization":{"title":"Prioritization specifies if resources used by lower priority clusters should be ignored when trying to cover an instance with a commitment","type":"boolean"},"region":{"title":"Region where commitment is applicable","type":"string"},"startDate":{"format":"date-time","title":"Start date of commitment","type":"string"},"status":{"$ref":"#/components/schemas/castai.inventory.v1beta1.Commitment.Status"},"updatedAt":{"format":"date-time","title":"Timestamp of the last update of the commitment","type":"string"}},"title":"Reservation represents reservation data that are used for creating reservation entity","type":"object"},"castai.inventory.v1beta1.Commitment.Status":{"default":"Inactive","description":"- Inactive: Inactive commitment\n - Active: Active commitment","enum":["Inactive","Active"],"title":"Context savings agreement status","type":"string"},"castai.inventory.v1beta1.CommitmentAssignment":{"properties":{"clusterId":{"title":"ClusterID","type":"string"},"commitmentId":{"title":"CommitmentID","type":"string"},"id":{"readOnly":true,"title":"Assigned commitmentID","type":"string"},"priority":{"format":"int32","readOnly":true,"title":"Priority","type":"integer"}},"type":"object"},"castai.inventory.v1beta1.CountableInstanceType":{"properties":{"clusterId":{"title":"ClusterId to which instance type is associated","type":"string"},"count":{"format":"int32","title":"Count defines how many same instance types in same zone and region are used","type":"integer"},"instanceType":{"$ref":"#/components/schemas/castai.inventory.v1beta1.InstanceType"}},"title":"CountableInstanceType describes how many instance types of same type are used","type":"object"},"castai.inventory.v1beta1.Discount":{"properties":{"amount":{"title":"the amount of the discount","type":"string"},"type":{"title":"The type of discount","type":"string"}},"title":"Define the Discount message to represent different types of discounts","type":"object"},"castai.inventory.v1beta1.ExtensionType":{"default":"UNKNOWN_EXTENSION","enum":["UNKNOWN_EXTENSION","LOCAL_SSD","GPU"],"title":"Define an enum for extension types","type":"string"},"castai.inventory.v1beta1.GCPCommitmentImport":{"properties":{"autoRenew":{"type":"boolean"},"category":{"type":"string"},"creationTimestamp":{"type":"string"},"description":{"type":"string"},"endTimestamp":{"type":"string"},"id":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"plan":{"type":"string"},"region":{"type":"string"},"resources":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GCPResource"},"type":"array"},"selfLink":{"type":"string"},"startTimestamp":{"type":"string"},"status":{"type":"string"},"statusMessage":{"type":"string"},"type":{"type":"string"}},"type":"object"},"castai.inventory.v1beta1.GCPResource":{"properties":{"amount":{"type":"string"},"type":{"type":"string"}},"type":"object"},"castai.inventory.v1beta1.GCPResourceCUD":{"properties":{"cpu":{"format":"int64","title":"CPU count","type":"string"},"cudId":{"title":"CUD id from a cloud","type":"string"},"instanceTypesUsage":{"$ref":"#/components/schemas/castai.inventory.v1beta1.InstanceTypeBasedUsage"},"memoryMb":{"format":"int64","title":"Memory in MB","type":"string"},"plan":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GCPResourceCUD.CUDPlan"},"price":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GCPResourceCUDPrice"},"status":{"title":"Commitment status","type":"string"},"type":{"title":"Commitment type like 'COMPUTE_OPTIMIZED_C2D' or 'MEMORY_OPTIMIZED_M2D' https://cloud.google.com/compute/docs/instances/signing-up-committed-use-discounts#gcloud","type":"string"}},"title":"GCPResourceCUD represents GCP committed use discount data","type":"object"},"castai.inventory.v1beta1.GCPResourceCUD.CUDPlan":{"default":"TWELVE_MONTH","description":"- TWELVE_MONTH: 1 year commitment plan\n - THIRTY_SIX_MONTH: 3 year commitment plan","enum":["TWELVE_MONTH","THIRTY_SIX_MONTH"],"title":"Context savings agreement status","type":"string"},"castai.inventory.v1beta1.GCPResourceCUDPrice":{"properties":{"cpu":{"title":"Price of one core virtual CPU per hour","type":"string"},"memoryGb":{"title":"Price of one GB ram memory per hour","type":"string"}},"type":"object"},"castai.inventory.v1beta1.GPUDevice":{"properties":{"blacklistedAt":{"format":"date-time","title":"BlacklistedAt time when last ICE error was received","type":"string"},"count":{"format":"int32","title":"Count amount of graphic cards","type":"integer"},"manufacturer":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GPUDevice.Manufacturer"},"memoryMib":{"format":"int32","title":"MemoryMiB single GPU memory in MiB","type":"integer"},"name":{"title":"Name the name of GPU like k80","type":"string"},"priceHourly":{"description":"Price per GPU per hour.","type":"string"}},"type":"object"},"castai.inventory.v1beta1.GPUDevice.Manufacturer":{"default":"UNKNOWN","description":"- UNKNOWN: UNKNOWN is invalid.\n - NVIDIA: NVIDIA.\n - AMD: AMD.","enum":["UNKNOWN","NVIDIA","AMD"],"title":"GPU manufacturer","type":"string"},"castai.inventory.v1beta1.GPUExtension":{"properties":{"count":{"format":"int32","title":"The GPU count","type":"integer"},"manufacturer":{"title":"The GPU extension manufacturer","type":"string"},"name":{"title":"The GPU extension name","type":"string"}},"title":"Define the GPUExtension message","type":"object"},"castai.inventory.v1beta1.GPUInfo":{"properties":{"gpuDevices":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GPUDevice"},"type":"array"}},"type":"object"},"castai.inventory.v1beta1.GenericReservation":{"properties":{"count":{"format":"int32","nullable":true,"title":"Count amount of reserved instances","type":"integer"},"deepLinkToReservation":{"nullable":true,"title":"DeepLinkToReservation deep link to reservation (Azure specific)","type":"string"},"endDate":{"format":"date-time","nullable":true,"title":"EndDate end date of reservation","type":"string"},"expirationDate":{"format":"date-time","nullable":true,"title":"ExpirationDate end date of reservation (Azure specific)","type":"string"},"instanceType":{"nullable":true,"title":"InstanceType reserved instance type","type":"string"},"name":{"title":"Name unique reservation name in region for specific instance type","type":"string"},"price":{"nullable":true,"title":"Price reservation price","type":"string"},"productName":{"nullable":true,"title":"ProductName reserved instance type (Azure specific)","type":"string"},"provider":{"nullable":true,"title":"Provider cloud provider (gcp, aws, azure)","type":"string"},"purchaseDate":{"format":"date-time","nullable":true,"title":"PurchaseDate start date of reservation (Azure specific)","type":"string"},"quantity":{"format":"int32","nullable":true,"title":"Quantity amount of reserved instances (Azure specific)","type":"integer"},"region":{"title":"Region reservation region","type":"string"},"startDate":{"format":"date-time","nullable":true,"title":"StartDate start date of reservation","type":"string"},"type":{"nullable":true,"title":"Type resource type (Azure specific)","type":"string"},"zoneId":{"nullable":true,"title":"ZoneId reservation zone id","type":"string"},"zoneName":{"nullable":true,"title":"ZoneId reservation zone name","type":"string"}},"title":"Reservation represents reservation data that are used for creating reservation entity","type":"object"},"castai.inventory.v1beta1.GenericReservationsList":{"properties":{"items":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GenericReservation"},"title":"Reservations","type":"array"}},"title":"Generic reservations List","type":"object"},"castai.inventory.v1beta1.GetCommitmentAssignmentsResponse":{"properties":{"assignments":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.CommitmentAssignment"},"title":"Commitment assignments","type":"array"}},"type":"object"},"castai.inventory.v1beta1.GetCommitmentsAssignmentsResponse":{"properties":{"commitmentsAssignments":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.CommitmentAssignment"},"title":"Commitment assignments","type":"array"}},"type":"object"},"castai.inventory.v1beta1.GetCommitmentsResponse":{"properties":{"commitments":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.Commitment"},"title":"List of commitments","type":"array"}},"type":"object"},"castai.inventory.v1beta1.GetGCPCommitmentsImportScriptResponse":{"properties":{"script":{"type":"string"}},"type":"object"},"castai.inventory.v1beta1.GetOrganizationReservationsBalanceResponse":{"properties":{"reservations":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.ReservationBalanceV2"},"title":"Reservations all active reservations in organization","type":"array"}},"type":"object"},"castai.inventory.v1beta1.GetOrganizationResourceUsageResponse":{"properties":{"instanceTypes":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.InstanceTypeAggregate"},"title":"InstanceTypes all instance types used in organization","type":"array"}},"type":"object"},"castai.inventory.v1beta1.GetPricingForClusterNodeResponse":{"properties":{"node":{"$ref":"#/components/schemas/castai.inventory.v1beta1.NodePricing"}},"type":"object"},"castai.inventory.v1beta1.GetPricingForClusterNodesResponse":{"properties":{"nodes":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.NodePricing"},"title":"The pricing per node","type":"array"}},"type":"object"},"castai.inventory.v1beta1.GetPricingForOrganizationNodesResponse":{"properties":{"nodes":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.NodePricing"},"title":"The pricing per node","type":"array"}},"type":"object"},"castai.inventory.v1beta1.GetReservationsBalanceResponse":{"properties":{"reservations":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.ReservationBalance"},"title":"Reservations all active reservations in organization","type":"array"}},"type":"object"},"castai.inventory.v1beta1.GetReservationsResponse":{"properties":{"reservations":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.ReservationDetails"},"title":"Reservations all active reservations in organization","type":"array"}},"type":"object"},"castai.inventory.v1beta1.InstanceReliability":{"properties":{"spotReclaimRateHigh":{"format":"int64","type":"string"},"spotReclaimRateLow":{"format":"int64","title":"Frequency of interruption represents the rate at which Spot has reclaimed capacity during the trailing month","type":"string"}},"type":"object"},"castai.inventory.v1beta1.InstanceType":{"description":"InstanceType is a cloud service provider specific VM type with basic data.","properties":{"architecture":{"type":"string"},"bareMetal":{"type":"boolean"},"burstable":{"type":"boolean"},"castChoice":{"type":"boolean"},"computeOptimized":{"type":"boolean"},"cpuPrice":{"description":"CPU base price of the instance type. $/CPU hour.","type":"string"},"createdAt":{"description":"CreatedAt is the timestamp of the creation of this instance type object.","format":"date-time","type":"string"},"customInstance":{"type":"boolean"},"gpuInfo":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GPUInfo"},"id":{"description":"ID of the instance type.","type":"string"},"instanceType":{"description":"InstanceType name. This value is provider specific.","type":"string"},"networkInfo":{"$ref":"#/components/schemas/castai.inventory.v1beta1.NetworkInfo"},"obsolete":{"type":"boolean"},"os":{"type":"string"},"price":{"description":"Price of the instance type. $/hour.","type":"string"},"provider":{"description":"Provider name of the instance type.","type":"string"},"ram":{"description":"Ram (in MiB) available on the instance type.","format":"int64","type":"string"},"ramPrice":{"description":"RAM base price of the instance type. $/GiB hour.","type":"string"},"region":{"description":"Region of the instance type. This value is provider specific.","type":"string"},"spotReliability":{"$ref":"#/components/schemas/castai.inventory.v1beta1.InstanceReliability"},"storageInfo":{"$ref":"#/components/schemas/castai.inventory.v1beta1.StorageInfo"},"updatedAt":{"description":"UpdatedAt is the timestamp of the last update operation on this instance type object.","format":"date-time","type":"string"},"vcpu":{"description":"Vcpu available on the instance type.","format":"int64","type":"string"},"zones":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.InstanceZone"},"title":"zones may contain specific zone-wide information","type":"array"}},"type":"object"},"castai.inventory.v1beta1.InstanceTypeAggregate":{"properties":{"azId":{"description":"Availability zone ID of the instance type.","type":"string"},"clusterId":{"title":"ClusterId to which instance type is associated","type":"string"},"count":{"format":"int32","title":"Count defines how many same instance types in same zone and region are used","type":"integer"},"instanceType":{"description":"InstanceType name. This value is provider specific.","type":"string"},"nodeIds":{"items":{"type":"string"},"title":"NodeIds of nodes that are using this instance type","type":"array"},"price":{"description":"Price of the instance type. $/hour.","type":"string"},"provider":{"description":"Provider name of the instance type.","type":"string"},"ram":{"description":"Ram (in MiB) available on the instance type.","format":"int64","type":"string"},"region":{"description":"Region of the instance type. This value is provider specific.","type":"string"},"spot":{"description":"Spot defines if the instance type is a spot instance.","type":"boolean"},"vcpu":{"description":"Vcpu available on the instance type.","format":"int64","type":"string"}},"title":"InstanceTypeAggregate describes how many instance types of same type are used","type":"object"},"castai.inventory.v1beta1.InstanceTypeBasedUsage":{"properties":{"instanceTypes":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.InstanceTypeAggregate"},"title":"Aggregated instance types","type":"array"},"usage":{"format":"double","nullable":true,"title":"Percentage usage of commitment 0.0 - 1.0. This is set for Azure reservations","type":"number"},"usageDistribution":{"$ref":"#/components/schemas/castai.inventory.v1beta1.UsageDistribution"}},"title":"usage of instance types when commitment is instance type based","type":"object"},"castai.inventory.v1beta1.InstanceZone":{"properties":{"attachableGpuDevices":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.AttachableGPUDevice"},"title":"Attachable GPU devices","type":"array"},"attachedGpuDevices":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GPUDevice"},"title":"Attached GPU devices","type":"array"},"azId":{"type":"string"},"cpuPrice":{"title":"CpuPrice represents $/CPU hour","type":"string"},"lastUnavailableAt":{"format":"date-time","type":"string"},"price":{"title":"Price represents $/hour","type":"string"},"ramPrice":{"title":"RamPrice represents $/GiB hour","type":"string"},"spot":{"type":"boolean"},"unavailable":{"type":"boolean"}},"type":"object"},"castai.inventory.v1beta1.LocalSSDExtension":{"properties":{"sizeGib":{"format":"int32","title":"The size in GB","type":"integer"}},"title":"Define the LocalSSDExtension message","type":"object"},"castai.inventory.v1beta1.NetworkInfo":{"description":"Describes the network settings for the instance type.","properties":{"baseBandwidthMbps":{"description":"Base bandwidth in Mbps.","format":"int32","type":"integer"},"burstBandwidthMbps":{"description":"Burst bandwidth in Mbps. It's equal to base bandwidth if not specified.","format":"int32","type":"integer"},"ipv4AddressesPerInterface":{"description":"The maximum number of IPv4 addresses per network interface.","format":"int32","type":"integer"},"maximumNetworkInterfaces":{"description":"The maximum number of network interfaces for the instance type.","format":"int32","type":"integer"}},"type":"object"},"castai.inventory.v1beta1.NodeExtension":{"properties":{"gpu":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GPUExtension"},"localSsd":{"$ref":"#/components/schemas/castai.inventory.v1beta1.LocalSSDExtension"},"price":{"title":"The price of extension type","type":"string"},"type":{"$ref":"#/components/schemas/castai.inventory.v1beta1.ExtensionType"}},"title":"Define the NodeExtension message for individual extensions","type":"object"},"castai.inventory.v1beta1.NodePricing":{"properties":{"basePrice":{"title":"The base node price (CPU + RAM)","type":"string"},"discounts":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.Discount"},"title":"the discounts","type":"array"},"extensions":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.NodeExtension"},"title":"The extensions like (GPU, Local SSD)","type":"array"},"id":{"title":"The node id","type":"string"},"totalPrice":{"title":"the total price with applied discounts","type":"string"},"totalRegularPrice":{"title":"The total price without discounts","type":"string"}},"title":"Define the NodePricing message","type":"object"},"castai.inventory.v1beta1.OverwriteReservationsResponse":{"properties":{"reservations":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.ReservationDetails"},"title":"Reservation created or changed reservation","type":"array"}},"type":"object"},"castai.inventory.v1beta1.ReplaceCommitmentAssignmentsResponse":{"properties":{"assignments":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.CommitmentAssignment"},"title":"Commitment assignments","type":"array"}},"type":"object"},"castai.inventory.v1beta1.ReservationBalance":{"properties":{"instanceTypes":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.CountableInstanceType"},"title":"InstanceTypes - instance types counted against this reservation","type":"array"},"reservation":{"$ref":"#/components/schemas/castai.inventory.v1beta1.ReservationDetails"},"usage":{"format":"double","title":"Usage - percentage usage of reservation 0.0 - 1.0","type":"number"}},"title":"ReservationBalance describes reservation, its balance and instance types that are covered by reservation","type":"object"},"castai.inventory.v1beta1.ReservationBalanceV2":{"properties":{"instanceTypes":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.InstanceTypeAggregate"},"title":"InstanceTypes - instance types counted against this reservation","type":"array"},"reservation":{"$ref":"#/components/schemas/castai.inventory.v1beta1.ReservationDetails"},"usage":{"format":"double","title":"Usage - percentage usage of reservation 0.0 - 1.0","type":"number"}},"title":"ReservationBalanceV2 describes reservation, its balance and instance types that are covered by reservation","type":"object"},"castai.inventory.v1beta1.ReservationDetails":{"properties":{"count":{"format":"int32","title":"Count amount of reserved instances","type":"integer"},"cpu":{"format":"int64","title":"Cpu reserved instance cpu count","type":"string"},"createdAt":{"format":"date-time","title":"CreatedAt reservation creation time","type":"string"},"endDate":{"format":"date-time","nullable":true,"title":"EndDate end date of reservation","type":"string"},"instanceType":{"title":"InstanceType reserved instance type","type":"string"},"name":{"title":"Name unique reservation name in region for specific instance type","type":"string"},"price":{"title":"Price reservation price","type":"string"},"provider":{"title":"Provider cloud provider (gcp, aws, azure)","type":"string"},"ramMib":{"format":"int64","title":"RamMib reserved instance amount of rams in Mb","type":"string"},"region":{"title":"Region reservation region","type":"string"},"reservationId":{"title":"ReservationId unique reservation id","type":"string"},"startDate":{"format":"date-time","title":"StartDate start date of reservation","type":"string"},"updatedAt":{"format":"date-time","title":"UpdatedAt last reservation update time","type":"string"},"zoneId":{"nullable":true,"title":"ZoneId reservation zone id","type":"string"},"zoneName":{"nullable":true,"title":"ZoneId reservation zone name","type":"string"}},"title":"ReservationDetails represents extended reservation with valid data","type":"object"},"castai.inventory.v1beta1.StorageDriver":{"default":"invalid","description":"StorageDriver is the type of driver used for the local storage volume interface and CPU communication.\n\n - invalid: Invalid is invalid.\n - nvme: NVMe driver is designed specifically for SSD drives and could be considered \"optimized\" for SSD usage.\n - sata: SATA driver is designed for HDD drives with spinning technology but also supports SSD drives.","enum":["invalid","nvme","sata"],"type":"string"},"castai.inventory.v1beta1.StorageInfo":{"description":"StorageInfo describes the available local volumes for an instance type.","properties":{"devices":{"description":"List of local storage devices available on the instance type.","items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.StorageInfo.Device"},"type":"array"},"driver":{"$ref":"#/components/schemas/castai.inventory.v1beta1.StorageDriver"},"totalSizeGib":{"description":"TotalSizeGiB is a sum of all storage devices' size.","format":"int32","type":"integer"}},"type":"object"},"castai.inventory.v1beta1.StorageInfo.Device":{"description":"Device is a local storage block device available on the instance type.","properties":{"sizeGib":{"description":"The size in GiB.","format":"int32","type":"integer"},"type":{"$ref":"#/components/schemas/castai.inventory.v1beta1.StorageInfo.Device.Type"}},"type":"object"},"castai.inventory.v1beta1.StorageInfo.Device.Type":{"default":"invalid","description":"Type is the technology used for the local storage device.\n\n - invalid: Invalid is invalid.\n - ssd: SSD.\n - hdd: HDD.","enum":["invalid","ssd","hdd"],"type":"string"},"castai.inventory.v1beta1.SyncGCPBillingAPIDataResponse":{"properties":{"taskId":{"type":"string"}},"type":"object"},"castai.inventory.v1beta1.UpdateCommitmentResponse":{"properties":{"commitments":{"$ref":"#/components/schemas/castai.inventory.v1beta1.Commitment"}},"type":"object"},"castai.inventory.v1beta1.UsageDistribution":{"properties":{"cpu":{"format":"double","title":"CPU usage","type":"number"},"memory":{"format":"double","title":"Memory usage","type":"number"}},"type":"object"},"castai.notifications.v1beta1.AckNotificationsRequest":{"properties":{"ids":{"items":{"type":"string"},"title":"The UUIDs of Notifications to acknowledge","type":"array"}},"title":"Request to ack multiple Notifications for an organization","type":"object"},"castai.notifications.v1beta1.AckNotificationsResponse":{"properties":{"total":{"format":"int64","title":"The Total of records updated","type":"string"}},"title":"Response after ack multiple Notifications for an organization","type":"object"},"castai.notifications.v1beta1.AddWebhookConfig":{"properties":{"authKeys":{"additionalProperties":{"type":"string"},"title":"The key pair value HTTP header and keys for the request","type":"object"},"callbackUrl":{"title":"The callback URL to send the requests to","type":"string"},"category":{"title":"Notifications category for the webhook subscription","type":"string"},"name":{"title":"The name of the Webhook configuration","type":"string"},"requestTemplate":{"title":"The template of the request that will be sent to the callback URL","type":"string"},"severityTriggers":{"items":{"$ref":"#/components/schemas/castai.notifications.v1beta1.Severity"},"title":"The severity levels that will trigger that notification","type":"array"},"subcategory":{"title":"Notifications subcategory for the webhook subscription","type":"string"}},"required":["callbackUrl","name","requestTemplate","severityTriggers"],"title":"Payload to create a new webhook config","type":"object"},"castai.notifications.v1beta1.ClusterMetadata":{"properties":{"id":{"title":"The cluster id","type":"string"},"name":{"title":"The cluster name","type":"string"},"project":{"title":"The project the cluster belongs to","type":"string"},"providerType":{"title":"The cloud provider","type":"string"}},"title":"Cluster information","type":"object"},"castai.notifications.v1beta1.DeleteWebhookConfigResponse":{"title":"Response after deleting Webhook configuration for an organization","type":"object"},"castai.notifications.v1beta1.ListNotificationsResponse":{"description":"ListNotificationsResponse defines notification entries response.","properties":{"count":{"format":"int32","title":"count of notifications restricted by the filters","type":"integer"},"countUnacked":{"format":"int32","title":"count of total of unacknowledged notifications","type":"integer"},"items":{"items":{"$ref":"#/components/schemas/castai.notifications.v1beta1.Notification"},"type":"array"},"nextCursor":{"description":"next_cursor is a token to be used in future request to retrieve subsequent items. If empty - no more items present.","type":"string"},"previousCursor":{"description":"previous_cursor is a token that may be used to retrieve items from the previous logical page. If empty - there were no previous page provided.","type":"string"}},"type":"object"},"castai.notifications.v1beta1.ListWebhookCategoriesResponse":{"description":"Response after getting list of available categories and subcategories for webhook configuration.","properties":{"categories":{"items":{"$ref":"#/components/schemas/castai.notifications.v1beta1.ListWebhookCategoriesResponse.Item"},"type":"array"}},"type":"object"},"castai.notifications.v1beta1.ListWebhookCategoriesResponse.Item":{"properties":{"name":{"type":"string"},"subcategories":{"additionalProperties":{"type":"string"},"type":"object"},"value":{"type":"string"}},"type":"object"},"castai.notifications.v1beta1.ListWebhookConfigsResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/castai.notifications.v1beta1.WebhookConfig"},"type":"array"},"nextCursor":{"description":"next_cursor is a token to be used in future request to retrieve subsequent items. If empty - no more items present.","type":"string"},"previousCursor":{"description":"previous_cursor is a token that may be used to retrieve items from the previous logical page. If empty - there were no previous page provided.","type":"string"}},"title":"Response of list Webhook configurations for an organization","type":"object"},"castai.notifications.v1beta1.Notification":{"properties":{"ackAt":{"format":"date-time","title":"When the Notification was acknowledged","type":"string"},"ackedBy":{"nullable":true,"title":"The user that acknowledged the Notification","type":"string"},"clusterMetadata":{"$ref":"#/components/schemas/castai.notifications.v1beta1.ClusterMetadata"},"createdAt":{"format":"date-time","title":"When the Notification was created in the system","type":"string"},"details":{"description":"Free-form details from the event.","type":"string"},"id":{"title":"The UUID of the notification","type":"string"},"isExpired":{"title":"Indicates if the Notification is expired","type":"boolean"},"message":{"description":"A high-level, text summary message of the event. Will be used to construct an alert's summary.","type":"string"},"name":{"title":"Name of the notification","type":"string"},"operationMetadata":{"$ref":"#/components/schemas/castai.notifications.v1beta1.OperationMetadata"},"organizationId":{"title":"Organization that owns the notification","type":"string"},"severity":{"$ref":"#/components/schemas/castai.notifications.v1beta1.Severity"},"timestamp":{"description":"When the upstream system detected / created the event.","format":"date-time","type":"string"}},"title":"Represent a Notification","type":"object"},"castai.notifications.v1beta1.OperationMetadata":{"properties":{"id":{"title":"The cluster id","type":"string"},"type":{"title":"The operation type","type":"string"}},"title":"Cluster Operation information","type":"object"},"castai.notifications.v1beta1.Severity":{"default":"UNSPECIFIED","enum":["UNSPECIFIED","CRITICAL","ERROR","WARNING","INFO","SUCCESS"],"title":"Describes the level of the Notification","type":"string"},"castai.notifications.v1beta1.UpdateWebhookConfig":{"properties":{"authKeys":{"additionalProperties":{"type":"string"},"title":"The key pair value HTTP header and keys for the request","type":"object"},"callbackUrl":{"title":"The callback URL to send the requests to","type":"string"},"category":{"title":"Notifications category for the webhook subscription","type":"string"},"name":{"title":"The name of the Webhook configuration","type":"string"},"requestTemplate":{"title":"The template of the request that will be sent to the callback URL","type":"string"},"severityTriggers":{"items":{"$ref":"#/components/schemas/castai.notifications.v1beta1.Severity"},"title":"The severity levels that will trigger that notification","type":"array"},"subcategory":{"title":"Notifications subcategory for the webhook subscription","type":"string"}},"required":["callbackUrl","name","requestTemplate","severityTriggers"],"title":"Payload to update an existing webhook configuration","type":"object"},"castai.notifications.v1beta1.WebhookConfig":{"properties":{"authKeys":{"additionalProperties":{"type":"string"},"title":"The key pair value HTTP header and keys for the request","type":"object"},"callbackUrl":{"title":"The callback URL to send the requests to","type":"string"},"category":{"title":"Notifications category for the webhook","type":"string"},"createdAt":{"format":"date-time","title":"The date in which the Webhook config was created","type":"string"},"deletedAt":{"format":"date-time","title":"The date in which the Webhook config was deleted","type":"string"},"error":{"title":"The error message returned from the callback URL if we failed to make a request","type":"string"},"id":{"title":"UUID of the Webhook configuration","type":"string"},"name":{"title":"The name of the Webhook configuration","type":"string"},"organizationId":{"title":"UUID of organization_id that owns the Webhook configuration","type":"string"},"requestTemplate":{"title":"The template of the request that will be sent to the callback URL","type":"string"},"severityTriggers":{"items":{"$ref":"#/components/schemas/castai.notifications.v1beta1.Severity"},"title":"The severity levels that will trigger that notification","type":"array"},"status":{"title":"The status indicating how is the state of the Webhook configuration, CanConnect or FailedToConnect","type":"string"},"subcategory":{"title":"Notifications subcategory for the webhook","type":"string"},"updatedAt":{"format":"date-time","title":"The date in which the Webhook config was updated","type":"string"}},"title":"The Webhook configuration data","type":"object"},"castai.operations.v1beta1.Operation":{"description":"Operation object.","properties":{"createdAt":{"description":"Operation creation timestamp in RFC3339Nano format.","format":"date-time","type":"string"},"done":{"description":"Indicates whether the operation has finished or not. If 'false', the operation is still in progress. If 'true',\nthe has finished.","type":"boolean"},"error":{"$ref":"#/components/schemas/castai.operations.v1beta1.OperationError"},"finishedAt":{"description":"Operation finish timestamp in RFC3339Nano format.","format":"date-time","type":"string"},"id":{"description":"ID of the operation.","type":"string"}},"type":"object"},"castai.operations.v1beta1.OperationError":{"description":"OperationError object.","properties":{"details":{"description":"Details is a concise human readable explanation for the error.","type":"string"},"reason":{"description":"Reason is an operation specific failure code. Refer to documentation about possible outcomes.","type":"string"}},"type":"object"},"castai.pagination.v1beta1.Page":{"description":"Page defines how many and which fields should be returned.","properties":{"cursor":{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","type":"string"},"limit":{"format":"uint64","type":"string"}},"type":"object"},"castai.pagination.v1beta1.Sort":{"properties":{"field":{"title":"Name of the field you want to sort","type":"string"},"order":{"$ref":"#/components/schemas/castai.pagination.v1beta1.Sort.Order"}},"title":"Sort parameter","type":"object"},"castai.pagination.v1beta1.Sort.Order":{"default":"ASC","description":"- ASC: ASC\n - asc: desc\n - DESC: ASC\n - desc: desc","enum":["ASC","asc","DESC","desc"],"title":"The order of the items, asc or desc","type":"string"},"castai.partners.v1beta1.CreateOrganization":{"description":"CreateOrganization represents a partner child organization creation request.","properties":{"organizationName":{"description":"Organization name is partner child organization name which will be visible in CAST AI UI.","type":"string"},"partnerTenantId":{"description":"Partner_tenant_id is a partner child organization tenant id in the partner platform.","type":"string"}},"required":["partnerTenantId"],"type":"object"},"castai.partners.v1beta1.CreateToken":{"description":"CreateToken represents a partner child organization creation request.","properties":{"role":{"description":"Role is the definition of what role the token would have.","type":"string"}},"type":"object"},"castai.partners.v1beta1.DeleteTokenResponse":{"description":"Defines a container for partner child organization token deletion response.","type":"object"},"castai.partners.v1beta1.ListOrganizationsResponse":{"description":"Defines a container for partner child organizations list request.","properties":{"organizations":{"description":"Organizations is an array of partner child organizations.","items":{"$ref":"#/components/schemas/castai.users.v1beta1.Organization"},"type":"array"}},"type":"object"},"castai.sso.v1beta1.AzureAAD":{"description":"AzureAAD represents a Azure AAD connector.","properties":{"adDomain":{"description":"ADDomain is the domain of the Azure AD.","type":"string"},"clientId":{"description":"ClientId is the client id of the Azure AD.","type":"string"},"clientSecret":{"description":"ClientSecret is the client secret of the Azure AD.","type":"string"}},"required":["adDomain","clientId"],"type":"object"},"castai.sso.v1beta1.CreateSSOConnection":{"description":"CreateSSOConnection represents a sso connection creation request.","properties":{"aad":{"$ref":"#/components/schemas/castai.sso.v1beta1.AzureAAD"},"emailDomain":{"description":"EmailDomain is the email domain of the connection.","type":"string"},"name":{"description":"Name is the name of the connection.","type":"string"},"oidc":{"$ref":"#/components/schemas/castai.sso.v1beta1.OIDC"},"okta":{"$ref":"#/components/schemas/castai.sso.v1beta1.Okta"}},"required":["emailDomain","name"],"type":"object"},"castai.sso.v1beta1.DeleteSSOConnectionResponse":{"description":"Defines the container for the sso delete response.","type":"object"},"castai.sso.v1beta1.ListSSOConnectionsResponse":{"description":"Defines the container for the sso list response.","properties":{"connections":{"items":{"$ref":"#/components/schemas/castai.sso.v1beta1.SSOConnection"},"type":"array"}},"required":["connections"],"type":"object"},"castai.sso.v1beta1.OIDC":{"description":"OIDC represents a OIDC connector.","properties":{"clientId":{"description":"ClientId is the client id of the OIDC.","type":"string"},"clientSecret":{"description":"ClientSecret is the client secret when using back_channel type of connection.","nullable":true,"type":"string"},"issuerUrl":{"description":"IssuerUrl is the URL of the discovery document of the OpenID Connect provider you want to connect with.","type":"string"},"type":{"$ref":"#/components/schemas/castai.sso.v1beta1.OIDC.Type"}},"required":["clientId","issuerUrl","type"],"type":"object"},"castai.sso.v1beta1.OIDC.Type":{"default":"TYPE_UNKNOWN","description":"Type is the type of the OIDC connection.\n\n - TYPE_UNKNOWN: TypeUknown is the default status.\n - TYPE_BACK_CHANNEL: TypeBackChannel is the back channel type of OIDC connection.\n - TYPE_FRONT_CHANNEL: TypeFrontChannel is the front channel type of OIDC connection.","enum":["TYPE_UNKNOWN","TYPE_BACK_CHANNEL","TYPE_FRONT_CHANNEL"],"type":"string"},"castai.sso.v1beta1.Okta":{"description":"Okta represents a Okta connector.","properties":{"clientId":{"description":"ClientId is the client id of the Okta.","type":"string"},"clientSecret":{"description":"ClientSecret is the client secret of the Okta.","type":"string"},"oktaDomain":{"description":"OktaDomain is the domain of the Okta.","type":"string"}},"required":["clientId","oktaDomain"],"type":"object"},"castai.sso.v1beta1.SSOConnection":{"description":"SSOConnection represents a sso connection.","properties":{"aad":{"$ref":"#/components/schemas/castai.sso.v1beta1.AzureAAD"},"createdAt":{"description":"CreatedAt is the time when the connection was created.","format":"date-time","readOnly":true,"type":"string"},"emailDomain":{"description":"EmailDomain is the email domain of the connection.","type":"string"},"error":{"description":"Error is the error message of the connection.","readOnly":true,"type":"string"},"id":{"description":"Id is the unique identifier of the connection.","readOnly":true,"type":"string"},"name":{"description":"Name is the name of the connection.","type":"string"},"oidc":{"$ref":"#/components/schemas/castai.sso.v1beta1.OIDC"},"okta":{"$ref":"#/components/schemas/castai.sso.v1beta1.Okta"},"status":{"$ref":"#/components/schemas/castai.sso.v1beta1.SSOConnection.Status"},"updatedAt":{"description":"UpdatedAt is the time when the connection was last updated.","format":"date-time","readOnly":true,"type":"string"}},"required":["emailDomain","name"],"type":"object"},"castai.sso.v1beta1.SSOConnection.Status":{"default":"STATUS_UNKNOWN","description":"Status is the status of the connection.\n\n - STATUS_UNKNOWN: StatusUnknown is the default status.\n - STATUS_ACTIVE: StatusActive is the active status.\n - STATUS_INACTIVE: StatusInactive is the inactive status.\n - STATUS_FAILED: StatusFailed is the failed status.","enum":["STATUS_UNKNOWN","STATUS_ACTIVE","STATUS_INACTIVE","STATUS_FAILED"],"type":"string"},"castai.sso.v1beta1.UpdateSSOConnection":{"description":"SSOConnection represents a sso connection.","properties":{"aad":{"$ref":"#/components/schemas/castai.sso.v1beta1.AzureAAD"},"emailDomain":{"description":"EmailDomain is the email domain of the connection.","type":"string"},"name":{"description":"Name is the name of the connection.","type":"string"},"oidc":{"$ref":"#/components/schemas/castai.sso.v1beta1.OIDC"},"okta":{"$ref":"#/components/schemas/castai.sso.v1beta1.Okta"}},"type":"object"},"castai.usage.v1beta1.ClusterMetadata":{"properties":{"id":{"description":"The cluster id.","type":"string"},"name":{"description":"The cluster name.","type":"string"},"providerNamespaceId":{"description":"The project the cluster belongs to.","type":"string"},"providerType":{"description":"The cloud provider.","type":"string"},"region":{"$ref":"#/components/schemas/castai.usage.v1beta1.Region"}},"required":["id","name","providerNamespaceId","providerType"],"title":"Cluster information","type":"object"},"castai.usage.v1beta1.ClusterUsage":{"properties":{"cluster":{"$ref":"#/components/schemas/castai.usage.v1beta1.ClusterMetadata"},"entries":{"items":{"$ref":"#/components/schemas/castai.usage.v1beta1.ResourceUsage"},"type":"array"}},"required":["cluster","entries"],"type":"object"},"castai.usage.v1beta1.GetUsageReportResponse":{"properties":{"clusters":{"items":{"$ref":"#/components/schemas/castai.usage.v1beta1.ClusterUsage"},"type":"array"},"period":{"$ref":"#/components/schemas/castai.usage.v1beta1.Period"}},"type":"object"},"castai.usage.v1beta1.GetUsageSummaryResponse":{"properties":{"avgBillableCpus":{"description":"Average billable cpus for requested period (if 'to' is future date - up to current day).","format":"float","type":"number"},"cpuHours":{"description":"Sum of CPU hours used in the given period.","format":"float","type":"number"}},"required":["avgBillableCpus","cpuHours"],"type":"object"},"castai.usage.v1beta1.Period":{"description":"Period of time of resource usage.","properties":{"from":{"description":"Start time of resource usage period.","format":"date-time","type":"string"},"to":{"description":"End time of resource usage period.","format":"date-time","type":"string"}},"type":"object"},"castai.usage.v1beta1.Region":{"description":"Region represents cluster region.","properties":{"displayName":{"description":"Display name of the region.","type":"string"},"name":{"description":"Name of the region.","type":"string"}},"type":"object"},"castai.usage.v1beta1.ResourceUsage":{"description":"ResourceUsage defines resources usage for given period.","properties":{"billableCpus":{"description":"Average count of CPU used in the given day.","format":"float","type":"number"},"cpuHours":{"description":"Average hour usage in the given day.","format":"float","type":"number"},"day":{"description":"The day of usage.","type":"string"}},"required":["billableCpus","cpuHours","day"],"type":"object"},"castai.users.v1beta1.AWSMarketplaceUser":{"properties":{"customerAwsAccountId":{"description":"CustomerAWSAccountId is Resolved using Registration token.","type":"string"},"customerIdentifier":{"description":"CustomerIdentifier is Resolved using Registration token.","type":"string"},"productCode":{"description":"ProductCode is Resolved using Registration token.","type":"string"},"registrationToken":{"description":"When a buyer visits your website during the registration process, the buyer\nsubmits a registration token through the browser.","type":"string"}},"type":"object"},"castai.users.v1beta1.AddUserToOrganizationResponse":{"description":"Defines the response for adding a user to an organization.","type":"object"},"castai.users.v1beta1.ClaimInvitationResponse":{"properties":{"membership":{"$ref":"#/components/schemas/castai.users.v1beta1.Membership"},"organizationId":{"description":"Organization ID.","type":"string"}},"required":["organizationId"],"type":"object"},"castai.users.v1beta1.CreateInvitationsRequest":{"properties":{"members":{"description":"Memberships to create.","items":{"$ref":"#/components/schemas/castai.users.v1beta1.NewMembershipByEmail"},"type":"array"}},"type":"object"},"castai.users.v1beta1.CreateInvitationsResponse":{"properties":{"invitationIds":{"description":"Invitation IDs.","items":{"type":"string"},"type":"array"}},"type":"object"},"castai.users.v1beta1.CurrentUserProfileResponse":{"properties":{"email":{"description":"User email.","type":"string"},"firstLogin":{"description":"User first login.","type":"boolean"},"hasHubspotContact":{"description":"HasHubspotContact is true if user has Hubspot contact form submitted.","type":"boolean"},"id":{"description":"User ID.","type":"string"},"name":{"description":"User name.","type":"string"},"username":{"description":"User username.","type":"string"}},"type":"object"},"castai.users.v1beta1.DeleteInvitationResponse":{"description":"Defines the empty response to invitation deletion.","type":"object"},"castai.users.v1beta1.DeleteOrganizationResponse":{"description":"Defines the empty response to organization deletion.","type":"object"},"castai.users.v1beta1.GCPMarketplaceUser":{"properties":{"accountId":{"description":"Google procurement account ID.","type":"string"},"roles":{"description":"Roles is an array of strings representing the user's roles.\nRight now, it can be either: account_admin, which indicates that the user is a Billing Account Administrator of the billing account that purchased the product,\nor ** project_editor, which indicates that the user is a Project Editor, but not a Billing Administrator, of the project under that billing account.","items":{"type":"string"},"type":"array"},"userIdentity":{"description":"User identity is the user's obfuscated GAIA ID, which can be used to initiate Open ID Connect.","type":"string"}},"type":"object"},"castai.users.v1beta1.ListInvitationsResponse":{"description":"Defines container for the organization's pending invitations.","properties":{"invitations":{"description":"Array of organization's pending invitations.","items":{"$ref":"#/components/schemas/castai.users.v1beta1.PendingInvitation"},"type":"array"},"nextCursor":{"title":"The pagination parameters","type":"string"}},"required":["invitations","nextCursor"],"type":"object"},"castai.users.v1beta1.ListOrganizationUsersResponse":{"description":"Defines the container for organization users.","properties":{"users":{"description":"Array of organization users.","items":{"$ref":"#/components/schemas/castai.users.v1beta1.Membership"},"type":"array"}},"type":"object"},"castai.users.v1beta1.ListOrganizationsResponse":{"description":"Defines container for the user's organizations.","properties":{"organizations":{"description":"Array of user's organizations.","items":{"$ref":"#/components/schemas/castai.users.v1beta1.UserOrganization"},"type":"array"}},"required":["organizations"],"type":"object"},"castai.users.v1beta1.Membership":{"description":"Membership describes user-organization membership details.","properties":{"role":{"title":"TODO: last activity","type":"string"},"user":{"$ref":"#/components/schemas/castai.users.v1beta1.User"}},"required":["role","user"],"type":"object"},"castai.users.v1beta1.NewMembership":{"description":"NewMembership contains data needed to create new membership in organization.","properties":{"role":{"description":"role of the new member.","type":"string"},"userId":{"description":"id of the user.","type":"string"}},"required":["role","userId"],"type":"object"},"castai.users.v1beta1.NewMembershipByEmail":{"properties":{"role":{"description":"role of the invited person.","type":"string"},"userEmail":{"description":"email of the invited person.","type":"string"}},"required":["role","userEmail"],"type":"object"},"castai.users.v1beta1.Organization":{"description":"Organization which is the top level tenant in our system.","properties":{"billingType":{"description":"billing type of the organization.","type":"string"},"createdAt":{"description":"organization creation date.","format":"date-time","readOnly":true,"type":"string"},"id":{"description":"id of the organization.","readOnly":true,"type":"string"},"metadata":{"$ref":"#/components/schemas/castai.users.v1beta1.OrganizationMetadata"},"name":{"description":"name of the organization.","type":"string"}},"required":["name"],"type":"object"},"castai.users.v1beta1.OrganizationMetadata":{"description":"OrganizationMetadata describes organization metadata.","properties":{"parentOrganizationId":{"description":"parent organization id.","nullable":true,"type":"string"},"partnerTenantId":{"description":"partner tenant id on partner system.","nullable":true,"type":"string"}},"type":"object"},"castai.users.v1beta1.PendingInvitation":{"properties":{"id":{"description":"id of the invitation.","readOnly":true,"type":"string"},"inviteEmail":{"description":"email of the invited person.","type":"string"},"role":{"description":"role of the invited person.","type":"string"},"validUntil":{"description":"invitation expiration date.","format":"date-time","readOnly":true,"type":"string"}},"required":["inviteEmail","role"],"type":"object"},"castai.users.v1beta1.RemoveUserFromOrganizationResponse":{"description":"Defines the response for removing a user from an organization.","type":"object"},"castai.users.v1beta1.Request":{"type":"object"},"castai.users.v1beta1.User":{"description":"User represents a single system user.","properties":{"authProvider":{"description":"(optional) whether SSO auth provider label was provided as a separate JWT claim; used when login handler calls users service.","nullable":true,"type":"string"},"awsMarketplaceUser":{"$ref":"#/components/schemas/castai.users.v1beta1.AWSMarketplaceUser"},"email":{"description":"(required) user email.","type":"string"},"gcpMarketplaceUser":{"$ref":"#/components/schemas/castai.users.v1beta1.GCPMarketplaceUser"},"hasHubspotContact":{"description":"has_hubspot_contact indicates whether user has a hubspot contact.","readOnly":true,"type":"boolean"},"id":{"description":"id of the user.","readOnly":true,"type":"string"},"name":{"description":"(required) readable user name, e.g. \"John Doe\".","type":"string"},"referId":{"description":"(optional) refer_id is a unique identifier of the user in the referral partner system.","format":"int32","nullable":true,"type":"integer"},"referVisit":{"description":"(optional) refer_visit is unique identifier of the visit in the referral partner system.","format":"int32","nullable":true,"type":"integer"},"username":{"description":"(required) username, corresponds to auth0 user id.","type":"string"}},"required":["email","name","username"],"type":"object"},"castai.users.v1beta1.UserOrganization":{"description":"UserOrganization describes organization user belongs to.","properties":{"createdAt":{"description":"organization creation date.","format":"date-time","readOnly":true,"type":"string"},"id":{"description":"id of the organization.","readOnly":true,"type":"string"},"name":{"description":"name of the organization.","type":"string"},"role":{"description":"user role in the organization.","type":"string"}},"required":["name","role"],"type":"object"},"clusteractions.v1.AckClusterActionResponse":{"type":"object"},"clusteractions.v1.ChartSource":{"properties":{"name":{"type":"string"},"repoUrl":{"type":"string"},"version":{"type":"string"}},"type":"object"},"clusteractions.v1.ClusterAction":{"properties":{"actionApproveCsr":{"$ref":"#/components/schemas/clusteractions.v1.ClusterActionApproveCSR"},"actionChartRollback":{"$ref":"#/components/schemas/clusteractions.v1.ClusterActionChartRollback"},"actionChartUninstall":{"$ref":"#/components/schemas/clusteractions.v1.ClusterActionChartUninstall"},"actionChartUpsert":{"$ref":"#/components/schemas/clusteractions.v1.ClusterActionChartUpsert"},"actionCheckNodeDeleted":{"$ref":"#/components/schemas/clusteractions.v1.ClusterActionCheckNodeDeleted"},"actionCheckNodeStatus":{"$ref":"#/components/schemas/clusteractions.v1.ClusterActionCheckNodeStatus"},"actionCreate":{"$ref":"#/components/schemas/clusteractions.v1.ClusterActionCreate"},"actionCreateEvent":{"$ref":"#/components/schemas/clusteractions.v1.ClusterActionCreateEvent"},"actionDelete":{"$ref":"#/components/schemas/clusteractions.v1.ClusterActionDelete"},"actionDeleteNode":{"$ref":"#/components/schemas/clusteractions.v1.ClusterActionDeleteNode"},"actionDisconnectCluster":{"$ref":"#/components/schemas/clusteractions.v1.ClusterActionDisconnectCluster"},"actionDrainNode":{"$ref":"#/components/schemas/clusteractions.v1.ClusterActionDrainNode"},"actionPatch":{"$ref":"#/components/schemas/clusteractions.v1.ClusterActionPatch"},"actionPatchNode":{"$ref":"#/components/schemas/clusteractions.v1.ClusterActionPatchNode"},"actionSendAksInitData":{"$ref":"#/components/schemas/clusteractions.v1.ClusterActionSendAKSInitData"},"createdAt":{"format":"date-time","type":"string"},"doneAt":{"format":"date-time","type":"string"},"error":{"nullable":true,"type":"string"},"id":{"type":"string"}},"type":"object"},"clusteractions.v1.ClusterActionAck":{"properties":{"error":{"nullable":true,"type":"string"}},"type":"object"},"clusteractions.v1.ClusterActionApproveCSR":{"properties":{"nodeId":{"type":"string"},"nodeName":{"type":"string"}},"type":"object"},"clusteractions.v1.ClusterActionChartRollback":{"properties":{"namespace":{"type":"string"},"releaseName":{"type":"string"},"version":{"description":"Version to rollback from.","type":"string"}},"type":"object"},"clusteractions.v1.ClusterActionChartUninstall":{"properties":{"namespace":{"type":"string"},"releaseName":{"type":"string"}},"type":"object"},"clusteractions.v1.ClusterActionChartUpsert":{"properties":{"chartSource":{"$ref":"#/components/schemas/clusteractions.v1.ChartSource"},"namespace":{"type":"string"},"releaseName":{"type":"string"},"valuesOverrides":{"additionalProperties":{"type":"string"},"type":"object"}},"type":"object"},"clusteractions.v1.ClusterActionCheckNodeDeleted":{"properties":{"nodeId":{"type":"string"},"nodeName":{"type":"string"}},"type":"object"},"clusteractions.v1.ClusterActionCheckNodeStatus":{"properties":{"nodeId":{"type":"string"},"nodeName":{"type":"string"},"nodeStatus":{"$ref":"#/components/schemas/clusteractions.v1.NodeStatus"},"waitTimeoutSeconds":{"format":"int32","type":"integer"}},"type":"object"},"clusteractions.v1.ClusterActionCreate":{"description":"Generic create action that allows to create any resource providing GVR and unstructured object to be created.","properties":{"group":{"type":"string"},"object":{"type":"object"},"resource":{"type":"string"},"version":{"type":"string"}},"type":"object"},"clusteractions.v1.ClusterActionCreateEvent":{"properties":{"action":{"type":"string"},"eventTime":{"description":"Event time should not be set during action scheduling. It's added during actions poll.","format":"date-time","type":"string"},"eventType":{"type":"string"},"message":{"type":"string"},"objectReference":{"$ref":"#/components/schemas/clusteractions.v1.ObjectReference"},"reason":{"type":"string"},"reportingComponent":{"type":"string"}},"type":"object"},"clusteractions.v1.ClusterActionDelete":{"description":"Generic delete action that allows to delete any resource providing GVR and resource name.","properties":{"id":{"$ref":"#/components/schemas/clusteractions.v1.ObjectID"}},"type":"object"},"clusteractions.v1.ClusterActionDeleteNode":{"properties":{"nodeId":{"type":"string"},"nodeName":{"type":"string"}},"type":"object"},"clusteractions.v1.ClusterActionDisconnectCluster":{"type":"object"},"clusteractions.v1.ClusterActionDrainNode":{"properties":{"drainTimeoutSeconds":{"format":"int32","type":"integer"},"force":{"type":"boolean"},"nodeId":{"type":"string"},"nodeName":{"type":"string"}},"type":"object"},"clusteractions.v1.ClusterActionPatch":{"description":"Generic patch action that allows to patch any resource providing GVR, name and patch body.","properties":{"id":{"$ref":"#/components/schemas/clusteractions.v1.ObjectID"},"patch":{"type":"string"},"patchType":{"type":"string"}},"type":"object"},"clusteractions.v1.ClusterActionPatchNode":{"properties":{"annotations":{"additionalProperties":{"type":"string"},"type":"object"},"capacity":{"additionalProperties":{"type":"string"},"type":"object"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"nodeId":{"type":"string"},"nodeName":{"type":"string"},"taints":{"items":{"$ref":"#/components/schemas/clusteractions.v1.NodeTaint"},"type":"array"},"unschedulable":{"nullable":true,"type":"boolean"}},"type":"object"},"clusteractions.v1.ClusterActionSendAKSInitData":{"type":"object"},"clusteractions.v1.IngestLogsResponse":{"type":"object"},"clusteractions.v1.LogEvent":{"properties":{"fields":{"additionalProperties":{"type":"string"},"type":"object"},"level":{"type":"string"},"message":{"type":"string"},"time":{"format":"date-time","type":"string"}},"type":"object"},"clusteractions.v1.NodeStatus":{"default":"NodeStatus_UNSPECIFIED","description":"- NodeStatus_UNSPECIFIED: Not provided status\n - NodeStatus_READY: Node joined cluster\n - NodeStatus_DELETED: Node not exist in cluster","enum":["NodeStatus_UNSPECIFIED","NodeStatus_READY","NodeStatus_DELETED"],"title":"Kubernetes node status","type":"string"},"clusteractions.v1.NodeTaint":{"properties":{"effect":{"type":"string"},"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"clusteractions.v1.ObjectID":{"properties":{"group":{"description":"For the object that are in the core group (e.g. pods, nodes, namespaces etc.\nhttps://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#-strong-api-groups-strong-)\nuse `core` as a group name.","type":"string"},"name":{"type":"string"},"namespace":{"nullable":true,"type":"string"},"resource":{"type":"string"},"version":{"type":"string"}},"type":"object"},"clusteractions.v1.ObjectReference":{"properties":{"apiVersion":{"nullable":true,"title":"API version of the referent.\n+optional","type":"string"},"fieldPath":{"nullable":true,"title":"If referring to a piece of an object instead of an entire object, this string\nshould contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].\nFor example, if the object reference is to a container within a pod, this would take on a value like:\n\"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered\nthe event) or if no container name is specified \"spec.containers[2]\" (container with\nindex 2 in this pod). This syntax is chosen only to have some well-defined way of\nreferencing a part of an object.\n+optional","type":"string"},"kind":{"nullable":true,"title":"Kind of the referent.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n+optional","type":"string"},"name":{"nullable":true,"title":"Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n+optional","type":"string"},"namespace":{"nullable":true,"title":"Namespace of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\n+optional","type":"string"},"resourceVersion":{"nullable":true,"title":"Specific resourceVersion to which this reference is made, if any.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\n+optional","type":"string"},"uid":{"nullable":true,"title":"UID of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\n+optional","type":"string"}},"type":"object"},"clusteractions.v1.PollClusterActionsResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/clusteractions.v1.ClusterAction"},"type":"array"}},"type":"object"},"components.v1.ComponentLogs":{"properties":{"entries":{"description":"The logs to ingest.","items":{"$ref":"#/components/schemas/components.v1.LogEntry"},"type":"array"},"version":{"description":"The version of the source component.","type":"string"}},"required":["entries","version"],"type":"object"},"components.v1.IngestLogsResponse":{"type":"object"},"components.v1.LogEntry":{"description":"Represents a single log entry.","properties":{"fields":{"additionalProperties":{"type":"string"},"description":"The fields of the log.","type":"object"},"level":{"$ref":"#/components/schemas/components.v1.LogLevel"},"message":{"description":"The log message.","type":"string"},"time":{"description":"The time the log was emitted.","format":"date-time","type":"string"}},"required":["level","message","time"],"type":"object"},"components.v1.LogLevel":{"default":"LOG_LEVEL_UNKNOWN","description":"Standard log levels.","enum":["LOG_LEVEL_UNKNOWN","LOG_LEVEL_DEBUG","LOG_LEVEL_INFO","LOG_LEVEL_WARNING","LOG_LEVEL_ERROR","LOG_LEVEL_FATAL"],"type":"string"},"costreport.v1beta1.AllocationGroup":{"properties":{"filter":{"$ref":"#/components/schemas/costreport.v1beta1.AllocationGroupFilter"},"id":{"type":"string"},"name":{"type":"string"}},"type":"object"},"costreport.v1beta1.AllocationGroupDetails":{"properties":{"filter":{"$ref":"#/components/schemas/costreport.v1beta1.AllocationGroupFilter"},"name":{"type":"string"}},"type":"object"},"costreport.v1beta1.AllocationGroupFilter":{"properties":{"clusterIds":{"items":{"type":"string"},"type":"array"},"labels":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.AllocationGroupFilter.LabelValue"},"type":"array"},"labelsOperator":{"$ref":"#/components/schemas/costreport.v1beta1.FilterOperator"},"namespaces":{"items":{"type":"string"},"type":"array"},"nodeLabels":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.AllocationGroupFilter.LabelValue"},"type":"array"},"nodeLabelsOperator":{"$ref":"#/components/schemas/costreport.v1beta1.FilterOperator"}},"type":"object"},"costreport.v1beta1.AllocationGroupFilter.LabelValue":{"properties":{"label":{"title":"Label name","type":"string"},"value":{"title":"Label Value","type":"string"}},"type":"object"},"costreport.v1beta1.ClusterNamespaces":{"properties":{"clusterId":{"type":"string"},"namespaces":{"items":{"type":"string"},"type":"array"}},"type":"object"},"costreport.v1beta1.ClusterSummary":{"description":"Defines summary of cluster.","properties":{"clusterId":{"description":"ID of the cluster.","type":"string"},"costHourlyOnDemand":{"description":"Cost per hour on-demand.","type":"string"},"costHourlySpot":{"description":"Cost per hour spot.","type":"string"},"costHourlySpotFallback":{"description":"Cost per hour spot fallback.","type":"string"},"cpuAllocatableOnDemand":{"description":"Allocatable CPU cores on-demand.","type":"string"},"cpuAllocatableSpot":{"description":"Allocatable CPU cores spot.","type":"string"},"cpuAllocatableSpotFallback":{"description":"Allocatable CPU cores spot fallback.","type":"string"},"cpuCostHourlyOnDemand":{"description":"CPU cost per hour on-demand.","type":"string"},"cpuCostHourlySpot":{"description":"CPU cost per hour spot.","type":"string"},"cpuCostHourlySpotFallback":{"description":"CPU cost per hour spot fallback.","type":"string"},"cpuProvisionedOnDemand":{"description":"Provisioned CPU cores on-demand.","type":"string"},"cpuProvisionedSpot":{"description":"Provisioned CPU cores spot.","type":"string"},"cpuProvisionedSpotFallback":{"description":"Provisioned CPU cores spot fallback.","type":"string"},"cpuRequestedOnDemand":{"description":"Requested CPU cores on-demand.","type":"string"},"cpuRequestedSpot":{"description":"Requested CPU cores spot.","type":"string"},"cpuRequestedSpotFallback":{"description":"Requested CPU cores spot fallback.","type":"string"},"cpuUsed":{"description":"Used CPU cores.","type":"string"},"gpuAllocatableOnDemand":{"description":"Allocatable GPUs on-demand.","type":"string"},"gpuAllocatableSpot":{"description":"Allocatable GPUs spot.","type":"string"},"gpuAllocatableSpotFallback":{"description":"Allocatable GPUs spot fallback.","type":"string"},"gpuCostHourlyOnDemand":{"description":"GPU cost per hour on-demand.","type":"string"},"gpuCostHourlySpot":{"description":"GPU cost per hour spot.","type":"string"},"gpuCostHourlySpotFallback":{"description":"GPU cost per hour spot fallback.","type":"string"},"gpuProvisionedOnDemand":{"description":"Provisioned GPUs on-demand.","type":"string"},"gpuProvisionedSpot":{"description":"Provisioned GPUs spot.","type":"string"},"gpuProvisionedSpotFallback":{"description":"Provisioned GPUs spot fallback.","type":"string"},"gpuRequestedOnDemand":{"description":"Requested GPUs on-demand.","type":"string"},"gpuRequestedSpot":{"description":"Requested GPUs spot.","type":"string"},"gpuRequestedSpotFallback":{"description":"Requested GPUs spot fallback.","type":"string"},"nodeCountOnDemand":{"description":"Total number of on-demand nodes.","type":"string"},"nodeCountOnDemandCastai":{"description":"Number of on-demand nodes managed by CAST.AI.","type":"string"},"nodeCountSpot":{"description":"Total number of spot nodes.","type":"string"},"nodeCountSpotCastai":{"description":"Number of spot nodes managed by CAST.AI.","type":"string"},"nodeCountSpotFallbackCastai":{"description":"Number of spot-fallback nodes managed by CAST.AI.","type":"string"},"podCount":{"description":"Pod count.","type":"string"},"ramAllocatableOnDemand":{"description":"Allocatable RAM GiB on-demand.","type":"string"},"ramAllocatableSpot":{"description":"Allocatable RAM GiB spot.","type":"string"},"ramAllocatableSpotFallback":{"description":"Allocatable RAM GiB spot fallback.","type":"string"},"ramCostHourlyOnDemand":{"description":"RAM cost per hour on-demand.","type":"string"},"ramCostHourlySpot":{"description":"RAM cost per hour spot.","type":"string"},"ramCostHourlySpotFallback":{"description":"RAM cost per hour spot fallback.","type":"string"},"ramProvisionedOnDemand":{"description":"Provisioned RAM GiB on-demand.","type":"string"},"ramProvisionedSpot":{"description":"Provisioned RAM GiB spot.","type":"string"},"ramProvisionedSpotFallback":{"description":"Provisioned RAM GiB spot fallback.","type":"string"},"ramRequestedOnDemand":{"description":"Requested RAM GiB on-demand.","type":"string"},"ramRequestedSpot":{"description":"Requested RAM GiB spot.","type":"string"},"ramRequestedSpotFallback":{"description":"Requested RAM GiB spot fallback.","type":"string"},"ramUsed":{"description":"Used RAM GiB.","type":"string"},"unknownNodeCount":{"description":"Number of nodes with not supported instance type.","type":"string"},"unschedulablePodCount":{"description":"Unschedulable pod count.","type":"string"}},"type":"object"},"costreport.v1beta1.ConfigurationAfter":{"properties":{"nodes":{"description":"A single cluster node.","items":{"$ref":"#/components/schemas/costreport.v1beta1.Node"},"type":"array"},"summary":{"$ref":"#/components/schemas/costreport.v1beta1.ConfigurationAfter.Summary"}},"type":"object"},"costreport.v1beta1.ConfigurationAfter.Summary":{"description":"Summary of suggested node configuration.","properties":{"avgCpuPrice":{"description":"Average hourly price per CPU core.","type":"string"},"avgRamPrice":{"description":"Average hourly price per RAM GiB.","type":"string"},"cpuCores":{"description":"Total number of CPU cores.","format":"int32","type":"integer"},"distinctNodeTypes":{"description":"Number of distinct node types.","format":"int32","type":"integer"},"gpu":{"description":"Total number of GPU cores.","format":"int32","type":"integer"},"nodes":{"description":"Total number of nodes.","format":"int32","type":"integer"},"price":{"description":"Total hourly price of all nodes.","type":"string"},"ramBytes":{"description":"Total amount of RAM in bytes.","format":"double","type":"number"}},"type":"object"},"costreport.v1beta1.ContainerEfficiency":{"description":"Defines the workload efficiency details for a container.","properties":{"current":{"$ref":"#/components/schemas/costreport.v1beta1.ContainerEfficiency.CurrentEfficiency"},"items":{"description":"Defines the container efficiency for the container over time.","items":{"$ref":"#/components/schemas/costreport.v1beta1.ContainerEfficiency.EfficiencyItem"},"type":"array"},"name":{"description":"Defines the name of the container.","type":"string"}},"required":["items","name"],"type":"object"},"costreport.v1beta1.ContainerEfficiency.CurrentEfficiency":{"description":"Defines the efficiency info.","properties":{"cpuEfficiency":{"description":"Defines cpu efficiency ratio for the container.","type":"string"},"efficiency":{"description":"Defines the efficiency ratio for the container.","type":"string"},"memoryEfficiency":{"description":"Defines memory efficiency ratio for the container.","type":"string"},"recommendation":{"$ref":"#/components/schemas/costreport.v1beta1.Resources"},"requests":{"$ref":"#/components/schemas/costreport.v1beta1.Resources"},"usage":{"$ref":"#/components/schemas/costreport.v1beta1.Resources"}},"required":["cpuEfficiency","efficiency","memoryEfficiency","recommendation","requests","usage"],"type":"object"},"costreport.v1beta1.ContainerEfficiency.EfficiencyInfo":{"description":"Defines the efficiency info.","properties":{"costImpact":{"$ref":"#/components/schemas/costreport.v1beta1.CostImpact"},"cpuEfficiency":{"description":"Defines cpu efficiency ratio for the container.","type":"string"},"efficiency":{"description":"Defines the efficiency ratio for the container.","type":"string"},"memoryEfficiency":{"description":"Defines memory efficiency ratio for the container.","type":"string"},"recommendation":{"$ref":"#/components/schemas/costreport.v1beta1.Resources"},"requests":{"$ref":"#/components/schemas/costreport.v1beta1.Resources"},"usage":{"$ref":"#/components/schemas/costreport.v1beta1.Resources"}},"required":["costImpact","cpuEfficiency","efficiency","memoryEfficiency","recommendation","requests","usage"],"type":"object"},"costreport.v1beta1.ContainerEfficiency.EfficiencyItem":{"description":"Defines the efficiency entry.","properties":{"info":{"$ref":"#/components/schemas/costreport.v1beta1.ContainerEfficiency.EfficiencyInfo"},"timestamp":{"description":"Defines the time the efficiency information is for.","format":"date-time","type":"string"}},"required":["info","timestamp"],"type":"object"},"costreport.v1beta1.CostImpact":{"description":"Defines cost impact of wasted resources per lifecycle.","properties":{"onDemand":{"description":"Cost impact in $ for workload running on on-demand node.","type":"string"},"spot":{"description":"Cost impact in $ for workload running on spot node.","type":"string"},"spotFallback":{"description":"Cost impact in $ for workload running on spot-fallback node.","type":"string"}},"required":["onDemand","spot","spotFallback"],"type":"object"},"costreport.v1beta1.DeleteAllocationGroupResponse":{"type":"object"},"costreport.v1beta1.EgressdStatus":{"default":"StatusUnknown","description":"Defines a list of possible egressd agent statuses.\n\n - StatusUnknown: Egressd agent is unknown\n - NotInstalled: Egressd agent is not installed\n - Inactive: Egressd agent is not active (CAST AI didn't receive egressd metrics more than X amount of time)\n - Active: Egressd agent is active and working","enum":["StatusUnknown","NotInstalled","Inactive","Active"],"type":"string"},"costreport.v1beta1.FilterOperator":{"default":"OR","enum":["OR","AND"],"title":"Defines operator within filter: OR/AND","type":"string"},"costreport.v1beta1.GetAllocationGroupCostSummariesResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GetAllocationGroupCostSummariesResponse.GroupItem"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetAllocationGroupCostSummariesResponse.GroupItem":{"properties":{"groupId":{"type":"string"},"groupName":{"type":"string"},"summary":{"$ref":"#/components/schemas/costreport.v1beta1.GetAllocationGroupCostSummariesResponse.Summary"}},"type":"object"},"costreport.v1beta1.GetAllocationGroupCostSummariesResponse.Summary":{"description":"Defines cost details for a given time.","properties":{"cpuCost":{"description":"Total CPU cost of on-demand instances for the given time period.","type":"string"},"cpuCount":{"description":"Average number of CPUs used for the given time period.","type":"string"},"gpuCost":{"description":"Total GPU cost of on-demand instances for the given time period.","type":"string"},"gpuCount":{"description":"Average number of GPUs for the given time period.","type":"string"},"ramCost":{"description":"Total RAM cost of on-demand instances for the given time period.","type":"string"},"ramGib":{"description":"Average RAM GiB used for the given time period.","type":"string"},"totalCostOnDemand":{"description":"Total cost of on-demand instances for the given time period.","type":"string"},"totalCostSpot":{"description":"Total cost of spot instances for the given time period.","type":"string"},"totalCostSpotFallback":{"description":"Total cost of spot-fallback instances for the given time period.","type":"string"},"workloadCount":{"title":"Total workload count for the given period","type":"string"}},"type":"object"},"costreport.v1beta1.GetAllocationGroupCostTimedSummariesResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GetAllocationGroupCostTimedSummariesResponse.GroupItem"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetAllocationGroupCostTimedSummariesResponse.GroupItem":{"properties":{"groupId":{"type":"string"},"groupName":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GetAllocationGroupCostTimedSummariesResponse.Summary"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetAllocationGroupCostTimedSummariesResponse.Summary":{"description":"Defines cost details for a given time.","properties":{"cpuCost":{"description":"Total CPU cost of on-demand instances for the given time period.","type":"string"},"cpuCount":{"description":"Average number of CPUs used for the given time period.","type":"string"},"gpuCost":{"description":"Total GPU cost of on-demand instances for the given time period.","type":"string"},"gpuCount":{"description":"Average number of GPUs for the given time period.","type":"string"},"ramCost":{"description":"Total RAM cost of on-demand instances for the given time period.","type":"string"},"ramGib":{"description":"Average RAM GiB used for the given time period.","type":"string"},"timestamp":{"description":"Timestamp of entry.","format":"date-time","type":"string"},"totalCostOnDemand":{"description":"Total cost of on-demand instances for the given time period.","type":"string"},"totalCostSpot":{"description":"Total cost of spot instances for the given time period.","type":"string"},"totalCostSpotFallback":{"description":"Total cost of spot-fallback instances for the given time period.","type":"string"},"workloadCount":{"title":"Total workload count for the given period","type":"string"}},"type":"object"},"costreport.v1beta1.GetAllocationGroupEfficiencySummaryResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GetAllocationGroupEfficiencySummaryResponse.CostAllocationGroupItem"},"type":"array"},"topItems":{"description":"Top N allocation groups with highest cost impact.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetAllocationGroupEfficiencySummaryResponse.TopItems"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetAllocationGroupEfficiencySummaryResponse.CostAllocationGroupItem":{"properties":{"costImpact":{"$ref":"#/components/schemas/costreport.v1beta1.CostImpact"},"groupId":{"type":"string"},"groupName":{"type":"string"},"requests":{"$ref":"#/components/schemas/costreport.v1beta1.Resources"},"totalCostImpact":{"description":"Total cost impact of the group. Sum of cost impacts by lifecycle.","type":"string"},"usage":{"$ref":"#/components/schemas/costreport.v1beta1.Resources"},"waste":{"$ref":"#/components/schemas/costreport.v1beta1.Resources"},"workloadCount":{"description":"Number of workloads for the given time period.","format":"int32","type":"integer"}},"type":"object"},"costreport.v1beta1.GetAllocationGroupEfficiencySummaryResponse.CostImpactHistoryItem":{"properties":{"costImpact":{"title":"Cost impact for given timestamp","type":"string"},"timestamp":{"description":"Timestamp of the cost impact.","format":"date-time","type":"string"}},"type":"object"},"costreport.v1beta1.GetAllocationGroupEfficiencySummaryResponse.TopItems":{"properties":{"costImpactHistory":{"description":"Cost impact of the group with daily breakdownd.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetAllocationGroupEfficiencySummaryResponse.CostImpactHistoryItem"},"type":"array"},"groupId":{"type":"string"},"groupName":{"type":"string"},"totalCostImpact":{"description":"Total cost impact of the group.","type":"string"}},"type":"object"},"costreport.v1beta1.GetAllocationGroupTotalCostTimedResponse":{"properties":{"count":{"format":"uint64","title":"total count of items","type":"string"},"items":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GetAllocationGroupTotalCostTimedResponse.GroupItem"},"type":"array"},"nextCursor":{"description":"next_cursor is a token to be used in future request to retrieve subsequent items. If empty - no more items present.","type":"string"}},"type":"object"},"costreport.v1beta1.GetAllocationGroupTotalCostTimedResponse.CostItem":{"description":"Defines cost details for a given time.","properties":{"timestamp":{"description":"Timestamp of entry.","format":"date-time","type":"string"},"totalCost":{"description":"Total cost for the given time period.","type":"string"}},"type":"object"},"costreport.v1beta1.GetAllocationGroupTotalCostTimedResponse.GroupItem":{"properties":{"groupId":{"type":"string"},"groupName":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GetAllocationGroupTotalCostTimedResponse.CostItem"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetClusterCostHistoryResponse":{"description":"Defines get cluster cost history request.","properties":{"clusterId":{"description":"ID of the cluster.","type":"string"},"items":{"description":"Cost entries.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterCostHistoryResponse.CostEntry"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetClusterCostHistoryResponse.CostDetails":{"description":"Defines cluster cost details: cost and resources.","properties":{"costPerHour":{"description":"Average hourly cost of the cluster.","format":"double","type":"number"},"spotCpu":{"description":"Average number of CPUs in all nodes of type Spot in the cluster.","format":"double","type":"number"},"spotNodeCount":{"description":"Average number of nodes of type Spot in the cluster.","format":"double","type":"number"},"spotRamGib":{"description":"Average RAM (GiB) memory of all nodes of type Spot in cluster.","format":"double","type":"number"},"totalCpu":{"description":"Average number of CPUs in all nodes in the cluster.","format":"double","type":"number"},"totalNodeCount":{"description":"Average number of nodes in the cluster.","format":"double","type":"number"},"totalRamGib":{"description":"Average RAM (GiB) memory of all nodes in the cluster.","format":"double","type":"number"}},"type":"object"},"costreport.v1beta1.GetClusterCostHistoryResponse.CostEntry":{"description":"Defines cost entry.","properties":{"createdAt":{"description":"Timestamp of entry creation.","format":"date-time","type":"string"},"current":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterCostHistoryResponse.CostDetails"},"optimizedLayman":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterCostHistoryResponse.CostDetails"},"optimizedSpotInstances":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterCostHistoryResponse.CostDetails"},"optimizedSpotOnly":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterCostHistoryResponse.CostDetails"}},"type":"object"},"costreport.v1beta1.GetClusterCostReportResponse":{"description":"Defines get cluster cost report response.","properties":{"clusterId":{"description":"ID of the cluster.","type":"string"},"items":{"description":"Cost report entries.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterCostReportResponse.CostReportItem"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetClusterCostReportResponse.CostReportItem":{"description":"Defines cost report item.","properties":{"costOnDemand":{"description":"Average cost of on-demand instances.","type":"string"},"costSpot":{"description":"Average cost of spot instances.","type":"string"},"costSpotFallback":{"description":"Average cost of spot-fallback instances.","type":"string"},"cpuCostOnDemand":{"description":"Average CPU cost of on-demand instances.","type":"string"},"cpuCostSpot":{"description":"Average CPU cost of spot instances.","type":"string"},"cpuCostSpotFallback":{"description":"Average CPU cost of spot-fallback instances.","type":"string"},"cpuCountOnDemand":{"description":"Average number of CPUs on on-demand instances.","type":"string"},"cpuCountSpot":{"description":"Average number of CPUs on spot instances.","type":"string"},"cpuCountSpotFallback":{"description":"Average number of CPUs on spot-fallback instances.","type":"string"},"gpuCostOnDemand":{"description":"Average GPU cost of on-demand instances.","type":"string"},"gpuCostSpot":{"description":"Average GPU cost of spot instances.","type":"string"},"gpuCostSpotFallback":{"description":"Average GPU cost of spot-fallback instances.","type":"string"},"gpuCountOnDemand":{"description":"Average number of GPUs on on-demand instances.","type":"string"},"gpuCountSpot":{"description":"Average number of GPUs on spot instances.","type":"string"},"gpuCountSpotFallback":{"description":"Average number of GPUs on spot-fallback instances.","type":"string"},"ramCostOnDemand":{"description":"Average RAM cost of on-demand instances.","type":"string"},"ramCostSpot":{"description":"Average RAM cost of spot instances.","type":"string"},"ramCostSpotFallback":{"description":"Average RAM cost of spot-fallback instances.","type":"string"},"ramGibOnDemand":{"description":"Average number of RAM GiB on on-demand instances.","type":"string"},"ramGibSpot":{"description":"Average number of RAM GiB on spot instances.","type":"string"},"ramGibSpotFallback":{"description":"Average number of RAM GiB on spot-fallback instances.","type":"string"},"timestamp":{"description":"Timestamp of entry creation.","format":"date-time","type":"string"}},"type":"object"},"costreport.v1beta1.GetClusterEfficiencyReportResponse":{"description":"Defines get cluster efficiency report response.","properties":{"clusterId":{"description":"ID of the cluster.","type":"string"},"current":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterEfficiencyReportResponse.Current"},"items":{"description":"Report entries.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterEfficiencyReportResponse.ReportItem"},"type":"array"},"noDataReason":{"$ref":"#/components/schemas/costreport.v1beta1.NoDataReason"},"summary":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterEfficiencyReportResponse.Summary"}},"type":"object"},"costreport.v1beta1.GetClusterEfficiencyReportResponse.Current":{"properties":{"cpuOverprovisioningPercent":{"description":"CPU overprovisioning (percent).","type":"string"},"cpuProvisioned":{"description":"CPU cores provisioned.","type":"string"},"cpuRequested":{"description":"CPU cores requested.","type":"string"},"cpuUsed":{"description":"CPU cores actually used.","type":"string"},"ramGibProvisioned":{"description":"RAM GiB provisioned.","type":"string"},"ramGibRequested":{"description":"RAM GiB requested.","type":"string"},"ramGibUsed":{"description":"RAM GiB actually used.","type":"string"},"ramOverprovisioningPercent":{"description":"RAM overprovisioning (percent).","type":"string"}},"type":"object"},"costreport.v1beta1.GetClusterEfficiencyReportResponse.ReportItem":{"description":"Defines report item.","properties":{"cpuCostOnDemand":{"description":"Average CPU cost of on-demand instances.","type":"string"},"cpuCostSpot":{"description":"Average CPU cost of spot instances.","type":"string"},"cpuCostSpotFallback":{"description":"Average CPU cost of spot-fallback instances.","type":"string"},"cpuCountOnDemand":{"description":"Average number of CPUs on on-demand instances.","type":"string"},"cpuCountSpot":{"description":"Average number of CPUs on spot instances.","type":"string"},"cpuCountSpotFallback":{"description":"Average number of CPUs on spot-fallback instances.","type":"string"},"cpuOverprovisioningOnDemand":{"description":"Average CPU overprovisioning on on-demand instances.","type":"string"},"cpuOverprovisioningOnDemandPercent":{"description":"Average CPU overprovisioning percentage on on-demand instances.","type":"string"},"cpuOverprovisioningSpot":{"description":"Average CPU overprovisioning on spot instances.","type":"string"},"cpuOverprovisioningSpotFallback":{"description":"Average CPU overprovisioning on spot-fallback instances.","type":"string"},"cpuOverprovisioningSpotFallbackPercent":{"description":"Average CPU overprovisioning percentage on spot-fallback instances.","type":"string"},"cpuOverprovisioningSpotPercent":{"description":"Average CPU overprovisioning percentage on spot instances.","type":"string"},"cpuUsedOnDemand":{"description":"Average number of used CPUs on on-demand instances.","type":"string"},"cpuUsedSpot":{"description":"Average number of used CPUs on spot instances.","type":"string"},"cpuUsedSpotFallback":{"description":"Average number of used CPUs on spot-fallback instances.","type":"string"},"ramCostOnDemand":{"description":"Average RAM cost of on-demand instances.","type":"string"},"ramCostSpot":{"description":"Average RAM cost of spot instances.","type":"string"},"ramCostSpotFallback":{"description":"Average RAM cost of spot-fallback instances.","type":"string"},"ramGibOnDemand":{"description":"Average number of RAM GiB on on-demand instances.","type":"string"},"ramGibSpot":{"description":"Average number of RAM GiB on spot instances.","type":"string"},"ramGibSpotFallback":{"description":"Average number of RAM GiB on spot-fallback instances.","type":"string"},"ramOverprovisioningOnDemand":{"description":"Average RAM overprovisioning on on-demand instances.","type":"string"},"ramOverprovisioningOnDemandPercent":{"description":"Average RAM overprovisioning percentage on on-demand instances.","type":"string"},"ramOverprovisioningSpot":{"description":"Average RAM overprovisioning on spot instances.","type":"string"},"ramOverprovisioningSpotFallback":{"description":"Average RAM overprovisioning on spot-fallback instances.","type":"string"},"ramOverprovisioningSpotFallbackPercent":{"description":"Average RAM overprovisioning percentage on spot-fallback instances.","type":"string"},"ramOverprovisioningSpotPercent":{"description":"Average RAM overprovisioning percentage on spot instances.","type":"string"},"ramUsedGibOnDemand":{"description":"Average number of used RAM GiB on on-demand instances.","type":"string"},"ramUsedGibSpot":{"description":"Average number of used RAM GiB on spot instances.","type":"string"},"ramUsedGibSpotFallback":{"description":"Average number of used RAM GiB on spot-fallback instances.","type":"string"},"requestedCpuCountOnDemand":{"description":"Average number of requested CPUs on on-demand instances.","type":"string"},"requestedCpuCountSpot":{"description":"Average number of requested CPUs on spot instances.","type":"string"},"requestedCpuCountSpotFallback":{"description":"Average number of requested CPUs on spot-fallback instances.","type":"string"},"requestedRamGibOnDemand":{"description":"Average number of requested RAM GiB on on-demand instances.","type":"string"},"requestedRamGibSpot":{"description":"Average number of requested RAM GiB on spot instances.","type":"string"},"requestedRamGibSpotFallback":{"description":"Average number of requested RAM GiB on spot-fallback instances.","type":"string"},"timestamp":{"description":"Timestamp of entry creation.","format":"date-time","type":"string"}},"type":"object"},"costreport.v1beta1.GetClusterEfficiencyReportResponse.Summary":{"properties":{"costPerCpuProvisioned":{"description":"Average cost per CPU provisioned.","type":"string"},"costPerCpuRequested":{"description":"Average cost per CPU requested.","type":"string"},"costPerCpuUsed":{"description":"Average cost per CPU used.","type":"string"},"costPerRamGibProvisioned":{"description":"Average cost per RAM GiB provisioned.","type":"string"},"costPerRamGibRequested":{"description":"Average cost per RAM GiB requested.","type":"string"},"costPerRamGibUsed":{"description":"Average cost per RAM GiB used.","type":"string"},"cpuOverprovisioningPercent":{"type":"string"},"ramOverprovisioningPercent":{"type":"string"}},"type":"object"},"costreport.v1beta1.GetClusterNamespaceCostReportResponse":{"description":"Defines the get cluster namespace cost report response.","properties":{"clusterId":{"description":"ID of the cluster.","type":"string"},"count":{"format":"uint64","title":"total count of items","type":"string"},"items":{"description":"Namespace cost entries.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterNamespaceCostReportResponse.NamespaceReportItem"},"type":"array"},"nextCursor":{"description":"next_cursor is a token to be used in future request to retrieve subsequent items. If empty - no more items present.","type":"string"},"noDataReason":{"$ref":"#/components/schemas/costreport.v1beta1.NoDataReason"}},"type":"object"},"costreport.v1beta1.GetClusterNamespaceCostReportResponse.NamespaceReportItem":{"properties":{"costMetrics":{"description":"Cost metrics of the namespace.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterNamespaceCostReportResponse.NamespaceReportItem.NamespaceCost"},"type":"array"},"namespace":{"description":"Name of the namespace.","type":"string"}},"type":"object"},"costreport.v1beta1.GetClusterNamespaceCostReportResponse.NamespaceReportItem.NamespaceCost":{"properties":{"timestamp":{"description":"Timestamp of entry creation.","format":"date-time","type":"string"},"totalCost":{"description":"Total cost of the namespace for the given time period.","type":"string"}},"type":"object"},"costreport.v1beta1.GetClusterNamespaceCostReportSummariesResponse":{"description":"Defines the get cluster namespace cost report summaries response.","properties":{"clusterId":{"description":"ID of the cluster.","type":"string"},"count":{"description":"Total count of items matching request filters.","format":"uint64","type":"string"},"items":{"description":"Namespace cost entries.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterNamespaceCostReportSummariesResponse.NamespaceItem"},"type":"array"},"nextCursor":{"description":"next_cursor is a token to be used in future request to retrieve subsequent items. If empty - no more items present.","type":"string"},"noDataReason":{"$ref":"#/components/schemas/costreport.v1beta1.NoDataReason"}},"type":"object"},"costreport.v1beta1.GetClusterNamespaceCostReportSummariesResponse.CostSummary":{"properties":{"costOnDemand":{"description":"Cost of the namespace on on-demand instances for the given time period.","type":"string"},"costSpot":{"description":"Cost of the namespace on spot instances for the given time period.","type":"string"},"costSpotFallback":{"description":"Cost of the namespace on spot fallback instances for the given time period.","type":"string"},"cpuCost":{"description":"CPU cost for the given time period.","type":"string"},"cpuCount":{"description":"Average number of CPUs for the given time period.","type":"string"},"gpuCost":{"description":"GPU cost for the given time period.","type":"string"},"gpuCount":{"description":"Average number of requested GPUs for the given time period.","type":"string"},"ramCost":{"description":"RAM cost for the given time period.","type":"string"},"ramGib":{"description":"Average amount of RAM GiB for the given time period.","type":"string"},"totalCost":{"description":"Total cost of the namespace for the given time period.","type":"string"},"workloadCount":{"description":"Average amount of workloads for the given time period.","type":"string"}},"type":"object"},"costreport.v1beta1.GetClusterNamespaceCostReportSummariesResponse.NamespaceItem":{"description":"Defines a namespace.","properties":{"cost":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterNamespaceCostReportSummariesResponse.CostSummary"},"namespace":{"description":"Name of the namespace.","type":"string"}},"type":"object"},"costreport.v1beta1.GetClusterNamespaceDataTransferCostResponse":{"properties":{"clusterId":{"description":"ID of the cluster.","type":"string"},"count":{"format":"uint64","title":"total count of elements in 'items' array","type":"string"},"items":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.NamespaceDataTransferItem"},"title":"Namespace data transfer cost items","type":"array"},"nextCursor":{"description":"next_cursor is a token to be used in future request to retrieve subsequent items. If empty - no more items present.","type":"string"},"noDataReason":{"$ref":"#/components/schemas/costreport.v1beta1.NoDataReason"}},"type":"object"},"costreport.v1beta1.GetClusterNamespaceDataTransferTimedTotalCostResponse":{"properties":{"clusterId":{"description":"ID of the cluster.","type":"string"},"count":{"format":"uint64","title":"total count of elements in 'items' array","type":"string"},"items":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterNamespaceDataTransferTimedTotalCostResponse.NamespaceCostItem"},"title":"Namespace data transfer cost items","type":"array"},"nextCursor":{"description":"next_cursor is a token to be used in future request to retrieve subsequent items. If empty - no more items present.","type":"string"},"noDataReason":{"$ref":"#/components/schemas/costreport.v1beta1.NoDataReason"}},"type":"object"},"costreport.v1beta1.GetClusterNamespaceDataTransferTimedTotalCostResponse.NamespaceCostItem":{"properties":{"items":{"description":"Timed data transfer costs for the namespace.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterNamespaceDataTransferTimedTotalCostResponse.NamespaceCostItem.TimedCostItem"},"type":"array"},"namespace":{"description":"Name of the namespace.","type":"string"},"totalCost":{"title":"Total cost","type":"string"}},"type":"object"},"costreport.v1beta1.GetClusterNamespaceDataTransferTimedTotalCostResponse.NamespaceCostItem.TimedCostItem":{"properties":{"timestamp":{"description":"Timestamp of entry creation.","format":"date-time","type":"string"},"totalCost":{"description":"Egress cost details at the given timestamp.","type":"string"}},"type":"object"},"costreport.v1beta1.GetClusterResourceUsageResponse":{"description":"Defines get cluster summary response.","properties":{"clusterId":{"description":"ID of the cluster.","type":"string"},"items":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterResourceUsageResponse.UsageRec"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetClusterResourceUsageResponse.UsageRec":{"properties":{"cpuProvisioned":{"description":"CPU cores provisioned.","type":"string"},"cpuRequested":{"description":"CPU cores requested.","type":"string"},"cpuUsed":{"description":"CPU cores used.","type":"string"},"gpuAllocatable":{"description":"Allocatable GPUs.","type":"string"},"gpuRequested":{"description":"Requested GPUs.","type":"string"},"ramProvisioned":{"description":"RAM GiB provisioned.","type":"string"},"ramRequested":{"description":"RAM GiB requested.","type":"string"},"ramUsed":{"description":"RAM GiB used.","type":"string"},"timestamp":{"description":"Timestamp of the entry.","format":"date-time","type":"string"}},"type":"object"},"costreport.v1beta1.GetClusterSavingsReportResponse":{"description":"Defines a cluster savings report response.","properties":{"clusterId":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterSavingsReportResponse.Item"},"type":"array"},"summary":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterSavingsReportResponse.Summary"}},"type":"object"},"costreport.v1beta1.GetClusterSavingsReportResponse.Item":{"properties":{"downscalingSavings":{"type":"string"},"spotSavings":{"type":"string"},"timestamp":{"description":"Timestamp of entry creation.","format":"date-time","type":"string"}},"type":"object"},"costreport.v1beta1.GetClusterSavingsReportResponse.Summary":{"properties":{"totalCost":{"type":"string"},"totalSavings":{"type":"string"}},"type":"object"},"costreport.v1beta1.GetClusterSummaryResponse":{"description":"Defines get cluster summary response.","properties":{"nodesSummaries":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterSummaryResponse.NodesSummary"},"type":"array"},"summary":{"$ref":"#/components/schemas/costreport.v1beta1.ClusterSummary"}},"type":"object"},"costreport.v1beta1.GetClusterSummaryResponse.NodesSummary":{"properties":{"cpuOverprovisioning":{"type":"string"},"linuxNodeCount":{"type":"string"},"managedBy":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterSummaryResponse.NodesSummary.ManagedBy"},"ramOverprovisioning":{"type":"string"},"windowsNodeCount":{"type":"string"}},"type":"object"},"costreport.v1beta1.GetClusterSummaryResponse.NodesSummary.ManagedBy":{"default":"UNKNOWN","description":"The provider name which managed this node group.","enum":["UNKNOWN","CASTAI","KARPENTER","EKS","GKE","AKS","KOPS","OPENSHIFT"],"type":"string"},"costreport.v1beta1.GetClusterUnscheduledPodsResponse":{"description":"Defines response for unscheduled pods in the cluster.","properties":{"clusterId":{"description":"ID of the cluster.","type":"string"},"items":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterUnscheduledPodsResponse.UnscheduledWorkload"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetClusterUnscheduledPodsResponse.UnscheduledPod":{"properties":{"cpuRequested":{"description":"CPU cores requested.","type":"string"},"events":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterUnscheduledPodsResponse.UnscheduledPod.Event"},"type":"array"},"message":{"description":"Unscheduled pod message.","type":"string"},"name":{"description":"Pod name.","type":"string"},"ramRequested":{"description":"RAM GiB requested.","type":"string"}},"type":"object"},"costreport.v1beta1.GetClusterUnscheduledPodsResponse.UnscheduledPod.Event":{"properties":{"action":{"type":"string"},"firstTimestamp":{"format":"date-time","type":"string"},"lastTimestamp":{"format":"date-time","type":"string"},"message":{"type":"string"},"reason":{"type":"string"},"reportingController":{"type":"string"}},"type":"object"},"costreport.v1beta1.GetClusterUnscheduledPodsResponse.UnscheduledWorkload":{"properties":{"name":{"description":"Workload name.","type":"string"},"namespace":{"description":"Workload namespace.","type":"string"},"type":{"description":"Workload type.","type":"string"},"unscheduledPods":{"description":"Unscheduled pods.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterUnscheduledPodsResponse.UnscheduledPod"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetClusterWorkloadEfficiencyReportByNameResponse":{"description":"Defines cluster workload efficiency response.","properties":{"containers":{"description":"Defines the efficiency for every container in the workload.","items":{"$ref":"#/components/schemas/costreport.v1beta1.ContainerEfficiency"},"type":"array"},"costImpact":{"$ref":"#/components/schemas/costreport.v1beta1.CostImpact"},"currentPodCount":{"description":"Current pod count of this workload.","format":"int64","nullable":true,"type":"string"},"efficiency":{"description":"Defines the efficiency for the whole workload over time.","items":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadEfficiency"},"type":"array"},"metricsServerAvailable":{"description":"Whether cluster has metrics server installed.","type":"boolean"},"noDataReason":{"$ref":"#/components/schemas/costreport.v1beta1.NoDataReason"},"waste":{"$ref":"#/components/schemas/costreport.v1beta1.Resources"}},"type":"object"},"costreport.v1beta1.GetClusterWorkloadEfficiencyReportResponse":{"description":"Defines cluster workload efficiency response.","properties":{"clusterId":{"description":"ID of the cluster.","type":"string"},"count":{"format":"uint64","title":"total count of elements in 'items' array","type":"string"},"items":{"description":"Workload cost entries.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterWorkloadEfficiencyReportResponse.WorkloadItem"},"type":"array"},"metricsServerAvailable":{"description":"Whether cluster has metrics server installed.","type":"boolean"},"nextCursor":{"description":"next_cursor is a token to be used in future request to retrieve subsequent items. If empty - no more items present.","type":"string"},"noDataReason":{"$ref":"#/components/schemas/costreport.v1beta1.NoDataReason"},"topItems":{"description":"Workloads with highest cost impact.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterWorkloadEfficiencyReportResponse.TopWorkload"},"type":"array"}},"required":["clusterId"],"type":"object"},"costreport.v1beta1.GetClusterWorkloadEfficiencyReportResponse.CostImpactHistoryItem":{"properties":{"costImpact":{"$ref":"#/components/schemas/costreport.v1beta1.CostImpact"},"timestamp":{"description":"Timestamp of the cost impact.","format":"date-time","type":"string"}},"type":"object"},"costreport.v1beta1.GetClusterWorkloadEfficiencyReportResponse.TopWorkload":{"properties":{"costImpact":{"$ref":"#/components/schemas/costreport.v1beta1.CostImpact"},"costImpactHistory":{"description":"Cost impact history.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterWorkloadEfficiencyReportResponse.CostImpactHistoryItem"},"type":"array"},"namespace":{"description":"Namespace the workload is in.","type":"string"},"workloadName":{"description":"Name of the workload.","type":"string"},"workloadType":{"description":"Type of the workload.","type":"string"}},"required":["namespace","workloadName","workloadType"],"type":"object"},"costreport.v1beta1.GetClusterWorkloadEfficiencyReportResponse.WorkloadItem":{"description":"Defines a workload.","properties":{"costImpact":{"$ref":"#/components/schemas/costreport.v1beta1.CostImpact"},"namespace":{"description":"Namespace the workload is in.","type":"string"},"requests":{"$ref":"#/components/schemas/costreport.v1beta1.Resources"},"totalCostImpact":{"description":"Total cost impact of the workload. Sum of cost impacts by lifecycle.","type":"string"},"usage":{"$ref":"#/components/schemas/costreport.v1beta1.Resources"},"waste":{"$ref":"#/components/schemas/costreport.v1beta1.Resources"},"workloadName":{"description":"Name of the workload.","type":"string"},"workloadType":{"description":"Type of the workload.","type":"string"}},"required":["namespace","requests","usage","workloadName","workloadType"],"type":"object"},"costreport.v1beta1.GetClusterWorkloadLabelsResponse":{"description":"Defines cluster workload labels response.","properties":{"clusterId":{"description":"ID of the cluster.","type":"string"},"items":{"description":"List of workload labels.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterWorkloadLabelsResponse.LabelValues"},"type":"array"},"noDataReason":{"$ref":"#/components/schemas/costreport.v1beta1.NoDataReason"}},"type":"object"},"costreport.v1beta1.GetClusterWorkloadLabelsResponse.LabelValues":{"description":"Defines a label name and value.","properties":{"label":{"description":"Label name.","type":"string"},"values":{"description":"Label values.","items":{"type":"string"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetClusterWorkloadReportResponse":{"description":"Defines cluster workload cost response.","properties":{"clusterId":{"description":"ID of the cluster.","type":"string"},"count":{"format":"uint64","title":"total count of items","type":"string"},"items":{"description":"Workload cost entries.","items":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadReportItem"},"type":"array"},"nextCursor":{"description":"next_cursor is a token to be used in future request to retrieve subsequent items. If empty - no more items present.","type":"string"},"noDataReason":{"$ref":"#/components/schemas/costreport.v1beta1.NoDataReason"}},"type":"object"},"costreport.v1beta1.GetClusterWorkloadRightsizingPatchRequest.WorkloadID":{"properties":{"namespace":{"type":"string"},"workloadName":{"type":"string"},"workloadType":{"type":"string"}},"type":"object"},"costreport.v1beta1.GetClusterWorkloadRightsizingPatchRequest.Workloads":{"properties":{"workloads":{"description":"Defines a list of Workload IDs.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterWorkloadRightsizingPatchRequest.WorkloadID"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetClustersCostReportResponse":{"description":"Defines get clusters cost report response.","properties":{"items":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GetClustersCostReportResponse.ClusterCostItem"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetClustersCostReportResponse.ClusterCostItem":{"description":"Defines cost report item - cost of one cluster.","properties":{"clusterId":{"description":"ID of the cluster.","type":"string"},"intervals":{"description":"Cost details of cluster per interval.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetClustersCostReportResponse.IntervalItem"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetClustersCostReportResponse.IntervalItem":{"properties":{"costOnDemandPerHour":{"description":"Cost of on-demand instances.","type":"string"},"costSpotFallbackPerHour":{"description":"Cost of spot-fallback instances.","type":"string"},"costSpotPerHour":{"description":"Cost of spot instances.","type":"string"},"timestamp":{"description":"Timestamp of entry.","format":"date-time","type":"string"}},"type":"object"},"costreport.v1beta1.GetClustersSummaryResponse":{"description":"Defines get clusters summary response.","properties":{"items":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.ClusterSummary"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetCostAllocationGroupDataTransferSummaryResponse":{"properties":{"groups":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GetCostAllocationGroupDataTransferSummaryResponse.CostAllocationGroupItem"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetCostAllocationGroupDataTransferSummaryResponse.CostAllocationGroupItem":{"properties":{"groupId":{"type":"string"},"groupName":{"type":"string"},"items":{"description":"Group traffic entries.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetCostAllocationGroupDataTransferSummaryResponse.CostItem"},"type":"array"},"workloadCount":{"title":"Total workload count over requested period","type":"string"}},"type":"object"},"costreport.v1beta1.GetCostAllocationGroupDataTransferSummaryResponse.CostItem":{"description":"Defines a workload.","properties":{"egressMetrics":{"$ref":"#/components/schemas/costreport.v1beta1.GetCostAllocationGroupDataTransferSummaryResponse.DataTransferCostItem"},"ingressMetrics":{"$ref":"#/components/schemas/costreport.v1beta1.GetCostAllocationGroupDataTransferSummaryResponse.DataTransferCostItem"},"timestamp":{"description":"Timestamp of entry.","format":"date-time","type":"string"}},"type":"object"},"costreport.v1beta1.GetCostAllocationGroupDataTransferSummaryResponse.DataTransferCostItem":{"description":"Defines a datatransfer costs item.","properties":{"cloudApiBytes":{"type":"string"},"cloudApiCost":{"type":"string"},"interRegionBytes":{"type":"string"},"interRegionCost":{"type":"string"},"interZoneBytes":{"type":"string"},"interZoneCost":{"type":"string"},"internetBytes":{"type":"string"},"internetCost":{"type":"string"},"intraZoneBytes":{"type":"string"},"intraZoneCost":{"type":"string"}},"type":"object"},"costreport.v1beta1.GetCostAllocationGroupDataTransferWorkloadsResponse":{"description":"Defines cluster workloads datatransfer cost response aggregated over the requested period.","properties":{"clusters":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GetCostAllocationGroupDataTransferWorkloadsResponse.ClusterDetails"},"type":"array"},"groupId":{"type":"string"},"groupName":{"type":"string"},"noDataReason":{"$ref":"#/components/schemas/costreport.v1beta1.NoDataReason"}},"type":"object"},"costreport.v1beta1.GetCostAllocationGroupDataTransferWorkloadsResponse.ClusterDetails":{"properties":{"clusterId":{"title":"Cluser ID where workload belongs to","type":"string"},"items":{"description":"Workload entries.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetCostAllocationGroupDataTransferWorkloadsResponse.WorkloadItem"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetCostAllocationGroupDataTransferWorkloadsResponse.WorkloadDataTransferCostItem":{"description":"Defines an aggregated workloads datatransfer cost over requested period.","properties":{"cloudApiBytes":{"type":"string"},"cloudApiCost":{"type":"string"},"interRegionBytes":{"type":"string"},"interRegionCost":{"type":"string"},"interZoneBytes":{"type":"string"},"interZoneCost":{"type":"string"},"internetBytes":{"type":"string"},"internetCost":{"type":"string"},"intraZoneBytes":{"type":"string"},"intraZoneCost":{"type":"string"}},"type":"object"},"costreport.v1beta1.GetCostAllocationGroupDataTransferWorkloadsResponse.WorkloadItem":{"description":"Defines a workload.","properties":{"egressMetrics":{"$ref":"#/components/schemas/costreport.v1beta1.GetCostAllocationGroupDataTransferWorkloadsResponse.WorkloadDataTransferCostItem"},"ingressMetrics":{"$ref":"#/components/schemas/costreport.v1beta1.GetCostAllocationGroupDataTransferWorkloadsResponse.WorkloadDataTransferCostItem"},"namespace":{"description":"Namespace the workload is in.","type":"string"},"podCount":{"description":"Average pod count of the workload within requested period.","type":"string"},"workloadName":{"description":"Name of the workload.","type":"string"},"workloadType":{"description":"Type of the workload.","type":"string"}},"type":"object"},"costreport.v1beta1.GetCostAllocationGroupSummaryResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GetCostAllocationGroupSummaryResponse.CostAllocationGroupItem"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetCostAllocationGroupSummaryResponse.CostAllocationGroupItem":{"properties":{"groupId":{"type":"string"},"groupName":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GetCostAllocationGroupSummaryResponse.CostItem"},"type":"array"},"workloadCount":{"description":"Count of workloads for the given time period.","type":"string"}},"type":"object"},"costreport.v1beta1.GetCostAllocationGroupSummaryResponse.CostItem":{"description":"Defines cost details for a given time.","properties":{"cpuCostOnDemand":{"description":"Average CPU cost of on-demand instances for the given time period.","type":"string"},"cpuCostSpot":{"description":"Average CPU cost of spot instances for the given time period.","type":"string"},"cpuCostSpotFallback":{"description":"Average CPU cost of spot-fallback instances for the given time period.","type":"string"},"cpuCountOnDemand":{"description":"Average number of CPUs used on on-demand instances for the given time period.","type":"string"},"cpuCountSpot":{"description":"Average number of CPUs used on spot instances for the given time period.","type":"string"},"cpuCountSpotFallback":{"description":"Average number of CPUs used on spot-fallback instances for the given time period.","type":"string"},"gpuCostOnDemand":{"description":"Average GPU cost of on-demand instances for the given time period.","type":"string"},"gpuCostSpot":{"description":"Average GPU cost of spot instances for the given time period.","type":"string"},"gpuCostSpotFallback":{"description":"Average GPU cost of spot-fallback instances for the given time period.","type":"string"},"gpuCountOnDemand":{"description":"Average number of GPUs used on on-demand instances for the given time period.","type":"string"},"gpuCountSpot":{"description":"Average number of GPUs used on spot instances for the given time period.","type":"string"},"gpuCountSpotFallback":{"description":"Average number of GPUs used on spot-fallback instances for the given time period.","type":"string"},"podCountOnDemand":{"description":"Average amount of pods on on-demand instances for the given time period.","type":"string"},"podCountSpot":{"description":"Average amount of pods on spot instances for the given time period.","type":"string"},"podCountSpotFallback":{"description":"Average amount of pods on spot-fallback instances for the given time period.","type":"string"},"ramCostOnDemand":{"description":"Average RAM cost of on-demand instances for the given time period.","type":"string"},"ramCostSpot":{"description":"Average RAM cost of spot instances for the given time period.","type":"string"},"ramCostSpotFallback":{"description":"Average RAM cost of spot-fallback instances for the given time period.","type":"string"},"ramGibOnDemand":{"description":"Average RAM GiB used on on-demand instances for the given time period.","type":"string"},"ramGibSpot":{"description":"Average RAM GiB used on spot instances for the given time period.","type":"string"},"ramGibSpotFallback":{"description":"Average RAM GiB used on spot-fallback instances for the given time period.","type":"string"},"timestamp":{"description":"Timestamp of entry.","format":"date-time","type":"string"},"totalCostOnDemand":{"description":"Total cost of on-demand instances for the given time period.","type":"string"},"totalCostSpot":{"description":"Total cost of spot instances for the given time period.","type":"string"},"totalCostSpotFallback":{"description":"Total cost of spot-fallback instances for the given time period.","type":"string"},"workloadCount":{"description":"Number of workloads included in group.","type":"string"}},"type":"object"},"costreport.v1beta1.GetCostAllocationGroupWorkloadsResponse":{"description":"Defines cluster workload cost response.","properties":{"groupId":{"type":"string"},"groupName":{"type":"string"},"items":{"description":"Workload entries.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetCostAllocationGroupWorkloadsResponse.WorkloadItem"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetCostAllocationGroupWorkloadsResponse.ClusterInfo":{"properties":{"id":{"type":"string"}},"title":"Cluster information, part of WorkloadItem","type":"object"},"costreport.v1beta1.GetCostAllocationGroupWorkloadsResponse.WorkloadCostItem":{"description":"Defines a workloads cost for a given time.","properties":{"cpuCostOnDemand":{"description":"Average CPU cost of the workload that are on-demand instances for the given time period.","type":"string"},"cpuCostSpot":{"description":"Average CPU cost of the workload that are spot instances for the given time period.","type":"string"},"cpuCostSpotFallback":{"description":"Average CPU cost of the workload that are spot-fallback instances for the given time period.","type":"string"},"cpuCountOnDemand":{"description":"Average number of CPUs of the workload that is on on-demand instances for the given time period.","type":"string"},"cpuCountSpot":{"description":"Average number of CPUs of the workload that is on spot instances for the given time period.","type":"string"},"cpuCountSpotFallback":{"description":"Average number of CPUs of the workload that is on spot-fallback instances for the given time period.","type":"string"},"gpuCostOnDemand":{"description":"Average GPU cost of the workload that is on on-demand instances for the given time period.","type":"string"},"gpuCostSpot":{"description":"Average GPU cost of the workload that is on spot instances for the given time period.","type":"string"},"gpuCostSpotFallback":{"description":"Average GPU cost of the workload that is on spot-fallback instances for the given time period.","type":"string"},"gpuCountOnDemand":{"description":"Average number of GPUs of the workload that is on on-demand instances for the given time period.","type":"string"},"gpuCountSpot":{"description":"Average number of GPUs of the workload that is on spot instances for the given time period.","type":"string"},"gpuCountSpotFallback":{"description":"Average number of GPUs of the workload that is on spot-fallback instances for the given time period.","type":"string"},"podCountOnDemand":{"description":"Average amount of pods for the workload that are on on-demand instances for the given time period.","type":"string"},"podCountSpot":{"description":"Average amount of pods for the workload that are on spot instances for the given time period.","type":"string"},"podCountSpotFallback":{"description":"Average amount of pods for the workload that are on spot-fallback instances for the given time period.","type":"string"},"ramCostOnDemand":{"description":"Average RAM cost of the workload that are on-demand instances for the given time period.","type":"string"},"ramCostSpot":{"description":"Average RAM cost of the workload that are spot instances for the given time period.","type":"string"},"ramCostSpotFallback":{"description":"Average RAM cost of the workload that are spot-fallback instances for the given time period.","type":"string"},"ramGibOnDemand":{"description":"Average RAM GiB used on on-demand instances for the given time period.","type":"string"},"ramGibSpot":{"description":"Average RAM GiB of the workload that are on spot instances for the given time period.","type":"string"},"ramGibSpotFallback":{"description":"Average RAM GiB of the workload that are on spot-fallback instances for the given time period.","type":"string"},"timestamp":{"description":"Timestamp of entry creation.","format":"date-time","type":"string"},"totalCostOnDemand":{"description":"Total cost of the workload that is on on-demand instances for the given time period.","type":"string"},"totalCostSpot":{"description":"Total cost of the workload that is on spot instances for the given time period.","type":"string"},"totalCostSpotFallback":{"description":"Total cost of the workload that is on spot-fallback instances for the given time period.","type":"string"}},"type":"object"},"costreport.v1beta1.GetCostAllocationGroupWorkloadsResponse.WorkloadItem":{"description":"Defines a workload.","properties":{"cluster":{"$ref":"#/components/schemas/costreport.v1beta1.GetCostAllocationGroupWorkloadsResponse.ClusterInfo"},"items":{"description":"Cost metrics of the workload.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetCostAllocationGroupWorkloadsResponse.WorkloadCostItem"},"type":"array"},"namespace":{"description":"Namespace the workload is in.","type":"string"},"workloadName":{"description":"Name of the workload.","type":"string"},"workloadType":{"description":"Type of the workload.","type":"string"}},"type":"object"},"costreport.v1beta1.GetEgressdScriptResponse":{"properties":{"script":{"type":"string"}},"type":"object"},"costreport.v1beta1.GetGroupingConfigResponse":{"properties":{"clusterId":{"description":"ID of the cluster.","type":"string"},"config":{"$ref":"#/components/schemas/costreport.v1beta1.GroupingConfig"}},"type":"object"},"costreport.v1beta1.GetNamespacesForClustersResponse":{"description":"Defines namespaces for clusters response.","properties":{"clusterNamespaces":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.ClusterNamespaces"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetNodeLabelNamesResponse":{"description":"Defines organization node label names response.","properties":{"count":{"format":"uint64","title":"total count of items","type":"string"},"labelNames":{"description":"List of node label names.","items":{"type":"string"},"type":"array"},"nextCursor":{"description":"next_cursor is a token to be used in future request to retrieve subsequent items. If empty - no more items present.","type":"string"}},"type":"object"},"costreport.v1beta1.GetNodeLabelValuesResponse":{"description":"Defines organization node label values response.","properties":{"count":{"format":"uint64","title":"total count of items","type":"string"},"labelValues":{"items":{"type":"string"},"type":"array"},"nextCursor":{"description":"next_cursor is a token to be used in future request to retrieve subsequent items. If empty - no more items present.","type":"string"}},"type":"object"},"costreport.v1beta1.GetOrganizationClustersCostReportResponse":{"properties":{"clusters":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GetOrganizationClustersCostReportResponse.ClusterSummary"},"type":"array"},"summary":{"$ref":"#/components/schemas/costreport.v1beta1.GetOrganizationClustersCostReportResponse.Summary"},"topClustersCost":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GetOrganizationClustersCostReportResponse.ClusterCost"},"type":"array"},"totalDailyCost":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GetOrganizationClustersCostReportResponse.TimestampedCostItem"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetOrganizationClustersCostReportResponse.ClusterCost":{"properties":{"clusterId":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GetOrganizationClustersCostReportResponse.TimestampedCostItem"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetOrganizationClustersCostReportResponse.ClusterSummary":{"properties":{"clusterDeletedAt":{"format":"date-time","nullable":true,"type":"string"},"clusterId":{"type":"string"},"clusterName":{"type":"string"},"summary":{"$ref":"#/components/schemas/costreport.v1beta1.GetOrganizationClustersCostReportResponse.Summary"}},"type":"object"},"costreport.v1beta1.GetOrganizationClustersCostReportResponse.Summary":{"properties":{"costFallback":{"description":"Average compute cost of spot fallback instances.","type":"string"},"costOnDemand":{"description":"Average compute cost of on-demand instances.","type":"string"},"costSpot":{"description":"Average compute cost of spot instances.","type":"string"},"cpuAllocatable":{"description":"Average allocatable CPU cores.","type":"string"},"cpuCost":{"description":"Average CPU cost.","type":"string"},"cpuProvisioned":{"description":"Average provisioned CPU cores.","type":"string"},"cpuRequested":{"description":"Average requested CPU cores.","type":"string"},"gpuAllocatable":{"description":"Average allocatable GPUs.","type":"string"},"gpuCost":{"description":"Average GPU cost.","type":"string"},"gpuProvisioned":{"description":"Average provisioned GPUs.","type":"string"},"gpuRequested":{"description":"Average requested GPUs.","type":"string"},"ramAllocatable":{"description":"Average allocatable RAM GiB.","type":"string"},"ramCost":{"description":"Average RAM cost.","type":"string"},"ramProvisioned":{"description":"Average provisioned RAM GiB.","type":"string"},"ramRequested":{"description":"Average requested RAM GiB.","type":"string"},"totalCost":{"description":"Average compute cost.","type":"string"}},"type":"object"},"costreport.v1beta1.GetOrganizationClustersCostReportResponse.TimestampedCostItem":{"properties":{"timestamp":{"format":"date-time","type":"string"},"value":{"type":"string"}},"type":"object"},"costreport.v1beta1.GetReportingCapabilitiesResponse":{"properties":{"gpuDataAvailable":{"description":"Returns whether the cluster has GPU data collected in the selected time range.","type":"boolean"},"networkDataAvailable":{"description":"Returns whether the cluster has network usage collected by egressd in the selected time range.","type":"boolean"},"workloadDataAvailable":{"description":"Returns whether the cluster has workload metrics collected in the selected time range.","type":"boolean"}},"type":"object"},"costreport.v1beta1.GetRightsizingSummaryResponse":{"description":"Defines rightsizing summary response.","properties":{"rightsizingRecommendation":{"$ref":"#/components/schemas/costreport.v1beta1.RightsizingRecommendation"}},"type":"object"},"costreport.v1beta1.GetSavingsRecommendationResponse":{"description":"Defines savings recommendation response.","properties":{"currentConfiguration":{"$ref":"#/components/schemas/costreport.v1beta1.SavingsCurrentConfiguration"},"isRebalancingRecommended":{"description":"Whether rebalancing is recommended. Calculated based on available savings.","type":"boolean"},"lastUpdatedAt":{"description":"Timestamp of the last cluster snapshot used to calculate the report.","format":"date-time","type":"string"},"recommendations":{"additionalProperties":{"$ref":"#/components/schemas/costreport.v1beta1.SavingsRecommendation"},"description":"Different types of estimated savings reports.","type":"object"}},"type":"object"},"costreport.v1beta1.GetSingleNamespaceCostReportResponse":{"description":"Defines the get single namespace cost report response.","properties":{"clusterId":{"description":"ID of the cluster.","type":"string"},"costSummary":{"$ref":"#/components/schemas/costreport.v1beta1.NamespaceCostSummary"},"dailyCostItems":{"description":"Cost metrics of the namespace.","items":{"$ref":"#/components/schemas/costreport.v1beta1.NamespaceCostItem"},"type":"array"},"namespace":{"description":"Namespace name.","type":"string"},"noDataReason":{"$ref":"#/components/schemas/costreport.v1beta1.NoDataReason"}},"type":"object"},"costreport.v1beta1.GetSingleWorkloadCostReportResponse":{"description":"Defines cluster workload cost response.","properties":{"clusterId":{"description":"ID of the cluster.","type":"string"},"item":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadReportItem"},"noDataReason":{"$ref":"#/components/schemas/costreport.v1beta1.NoDataReason"}},"type":"object"},"costreport.v1beta1.GetSingleWorkloadDataTransferCostResponse":{"properties":{"clusterId":{"description":"ID of the cluster.","type":"string"},"egressdStatus":{"$ref":"#/components/schemas/costreport.v1beta1.EgressdStatus"},"item":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadDataTransferItem"}},"title":"Defines single workload datatransfer cost response","type":"object"},"costreport.v1beta1.GetWorkloadCostSummariesResponse":{"description":"Defines workload compute cost report response.","properties":{"clusterId":{"description":"ID of the cluster.","type":"string"},"count":{"description":"Total count of items matching request filters.","format":"uint64","type":"string"},"items":{"description":"Workload cost entries.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetWorkloadCostSummariesResponse.WorkloadItem"},"type":"array"},"nextCursor":{"description":"next_cursor is a token to be used in future request to retrieve subsequent items. If empty - no more items present.","type":"string"},"noDataReason":{"$ref":"#/components/schemas/costreport.v1beta1.NoDataReason"}},"type":"object"},"costreport.v1beta1.GetWorkloadCostSummariesResponse.CostSummary":{"properties":{"costOnDemand":{"description":"Cost of the workload on on-demand instances for the given time period.","type":"string"},"costSpot":{"description":"Cost of the workload on spot instances for the given time period.","type":"string"},"costSpotFallback":{"description":"Cost of the workload on spot fallback instances for the given time period.","type":"string"},"cpuCost":{"description":"CPU cost for the given time period.","type":"string"},"cpuCount":{"description":"Average number of CPUs for the given time period.","type":"string"},"gpuCost":{"description":"GPU cost for the given time period.","type":"string"},"gpuCount":{"description":"Average number of requested GPUs for the given time period.","type":"string"},"podCount":{"description":"Average amount of pods for the given time period.","type":"string"},"ramCost":{"description":"RAM cost for the given time period.","type":"string"},"ramGib":{"description":"Average amount of RAM GiB for the given time period.","type":"string"},"totalCost":{"description":"Total cost of the workload for the given time period.","type":"string"}},"type":"object"},"costreport.v1beta1.GetWorkloadCostSummariesResponse.WorkloadItem":{"description":"Defines a workload.","properties":{"cost":{"$ref":"#/components/schemas/costreport.v1beta1.GetWorkloadCostSummariesResponse.CostSummary"},"labels":{"description":"Labels of the workload.","items":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadLabel"},"type":"array"},"namespace":{"description":"Namespace the workload is in.","type":"string"},"workloadName":{"description":"Name of the workload.","type":"string"},"workloadType":{"description":"Type of the workload.","type":"string"}},"type":"object"},"costreport.v1beta1.GetWorkloadDataTransferCostResponse":{"properties":{"clusterId":{"description":"ID of the cluster.","type":"string"},"count":{"format":"uint64","title":"total count of elements in 'items' array","type":"string"},"egressdStatus":{"$ref":"#/components/schemas/costreport.v1beta1.EgressdStatus"},"items":{"description":"Workload datatransfer cost entries.","items":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadDataTransferItem"},"type":"array"},"nextCursor":{"description":"next_cursor is a token to be used in future request to retrieve subsequent items. If empty - no more items present.","type":"string"},"noDataReason":{"$ref":"#/components/schemas/costreport.v1beta1.NoDataReason"}},"title":"Defines cluster workload datatransfer cost","type":"object"},"costreport.v1beta1.GetWorkloadLabelNamesResponse":{"description":"Defines organization workload label names response.","properties":{"count":{"format":"uint64","title":"total count of items","type":"string"},"labelNames":{"description":"List of workload label names.","items":{"type":"string"},"type":"array"},"nextCursor":{"description":"next_cursor is a token to be used in future request to retrieve subsequent items. If empty - no more items present.","type":"string"}},"type":"object"},"costreport.v1beta1.GetWorkloadLabelValuesDeprecatedResponse":{"description":"Defines organization workload label values response.","properties":{"labelValues":{"items":{"type":"string"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetWorkloadLabelValuesResponse":{"description":"Defines organization workload label values response.","properties":{"count":{"format":"uint64","title":"total count of items","type":"string"},"labelValues":{"items":{"type":"string"},"type":"array"},"nextCursor":{"description":"next_cursor is a token to be used in future request to retrieve subsequent items. If empty - no more items present.","type":"string"}},"type":"object"},"costreport.v1beta1.GetWorkloadTrafficDestinationsHistoryResponse":{"description":"Defines the response for workload traffic destinations history.","properties":{"destinations":{"description":"Workload traffic destinations and their pricing history.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetWorkloadTrafficDestinationsHistoryResponse.DestinationHistory"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetWorkloadTrafficDestinationsHistoryResponse.DestinationHistory":{"description":"Defines a destination workload costs with history.","properties":{"destination":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadDestination"},"history":{"description":"History of traffic costs.","items":{"$ref":"#/components/schemas/costreport.v1beta1.GetWorkloadTrafficDestinationsHistoryResponse.HistoryItem"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetWorkloadTrafficDestinationsHistoryResponse.HistoryItem":{"description":"Defines a traffic history item.","properties":{"egress":{"$ref":"#/components/schemas/costreport.v1beta1.TrafficCost"},"ingress":{"$ref":"#/components/schemas/costreport.v1beta1.TrafficCost"},"timestamp":{"description":"Timestamp of traffic history item.","format":"date-time","type":"string"}},"type":"object"},"costreport.v1beta1.GetWorkloadTrafficDestinationsResponse":{"description":"Defines the response for workload traffic destinations.","properties":{"destinations":{"description":"Workload traffic destinations.","items":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadDestination"},"type":"array"}},"type":"object"},"costreport.v1beta1.GetWorkloadsMetadataResponse":{"properties":{"workloads":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadMetadata"},"type":"array"}},"type":"object"},"costreport.v1beta1.GroupingConfig":{"properties":{"rules":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GroupingConfig.GroupByLabelValue"},"type":"array"}},"type":"object"},"costreport.v1beta1.GroupingConfig.GroupByLabelValue":{"properties":{"conditions":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.GroupingConfig.GroupByLabelValue.Condition"},"title":"Conditions which should be met in order for this rule to apply.\ne.g. in order to group by GitLab CI job name:\n{label: \"job_name\", conditions: [{operator: \"In\", label: \"component\", values: [\"gitlab-runner-job\"]}]}","type":"array"},"fixedName":{"description":"FixedName to be set as the workload name.","type":"string"},"label":{"description":"Value of this label will be used to override workload name.","type":"string"}},"type":"object"},"costreport.v1beta1.GroupingConfig.GroupByLabelValue.Condition":{"properties":{"label":{"description":"Label to be matched in order for this rule to work.","type":"string"},"operator":{"$ref":"#/components/schemas/costreport.v1beta1.GroupingConfig.GroupByLabelValue.Condition.Operator"},"values":{"items":{"type":"string"},"type":"array"}},"type":"object"},"costreport.v1beta1.GroupingConfig.GroupByLabelValue.Condition.Operator":{"default":"Unknown","enum":["Unknown","In","NotIn","Exists","DoesNotExist"],"title":"A set of operators which can be used in the label selector expressions","type":"string"},"costreport.v1beta1.ListAllocationGroupsResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.AllocationGroup"},"title":"Allocation groups","type":"array"}},"type":"object"},"costreport.v1beta1.NamespaceCostItem":{"description":"Defines a namespaces' cost for a given time.","properties":{"costOnDemand":{"description":"Average cost of the workload that is on on-demand instances for the given time period.","type":"string"},"costSpot":{"description":"Average cost of the workload that is on spot instances for the given time period.","type":"string"},"costSpotFallback":{"description":"Average cost of the workload that is on spot-fallback instances for the given time period.","type":"string"},"cpuCostOnDemand":{"description":"Average CPU cost of the workload that is on on-demand instances for the given time period.","type":"string"},"cpuCostSpot":{"description":"Average CPU cost of the workload that is on spot instances for the given time period.","type":"string"},"cpuCostSpotFallback":{"description":"Average CPU cost of the workload that is on spot-fallback instances for the given time period.","type":"string"},"cpuCountOnDemand":{"description":"Average number of CPUs of the workload that is on on-demand instances for the given time period.","type":"string"},"cpuCountSpot":{"description":"Average number of CPUs of the workload that is on spot instances for the given time period.","type":"string"},"cpuCountSpotFallback":{"description":"Average number of CPUs of the workload that is on spot-fallback instances for the given time period.","type":"string"},"gpuCostOnDemand":{"description":"Average GPU cost of the workload that is on on-demand instances for the given time period.","type":"string"},"gpuCostSpot":{"description":"Average GPU cost of the workload that is on spot instances for the given time period.","type":"string"},"gpuCostSpotFallback":{"description":"Average GPU cost of the workload that is on spot-fallback instances for the given time period.","type":"string"},"gpuCountOnDemand":{"description":"Average number of requested GPUs of the workload that is on on-demand instances for the given time period.","type":"string"},"gpuCountSpot":{"description":"Average number of requested GPUs of the workload that is on spot instances for the given time period.","type":"string"},"gpuCountSpotFallback":{"description":"Average number of requested GPUs of the workload that is on spot-fallback instances for the given time period.","type":"string"},"ramCostOnDemand":{"description":"Average RAM cost of the workload that is on on-demand instances for the given time period.","type":"string"},"ramCostSpot":{"description":"Average RAM cost of the workload that is on spot instances for the given time period.","type":"string"},"ramCostSpotFallback":{"description":"Average RAM cost of the workload that is on spot-fallback instances for the given time period.","type":"string"},"ramGibOnDemand":{"description":"Average requested RAM (GiB) of the workload that is on on-demand instances for the given time period.","type":"string"},"ramGibSpot":{"description":"Average requested RAM (GiB) of the workload that is on spot instances for the given time period.","type":"string"},"ramGibSpotFallback":{"description":"Average requested RAM (GiB) of the workload that is on spot_fallback instances for the given time period.","type":"string"},"timestamp":{"description":"Timestamp of entry creation.","format":"date-time","type":"string"}},"type":"object"},"costreport.v1beta1.NamespaceCostSummary":{"description":"Defines a namespace's cost summary over a selected period.","properties":{"avgCost":{"title":"Average cost = total_cost / number of entries in selected period","type":"string"},"avgCpuCost":{"title":"Avg X cost = total cost of X type of resource / number of entries in selected period","type":"string"},"avgGpuCost":{"type":"string"},"avgRamCost":{"type":"string"},"totalCost":{"title":"Total cost for the selected time period","type":"string"},"totalWorkloadsCount":{"description":"Number of all workloads in the namespace that appeared in the selected time range.","type":"string"}},"type":"object"},"costreport.v1beta1.NamespaceDataTransferItem":{"properties":{"egress":{"$ref":"#/components/schemas/costreport.v1beta1.NamespaceDataTransferItem.DataTransferCostItem"},"ingress":{"$ref":"#/components/schemas/costreport.v1beta1.NamespaceDataTransferItem.DataTransferCostItem"},"namespace":{"description":"Name of the namespace.","type":"string"},"totalBytes":{"title":"Total bytes","type":"string"},"totalCost":{"title":"Total cost","type":"string"},"workloadCount":{"title":"Workload count","type":"string"}},"type":"object"},"costreport.v1beta1.NamespaceDataTransferItem.DataTransferCostItem":{"properties":{"cloudApiBytes":{"type":"string"},"cloudApiCost":{"type":"string"},"interRegionBytes":{"type":"string"},"interRegionCost":{"type":"string"},"interZoneBytes":{"type":"string"},"interZoneCost":{"type":"string"},"internetBytes":{"type":"string"},"internetCost":{"type":"string"},"intraZoneBytes":{"type":"string"},"intraZoneCost":{"type":"string"}},"type":"object"},"costreport.v1beta1.NamespaceFilter":{"properties":{"namespace":{"description":"Filter items by namespace. Acts like a case-insensitive substring search.","type":"string"}},"type":"object"},"costreport.v1beta1.NamespaceFilters":{"properties":{"clusterIds":{"description":"Cluster IDs for filtering. Leave empty for the full list.","items":{"type":"string"},"type":"array"}},"required":["clusterIds"],"type":"object"},"costreport.v1beta1.NoDataReason":{"default":"Unknown","description":"Defines a list of possible reasons why report data is missing.","enum":["Unknown","NoMetricsServer","AgentOutdated","ClusterIsBlocked"],"type":"string"},"costreport.v1beta1.Node":{"properties":{"az":{"title":"Availability zone name","type":"string"},"cpuCores":{"format":"int32","type":"integer"},"cpuPrice":{"title":"$/CPU hour","type":"string"},"fallback":{"type":"boolean"},"gpu":{"format":"int32","type":"integer"},"infra":{"title":"Whether it is an infra node","type":"boolean"},"instanceType":{"type":"string"},"master":{"title":"Whether it is a master node","type":"boolean"},"nodeName":{"type":"string"},"os":{"title":"Operating system - the field is set only when the calculations distinguish between OS (e.g. Windows vs Linux in Azure)","type":"string"},"price":{"title":"Total node price in $","type":"string"},"ramBytes":{"format":"double","type":"number"},"ramPrice":{"title":"$/GiB hour","type":"string"},"spot":{"type":"boolean"}},"type":"object"},"costreport.v1beta1.NodeLabelFilters":{"properties":{"clusterIds":{"description":"Cluster IDs for filtering. Leave empty for the full list.","items":{"type":"string"},"type":"array"},"search":{"description":"Filter node label names by substring.","type":"string"}},"type":"object"},"costreport.v1beta1.RecommendationDetails":{"properties":{"armSavingsConfiguration":{"$ref":"#/components/schemas/costreport.v1beta1.ConfigurationAfter"},"configurationAfter":{"$ref":"#/components/schemas/costreport.v1beta1.ConfigurationAfter"},"replicatedWorkloads":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.ReplicatedWorkload"},"type":"array"}},"type":"object"},"costreport.v1beta1.ReplicatedWorkload":{"properties":{"currentNodeType":{"type":"string"},"currentNodes":{"items":{"type":"string"},"title":"Node name","type":"array"},"ownerType":{"description":"Deprecated: use workload_type instead.","type":"string"},"recommendedNodeType":{"type":"string"},"replicas":{"items":{"type":"string"},"type":"array"},"workloadName":{"type":"string"},"workloadNamespace":{"type":"string"},"workloadType":{"type":"string"}},"type":"object"},"costreport.v1beta1.Resources":{"description":"Defines the resources.","properties":{"cpu":{"description":"Defines the cpu resource.","type":"string"},"memoryGib":{"description":"Defines the memory resource in GiB.","type":"string"}},"required":["cpu","memoryGib"],"type":"object"},"costreport.v1beta1.RightsizingRecommendation":{"description":"RightsizingRecommendation defines a rightsizing recommendation.","properties":{"summary":{"$ref":"#/components/schemas/costreport.v1beta1.RightsizingRecommendation.Summary"}},"type":"object"},"costreport.v1beta1.RightsizingRecommendation.Summary":{"description":"Summary defines a summary of the recommendation.","properties":{"cpuCoresDifference":{"description":"Difference of cpu cores between current workload requests and recommended configuration.","format":"double","type":"number"},"cpuEfficiency":{"title":"Defines cpu efficiency ratio of all the cluster's workloads which have requests defined","type":"string"},"efficiency":{"type":"string"},"memoryEfficiency":{"title":"Defines memory efficiency ratio of all the cluster's workloads which have requests defined","type":"string"},"ramBytesDifference":{"description":"Difference of ram bytes between current workload requests and recommended configuration.","format":"double","type":"number"}},"required":["cpuEfficiency","efficiency","memoryEfficiency"],"type":"object"},"costreport.v1beta1.Saving":{"description":"Saving defines price before and after applying a savings recommendation.","properties":{"priceAfter":{"description":"Price after applying this configuration.","type":"string"},"priceBefore":{"description":"Price before applying this configuration.","type":"string"}},"type":"object"},"costreport.v1beta1.SavingsCurrentConfiguration":{"description":"SavingsCurrentConfiguration defines current cluster configuration.","properties":{"nodes":{"description":"A single cluster node.","items":{"$ref":"#/components/schemas/costreport.v1beta1.Node"},"type":"array"},"totalPrice":{"$ref":"#/components/schemas/costreport.v1beta1.SavingsPrice"},"workloads":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.ReplicatedWorkload"},"type":"array"}},"type":"object"},"costreport.v1beta1.SavingsPrice":{"description":"SavingsPrice defines pricing details.","properties":{"hourly":{"description":"Total hourly price of the node configuration in $ currency.","type":"string"},"monthly":{"description":"Total monthly price of the node configuration in $ currency.","type":"string"}},"type":"object"},"costreport.v1beta1.SavingsRecommendation":{"description":"Savings recommendation: includes hourly \u0026 monthly prices as well as percent saved.","properties":{"armSavingsMonthly":{"$ref":"#/components/schemas/costreport.v1beta1.Saving"},"details":{"$ref":"#/components/schemas/costreport.v1beta1.RecommendationDetails"},"hourly":{"$ref":"#/components/schemas/costreport.v1beta1.Saving"},"monthly":{"$ref":"#/components/schemas/costreport.v1beta1.Saving"},"savingsPercentage":{"description":"Available savings by applying this configuration.","type":"string"}},"type":"object"},"costreport.v1beta1.TrafficCost":{"properties":{"interZoneBytes":{"description":"Bytes transferred between zones.","type":"string"},"interZoneCost":{"description":"Cost of bytes transferred between zones.","type":"string"}},"title":"Defines a cost of inter zone traffic","type":"object"},"costreport.v1beta1.UpsertGroupingConfigResponse":{"properties":{"clusterId":{"description":"ID of the cluster.","type":"string"},"config":{"$ref":"#/components/schemas/costreport.v1beta1.GroupingConfig"}},"type":"object"},"costreport.v1beta1.WorkloadCostItem":{"description":"Defines a workloads cost for a given time.","properties":{"costOnDemand":{"description":"Average cost of the workload that is on on-demand instances for the given time period.","type":"string"},"costSpot":{"description":"Average cost of the workload that is on spot instances for the given time period.","type":"string"},"costSpotFallback":{"description":"Average cost of the workload that is on spot-fallback instances for the given time period.","type":"string"},"cpuCostOnDemand":{"description":"Average CPU cost of the workload that is on on-demand instances for the given time period.","type":"string"},"cpuCostSpot":{"description":"Average CPU cost of the workload that is on spot instances for the given time period.","type":"string"},"cpuCostSpotFallback":{"description":"Average CPU cost of the workload that is on spot-fallback instances for the given time period.","type":"string"},"cpuCountOnDemand":{"description":"Average number of CPUs of the workload that is on on-demand instances for the given time period.","type":"string"},"cpuCountSpot":{"description":"Average number of CPUs of the workload that is on spot instances for the given time period.","type":"string"},"cpuCountSpotFallback":{"description":"Average number of CPUs of the workload that is on spot-fallback instances for the given time period.","type":"string"},"gpuCostOnDemand":{"description":"Average GPU cost of the workload that is on on-demand instances for the given time period.","type":"string"},"gpuCostSpot":{"description":"Average GPU cost of the workload that is on spot instances for the given time period.","type":"string"},"gpuCostSpotFallback":{"description":"Average GPU cost of the workload that is on spot-fallback instances for the given time period.","type":"string"},"gpuCountOnDemand":{"description":"Average number of requested GPUs of the workload that is on on-demand instances for the given time period.","type":"string"},"gpuCountSpot":{"description":"Average number of requested GPUs of the workload that is on spot instances for the given time period.","type":"string"},"gpuCountSpotFallback":{"description":"Average number of requested GPUs of the workload that is on spot-fallback instances for the given time period.","type":"string"},"podCountOnDemand":{"description":"Average amount of pods for the workload that are on on-demand instances for the given time period.","type":"string"},"podCountSpot":{"description":"Average amount of pods for the workload that are on spot instances for the given time period.","type":"string"},"podCountSpotFallback":{"description":"Average amount of pods for the workload that are on spot-fallback instances for the given time period.","type":"string"},"ramCostOnDemand":{"description":"Average RAM cost of the workload that is on on-demand instances for the given time period.","type":"string"},"ramCostSpot":{"description":"Average RAM cost of the workload that is on spot instances for the given time period.","type":"string"},"ramCostSpotFallback":{"description":"Average RAM cost of the workload that is on spot-fallback instances for the given time period.","type":"string"},"ramGibOnDemand":{"description":"Average requested RAM (GiB) of the workload that is on on-demand instances for the given time period.","type":"string"},"ramGibSpot":{"description":"Average requested RAM (GiB) of the workload that is on spot instances for the given time period.","type":"string"},"ramGibSpotFallback":{"description":"Average requested RAM (GiB) of the workload that is on spot_fallback instances for the given time period.","type":"string"},"timestamp":{"description":"Timestamp of entry creation.","format":"date-time","type":"string"},"uptimeMinutesOnDemand":{"description":"Number of minutes the workload was running on on-demand instances for the given time period.","type":"string"},"uptimeMinutesSpot":{"description":"Number of minutes the workload was running on spot instances for the given time period.","type":"string"},"uptimeMinutesSpotFallback":{"description":"Number of minutes the workload was running on spot-fallback instances for the given time period.","type":"string"}},"type":"object"},"costreport.v1beta1.WorkloadDataTransferCostItem":{"description":"Defines a workloads datatransfer cost for a given time.","properties":{"cloudApiBytes":{"type":"string"},"cloudApiCost":{"type":"string"},"interRegionBytes":{"type":"string"},"interRegionCost":{"type":"string"},"interZoneBytes":{"type":"string"},"interZoneCost":{"type":"string"},"internetBytes":{"type":"string"},"internetCost":{"type":"string"},"intraZoneBytes":{"type":"string"},"intraZoneCost":{"type":"string"},"timestamp":{"description":"Timestamp of datatransfer item aggregation.","format":"date-time","type":"string"}},"type":"object"},"costreport.v1beta1.WorkloadDataTransferItem":{"description":"Defines a workload datatransfer details item.","properties":{"egressMetrics":{"description":"Egress datatransfer cost metrics of the workload.","items":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadDataTransferCostItem"},"type":"array"},"ingressMetrics":{"description":"Ingress datatransfer cost metrics of the workload.","items":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadDataTransferCostItem"},"type":"array"},"namespace":{"description":"Namespace the workload is in.","type":"string"},"totalBytes":{"title":"Total bytes","type":"string"},"totalCost":{"title":"Total datatransfer cost","type":"string"},"workloadName":{"description":"Name of the workload.","type":"string"},"workloadType":{"description":"Type of the workload.","type":"string"}},"type":"object"},"costreport.v1beta1.WorkloadDestination":{"description":"Defines a traffic destination workload with costs.","properties":{"egress":{"$ref":"#/components/schemas/costreport.v1beta1.TrafficCost"},"ingress":{"$ref":"#/components/schemas/costreport.v1beta1.TrafficCost"},"namespace":{"description":"Namespace the workload is in.","type":"string"},"workloadName":{"description":"Name of the workload.","type":"string"},"workloadType":{"description":"Type of the workload.","type":"string"}},"type":"object"},"costreport.v1beta1.WorkloadEfficiency":{"description":"Defines the workload efficiency at a particular time.","properties":{"costImpact":{"$ref":"#/components/schemas/costreport.v1beta1.CostImpact"},"cpuEfficiency":{"description":"Defines cpu efficiency ratio of the workload. It is the average of all containers.","type":"string"},"efficiency":{"description":"Defines the efficiency ratio of the workload. It is the average of all containers.","type":"string"},"memoryEfficiency":{"description":"Defines memory efficiency ratio of the workload. It is the average of all containers.","type":"string"},"timestamp":{"description":"Defines the time when the efficiency was calculated.","format":"date-time","type":"string"}},"required":["cpuEfficiency","efficiency","memoryEfficiency","timestamp"],"type":"object"},"costreport.v1beta1.WorkloadFilter":{"description":"Defines a filter for workload report.","properties":{"labels":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadFilter.LabelValue"},"type":"array"},"labelsOperator":{"$ref":"#/components/schemas/costreport.v1beta1.FilterOperator"},"namespaces":{"items":{"type":"string"},"type":"array"},"workloadNames":{"items":{"type":"string"},"type":"array"},"workloadTypes":{"items":{"type":"string"},"type":"array"}},"type":"object"},"costreport.v1beta1.WorkloadFilter.LabelValue":{"properties":{"label":{"description":"Label name.","type":"string"},"value":{"description":"Label Value.","type":"string"}},"type":"object"},"costreport.v1beta1.WorkloadFilters":{"properties":{"namespace":{"description":"Filter items by namespace.","type":"string"},"workloadName":{"description":"Filter items by workload name.","type":"string"},"workloadType":{"description":"Filter items by workload type.","type":"string"}},"type":"object"},"costreport.v1beta1.WorkloadLabel":{"properties":{"name":{"description":"Name of the label.","type":"string"},"value":{"description":"Value of the label.","type":"string"}},"type":"object"},"costreport.v1beta1.WorkloadLabelFilters":{"properties":{"clusterIds":{"description":"Cluster IDs for filtering. Leave empty for the full list.","items":{"type":"string"},"type":"array"},"labelNameContains":{"description":"Filter workload label names by substring.","type":"string"},"labelValueContains":{"description":"Filter workload label values by substring.","type":"string"},"workloadFilters":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadFilters"}},"type":"object"},"costreport.v1beta1.WorkloadMetadata":{"properties":{"clusterId":{"type":"string"},"labels":{"items":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadLabel"},"type":"array"},"namespace":{"type":"string"},"workloadName":{"type":"string"},"workloadType":{"type":"string"}},"type":"object"},"costreport.v1beta1.WorkloadReportItem":{"description":"Defines a workload.","properties":{"costMetrics":{"description":"Cost metrics of the workload.","items":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadCostItem"},"type":"array"},"labels":{"description":"Labels of the workload.","items":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadLabel"},"type":"array"},"namespace":{"description":"Namespace the workload is in.","type":"string"},"workloadName":{"description":"Name of the workload.","type":"string"},"workloadType":{"description":"Type of the workload.","type":"string"}},"type":"object"},"dedicatedinstance.v1beta1.DedicatedInstance":{"properties":{"instanceType":{"type":"string"},"name":{"type":"string"},"total":{"$ref":"#/components/schemas/dedicatedinstance.v1beta1.DedicatedInstanceConsumption"},"used":{"$ref":"#/components/schemas/dedicatedinstance.v1beta1.DedicatedInstanceConsumption"}},"type":"object"},"dedicatedinstance.v1beta1.DedicatedInstanceConsumption":{"properties":{"cpu":{"format":"int32","type":"integer"},"memory":{"format":"int32","type":"integer"},"ssd":{"format":"int32","type":"integer"}},"type":"object"},"dedicatedinstance.v1beta1.ListDedicatedInstancesResponse":{"properties":{"dedicatedInstances":{"items":{"$ref":"#/components/schemas/dedicatedinstance.v1beta1.DedicatedInstance"},"type":"array"}},"type":"object"},"externalcluster.v1.AKSClusterParams":{"description":"AKSClusterParams defines AKS-specific arguments.","properties":{"maxPodsPerNode":{"description":"Deprecated. This field is no longer updatable and node configuration equivalent should be used.","format":"int32","type":"integer"},"networkPlugin":{"description":"Network plugin in use by the cluster. Can be `kubenet` or `azure`.","type":"string"},"nodeResourceGroup":{"description":"Node resource group of the cluster.","type":"string"},"region":{"description":"Region of the cluster.","type":"string"},"subscriptionId":{"description":"Azure subscription ID where cluster runs.","type":"string"},"zoneNamePattern":{"description":"Zone name pattern in the cluster.","type":"string"}},"type":"object"},"externalcluster.v1.AddNodeResponse":{"description":"AddNodeResponse is the result of AddNodeRequest.","properties":{"nodeId":{"description":"The ID of the node.","type":"string"},"operationId":{"description":"Add node operation ID.","type":"string"}},"required":["nodeId","operationId"],"type":"object"},"externalcluster.v1.CloudEvent":{"description":"CloudEvent represents a remote event that happened in the cloud, e.g. \"node added\".","properties":{"eventType":{"description":"Event type.","type":"string"},"node":{"description":"Node provider ID, eg.: aws instance-id.","type":"string"},"nodeId":{"description":"Cast node ID.","nullable":true,"type":"string"},"nodeState":{"description":"Node state.","type":"string"}},"type":"object"},"externalcluster.v1.Cluster":{"description":"Cluster represents external kubernetes cluster.","properties":{"agentSnapshotReceivedAt":{"description":"The date agent snapshot was last received.","format":"date-time","type":"string"},"agentStatus":{"description":"Agent status.","type":"string"},"aks":{"$ref":"#/components/schemas/externalcluster.v1.AKSClusterParams"},"allRegionZones":{"description":"All available zones in cluster's region.","items":{"$ref":"#/components/schemas/externalcluster.v1.Zone"},"type":"array"},"clusterNameId":{"description":"User friendly unique cluster identifier.","type":"string"},"createdAt":{"description":"The date when cluster was registered.","format":"date-time","type":"string"},"credentialsId":{"description":"The cluster's credentials ID.","type":"string"},"deletedAt":{"description":"The date when cluster was deleted.","format":"date-time","nullable":true,"type":"string"},"eks":{"$ref":"#/components/schemas/externalcluster.v1.EKSClusterParams"},"firstOperationAt":{"description":"Timestamp when the first operation was performed for a given cluster, which marks when cluster optimisation started by CAST AI.","format":"date-time","type":"string"},"gke":{"$ref":"#/components/schemas/externalcluster.v1.GKEClusterParams"},"id":{"description":"The cluster's ID.","type":"string"},"kops":{"$ref":"#/components/schemas/externalcluster.v1.KOPSClusterParams"},"kubernetesVersion":{"nullable":true,"title":"Kubernetes version installed on the control plane","type":"string"},"managedBy":{"description":"Method used to onboard the cluster, eg.: console, terraform.","type":"string"},"name":{"description":"The name of the external cluster.","type":"string"},"openshift":{"$ref":"#/components/schemas/externalcluster.v1.OpenshiftClusterParams"},"organizationId":{"description":"The cluster's organization ID.","type":"string"},"providerNamespaceId":{"description":"Cluster location where cloud provider organizes cloud resources, eg.: GCP project ID, AWS account ID.","type":"string"},"providerType":{"description":"Cluster cloud provider type.","type":"string"},"reconcileError":{"description":"Shows last reconcile error if any.","nullable":true,"type":"string"},"reconcileInfo":{"$ref":"#/components/schemas/externalcluster.v1.Cluster.ReconcileInfo"},"reconciledAt":{"description":"Timestamp when the last reconcile was performed.","format":"date-time","nullable":true,"type":"string"},"region":{"$ref":"#/components/schemas/externalcluster.v1.Region"},"sshPublicKey":{"description":"Deprecated. Node configuration equivalent should be used.","nullable":true,"type":"string"},"status":{"description":"Current status of the cluster.","type":"string"},"subnets":{"description":"Cluster subnets.","items":{"$ref":"#/components/schemas/externalcluster.v1.Subnet"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"title":"Cluster tags","type":"object"},"zones":{"description":"Cluster zones.","items":{"$ref":"#/components/schemas/externalcluster.v1.Zone"},"type":"array"}},"type":"object"},"externalcluster.v1.Cluster.ReconcileInfo":{"properties":{"error":{"description":"Shows last reconcile error if any.","nullable":true,"type":"string"},"errorCount":{"description":"Number of times the reconcile was retried.","format":"int32","type":"integer"},"mode":{"title":"Reconcile mode, defines if the cluster has reconciling enabled, disabled or paused","type":"string"},"reconciledAt":{"description":"Timestamp when the last reconcile was performed.","format":"date-time","nullable":true,"type":"string"},"retryAt":{"description":"Timestamp when the reconcile was retried.","format":"date-time","nullable":true,"type":"string"},"startedAt":{"description":"Timestamp when the reconcile was started.","format":"date-time","nullable":true,"type":"string"},"status":{"description":"Reconcile status.","nullable":true,"type":"string"}},"title":"Reconcile information for Phase 2 clusters","type":"object"},"externalcluster.v1.ClusterUpdate":{"properties":{"credentials":{"description":"JSON encoded cluster credentials string.","type":"string"},"eks":{"$ref":"#/components/schemas/externalcluster.v1.UpdateEKSClusterParams"}},"type":"object"},"externalcluster.v1.CreateAssumeRolePrincipalResponse":{"properties":{"arn":{"type":"string"}},"type":"object"},"externalcluster.v1.CreateClusterTokenResponse":{"properties":{"token":{"type":"string"}},"type":"object"},"externalcluster.v1.DeleteAssumeRolePrincipalResponse":{"type":"object"},"externalcluster.v1.DeleteNodeResponse":{"description":"DeleteNodeResponse is the result of DeleteNodeRequest.","properties":{"operationId":{"description":"Node delete operation ID.","type":"string"}},"type":"object"},"externalcluster.v1.DisconnectConfig":{"properties":{"deleteProvisionedNodes":{"description":"Whether CAST provisioned nodes should be deleted.","type":"boolean"},"keepKubernetesResources":{"description":"Whether CAST Kubernetes resources should be kept.","type":"boolean"}},"type":"object"},"externalcluster.v1.DrainConfig":{"properties":{"force":{"description":"If set to true, pods will be forcefully deleted after drain timeout.","type":"boolean"},"timeoutSeconds":{"description":"Node drain timeout in seconds. Defaults to 600s if not set.","format":"int32","type":"integer"}},"type":"object"},"externalcluster.v1.DrainNodeResponse":{"description":"DrainNodeResponse is the result of DrainNodeRequest.","properties":{"operationId":{"description":"Drain node operation ID.","type":"string"}},"required":["operationId"],"type":"object"},"externalcluster.v1.EKSClusterParams":{"description":"EKSClusterParams defines EKS-specific arguments.","properties":{"accountId":{"description":"AWS Account ID where cluster runs.","type":"string"},"assumeRoleArn":{"title":"ARN of role that will be assumed to perform AWS actions","type":"string"},"clusterName":{"description":"Name of the cluster.","type":"string"},"dnsClusterIp":{"title":"Deprecated. IP address to use for DNS queries within the cluster. Defaults to 10.100.0.10 or 172.20.0.10 based on the IP address of the primary interface","type":"string"},"instanceProfileArn":{"description":"Deprecated. Output only. Cluster's instance profile ARN used for CAST provisioned nodes.","readOnly":true,"type":"string"},"region":{"description":"Region of the cluster.","type":"string"},"securityGroups":{"description":"Deprecated. Output only. Cluster's security groups configuration.","items":{"type":"string"},"readOnly":true,"type":"array"},"subnets":{"description":"Deprecated. Output only. Cluster's subnets configuration.","items":{"type":"string"},"readOnly":true,"type":"array"},"tags":{"additionalProperties":{"type":"string"},"description":"Deprecated. Output only. CAST provisioned nodes tags configuration.","readOnly":true,"type":"object"}},"type":"object"},"externalcluster.v1.GKEClusterParams":{"description":"GKEClusterParams defines GKE-specific arguments.","properties":{"clusterName":{"description":"Name of the cluster.","type":"string"},"location":{"description":"Location of the cluster.","type":"string"},"maxPodsPerNode":{"description":"Max pods per node. Default is 110.","format":"int32","type":"integer"},"projectId":{"description":"GCP project ID where cluster runs.","type":"string"},"region":{"description":"Region of the cluster.","type":"string"}},"type":"object"},"externalcluster.v1.GPUConfig":{"description":"GPUConfig describes instance GPU configuration.\n\nRequired while provisioning GCP N1 instance types with GPU.\nEg.: n1-standard-2 with 8 x NVIDIA Tesla K80","properties":{"count":{"description":"Number of GPUs.","format":"int32","type":"integer"},"type":{"description":"GPU type.","type":"string"}},"type":"object"},"externalcluster.v1.GPUDevice":{"properties":{"count":{"format":"int32","title":"Count amount of graphic cards","type":"integer"},"manufacturer":{"title":"Manufacturer nvidia/amd","type":"string"},"memoryMib":{"format":"int32","title":"MemoryMiB single GPU memory in MiB","type":"integer"}},"type":"object"},"externalcluster.v1.GPUInfo":{"properties":{"gpuDevices":{"items":{"$ref":"#/components/schemas/externalcluster.v1.GPUDevice"},"type":"array"}},"type":"object"},"externalcluster.v1.GetAssumeRolePrincipalResponse":{"properties":{"arn":{"type":"string"}},"type":"object"},"externalcluster.v1.GetAssumeRoleUserResponse":{"properties":{"arn":{"type":"string"}},"type":"object"},"externalcluster.v1.GetCleanupScriptResponse":{"description":"GetCleanupScriptResponse is the result of GetCleanupScriptRequest.","properties":{"script":{"type":"string"}},"type":"object"},"externalcluster.v1.GetCredentialsScriptResponse":{"description":"GetCredentialsScriptResponse is the result of GetCredentialsScriptRequest.","properties":{"script":{"type":"string"}},"type":"object"},"externalcluster.v1.HandleCloudEventResponse":{"description":"HandleCloudEventResponse is the result of HandleCloudEventRequest.","type":"object"},"externalcluster.v1.KOPSClusterParams":{"description":"KOPSClusterParams defines KOPS-specific arguments.","properties":{"cloud":{"description":"Cloud provider of the cluster.","type":"string"},"clusterName":{"description":"Name of the cluster.","type":"string"},"region":{"description":"Region of the cluster.","type":"string"},"stateStore":{"description":"KOPS state store url.","type":"string"}},"type":"object"},"externalcluster.v1.ListClustersResponse":{"description":"ListClustersResponse is the result of ListClustersRequest.","properties":{"items":{"items":{"$ref":"#/components/schemas/externalcluster.v1.Cluster"},"type":"array"}},"type":"object"},"externalcluster.v1.ListNodesResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/externalcluster.v1.Node"},"type":"array"},"nextCursor":{"type":"string"}},"type":"object"},"externalcluster.v1.Node":{"description":"Node represents a single VM that run as Kubernetes master or worker.","properties":{"addedBy":{"type":"string"},"annotations":{"additionalProperties":{"type":"string"},"type":"object"},"cloud":{"type":"string"},"createdAt":{"description":"created_at represents timestamp of when node was created in cloud infrastructure.","format":"date-time","type":"string"},"gpuInfo":{"$ref":"#/components/schemas/externalcluster.v1.GPUInfo"},"id":{"type":"string"},"instanceArchitecture":{"description":"Deprecated. Use node_info architecture field.","nullable":true,"type":"string"},"instanceId":{"nullable":true,"readOnly":true,"title":"Output only. Cloud provider instance id. The value depends on cloud provider.\nAWS - i-1a1aa11111aaaa1aa\nGCP - projects/{project}/zones/{zone}/instances/{name}\nAzure - /subscriptions/{id}/resourceGroups/{name}/providers/Microsoft.Compute/virtualMachineScaleSets/{name}/virtualMachines/0","type":"string"},"instanceLabels":{"additionalProperties":{"type":"string"},"description":"Output only. Cloud provider instance tags/labels.","readOnly":true,"type":"object"},"instanceName":{"description":"Output only. Cloud provider instance name.","nullable":true,"readOnly":true,"type":"string"},"instancePrice":{"nullable":true,"type":"string"},"instanceType":{"type":"string"},"joinedAt":{"description":"joined_at represents timestamp of when node has joined kubernetes cluster.","format":"date-time","type":"string"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"name":{"type":"string"},"network":{"$ref":"#/components/schemas/externalcluster.v1.NodeNetwork"},"nodeConfigurationId":{"nullable":true,"type":"string"},"nodeInfo":{"$ref":"#/components/schemas/externalcluster.v1.NodeInfo"},"providerId":{"nullable":true,"title":"provider_id is id from node spec node.Spec.ProviderID, eg.:\naws - aws:///us-east-1a/i-0eea4991c66785226\ngcp - gce://{project}/{zone}/{name}\nazure - azure:///subscriptions/{subID}/resourceGroups/{rgName}/providers/Microsoft.Compute/virtualMachineScaleSets/{scaleSetName}/virtualMachines/0","type":"string"},"resources":{"$ref":"#/components/schemas/externalcluster.v1.Resources"},"role":{"$ref":"#/components/schemas/externalcluster.v1.NodeType"},"spotConfig":{"$ref":"#/components/schemas/externalcluster.v1.NodeSpotConfig"},"state":{"$ref":"#/components/schemas/externalcluster.v1.NodeState"},"subnetId":{"nullable":true,"type":"string"},"taints":{"items":{"$ref":"#/components/schemas/externalcluster.v1.Taint"},"type":"array"},"unschedulable":{"type":"boolean"},"zone":{"type":"string"}},"type":"object"},"externalcluster.v1.NodeAffinity":{"description":"NodeAffinity provides control over the assignment of individual nodes to dedicated host instances.","properties":{"affinity":{"description":"THe affinity rules required for choosing the group.","items":{"$ref":"#/components/schemas/k8s_selector.v1.KubernetesNodeAffinity"},"type":"array"},"dedicatedGroup":{"description":"The name of the dedicated group.","nullable":true,"type":"string"}},"type":"object"},"externalcluster.v1.NodeConfig":{"properties":{"configurationId":{"description":"ID reference of Node configuration (template) to be used for node creation. Supersedes Configuration Name.","nullable":true,"type":"string"},"configurationName":{"description":"Name reference of Node configuration (template)to be used for node creation.\nSuperseded if Configuration ID reference is provided.\nRequest will fail if several configurations with same name exists for a given cluster.","nullable":true,"type":"string"},"gpuConfig":{"$ref":"#/components/schemas/externalcluster.v1.GPUConfig"},"instanceType":{"description":"Instance type of the node.","type":"string"},"kubernetesLabels":{"additionalProperties":{"type":"string"},"description":"Node Kubernetes labels.","type":"object"},"kubernetesTaints":{"description":"Node Kubernetes taints.","items":{"$ref":"#/components/schemas/externalcluster.v1.Taint"},"type":"array"},"nodeAffinity":{"$ref":"#/components/schemas/externalcluster.v1.NodeAffinity"},"spotConfig":{"$ref":"#/components/schemas/externalcluster.v1.NodeSpotConfig"},"subnetId":{"description":"Node subnet ID.","nullable":true,"type":"string"},"volume":{"$ref":"#/components/schemas/externalcluster.v1.NodeVolume"},"zone":{"description":"Zone of the node.","nullable":true,"type":"string"}},"required":["instanceType"],"type":"object"},"externalcluster.v1.NodeInfo":{"properties":{"architecture":{"type":"string"},"containerRuntimeVersion":{"type":"string"},"kernelVersion":{"type":"string"},"kubeProxyVersion":{"type":"string"},"kubeletVersion":{"type":"string"},"operatingSystem":{"type":"string"},"osImage":{"type":"string"}},"title":"NodeInfo defines the full information about the node returned by kubectl","type":"object"},"externalcluster.v1.NodeNetwork":{"description":"NodeNetwork represents node network.","properties":{"privateIp":{"type":"string"},"publicIp":{"type":"string"}},"type":"object"},"externalcluster.v1.NodeSpotConfig":{"description":"NodeSpotConfig defines if node should be created as spot instance, and params for creation.","properties":{"isSpot":{"description":"Whether node should be created as spot instance.","type":"boolean"},"price":{"description":"Spot instance price. Applicable only for AWS nodes.","type":"string"}},"type":"object"},"externalcluster.v1.NodeState":{"description":"NodeState contains feedback information about progress on the node provisioning.","properties":{"phase":{"type":"string"}},"type":"object"},"externalcluster.v1.NodeType":{"default":"NODE_TYPE_INVALID","description":"NodeType defines the role of the VM when joining the Kubernetes cluster. Default value is not allowed.","enum":["NODE_TYPE_INVALID","master","NODE_TYPE_MASTER","worker","NODE_TYPE_WORKER"],"type":"string"},"externalcluster.v1.NodeVolume":{"description":"NodeVolume defines node's local root volume configuration.","properties":{"raidConfig":{"$ref":"#/components/schemas/externalcluster.v1.RaidConfig"},"size":{"description":"Volume size in GiB.","format":"int32","type":"integer"}},"type":"object"},"externalcluster.v1.OpenshiftClusterParams":{"description":"OpenShiftClusterParams defines OpenShift-specific arguments.","properties":{"cloud":{"description":"Cloud provider of the cluster.","type":"string"},"clusterName":{"description":"Name of the cluster.","type":"string"},"internalId":{"title":"The OpenShift ClusterID","type":"string"},"region":{"description":"Region of the cluster.","type":"string"}},"type":"object"},"externalcluster.v1.RaidConfig":{"description":"RaidConfig allow You have two or more devices, of approximately the same size, and you want to combine their storage capacity\nand also combine their performance by accessing them in parallel.","properties":{"chunkSize":{"description":"Specify the RAID0 chunk size in kilobytes, this parameter affects the read/write in the disk array and must be tailored\nfor the type of data written by the workloads in the node. If not provided it will default to 64KB.","format":"int32","nullable":true,"type":"integer"}},"type":"object"},"externalcluster.v1.ReconcileClusterResponse":{"description":"ReconcileClusterResponse is the result of ReconcileClusterRequest.","type":"object"},"externalcluster.v1.Region":{"description":"Region represents cluster region.","properties":{"displayName":{"description":"Display name of the region.","type":"string"},"name":{"description":"Name of the region.","type":"string"}},"type":"object"},"externalcluster.v1.RegisterClusterRequest":{"description":"RegisterClusterRequest registers cluster.","properties":{"aks":{"$ref":"#/components/schemas/externalcluster.v1.AKSClusterParams"},"eks":{"$ref":"#/components/schemas/externalcluster.v1.EKSClusterParams"},"gke":{"$ref":"#/components/schemas/externalcluster.v1.GKEClusterParams"},"id":{"description":"The ID of the cluster.","type":"string"},"kops":{"$ref":"#/components/schemas/externalcluster.v1.KOPSClusterParams"},"name":{"description":"The name of the cluster.","type":"string"},"openshift":{"$ref":"#/components/schemas/externalcluster.v1.OpenshiftClusterParams"},"organizationId":{"description":"Organization of the cluster.","type":"string"}},"required":["name"],"type":"object"},"externalcluster.v1.Resources":{"properties":{"bandwidthCapacityMbps":{"format":"int32","type":"integer"},"cpuAllocatableMilli":{"format":"int32","type":"integer"},"cpuCapacityMilli":{"format":"int32","type":"integer"},"cpuRequestsMilli":{"format":"int32","type":"integer"},"memAllocatableMib":{"format":"int32","type":"integer"},"memCapacityMib":{"format":"int32","type":"integer"},"memRequestsMib":{"format":"int32","type":"integer"}},"title":"Resources represents kubernetes node","type":"object"},"externalcluster.v1.Subnet":{"description":"Subnet represents cluster subnet.","properties":{"cidr":{"description":"Cidr block of the subnet.","type":"string"},"id":{"description":"The ID of the subnet.","type":"string"},"name":{"description":"Deprecated. Subnet name is not filled and should not be used.","type":"string"},"public":{"description":"Public defines if subnet is publicly routable.\nOptional. Populated for EKS provider only.","nullable":true,"type":"boolean"},"zoneName":{"description":"Subnet's zone name.","type":"string"}},"type":"object"},"externalcluster.v1.Taint":{"description":"Taint defines node taint in kubernetes cluster.","properties":{"effect":{"type":"string"},"key":{"type":"string"},"value":{"type":"string"}},"required":["effect","key","value"],"type":"object"},"externalcluster.v1.UpdateClusterTagsResponse":{"description":"UpdateClusterTagsResponse result of cluster tags update.","type":"object"},"externalcluster.v1.UpdateEKSClusterParams":{"description":"UpdateEKSClusterParams defines updatable EKS cluster configuration.","properties":{"assumeRoleArn":{"type":"string"}},"type":"object"},"externalcluster.v1.Zone":{"description":"Cluster zone.","properties":{"id":{"description":"ID of the zone.","type":"string"},"name":{"description":"Zone name.","type":"string"}},"type":"object"},"insights.v1.AgentSyncStateFilter":{"properties":{"imagesIds":{"items":{"type":"string"},"type":"array"}},"type":"object"},"insights.v1.AgentSyncStateImages":{"properties":{"fullResourcesResyncRequired":{"type":"boolean"},"scannedImages":{"items":{"$ref":"#/components/schemas/insights.v1.ScannedImage"},"type":"array"}},"type":"object"},"insights.v1.AttackPath":{"properties":{"environment":{"$ref":"#/components/schemas/insights.v1.AttackPathEnvironment"},"id":{"description":"Attack path uuid.","type":"string"},"name":{"description":"Attack path name, eg. Internet exposed admin-ui service with high severity vulnerabilities.","type":"string"},"riskFactors":{"description":"Risk factors involved in attack path, eg. internet_exposed, vulnerabilities, sensitive_data.","items":{"type":"string"},"type":"array"},"severityLevel":{"title":"Severity level, eg. critical, high","type":"string"},"stats":{"$ref":"#/components/schemas/insights.v1.AttackPathStats"},"target":{"$ref":"#/components/schemas/insights.v1.AttackPathTarget"}},"type":"object"},"insights.v1.AttackPathEnvironment":{"properties":{"clusterId":{"type":"string"}},"type":"object"},"insights.v1.AttackPathGraph":{"properties":{"edges":{"items":{"$ref":"#/components/schemas/insights.v1.AttackPathGraphEdge"},"type":"array"},"vertices":{"items":{"$ref":"#/components/schemas/insights.v1.AttackPathGraphVertex"},"type":"array"}},"type":"object"},"insights.v1.AttackPathGraphEdge":{"properties":{"source":{"type":"string"},"target":{"type":"string"}},"type":"object"},"insights.v1.AttackPathGraphVertex":{"properties":{"clusterResource":{"$ref":"#/components/schemas/insights.v1.AttackPathGraphVertex.ClusterResourceMeta"},"id":{"description":"Graph vertex id which is unique in single graph context.","type":"string"},"image":{"$ref":"#/components/schemas/insights.v1.AttackPathGraphVertex.ImageMeta"},"internet":{"$ref":"#/components/schemas/insights.v1.AttackPathGraphVertex.InternetMeta"},"name":{"title":"Name of the vertex","type":"string"},"type":{"description":"Type, eg. application, ingress, service, image.","type":"string"}},"type":"object"},"insights.v1.AttackPathGraphVertex.ClusterResourceMeta":{"properties":{"affectedIngressRules":{"description":"Affected ingress rules.","items":{"$ref":"#/components/schemas/insights.v1.AttackPathGraphVertex.IngressRule"},"type":"array"},"kind":{"description":"Kubernetes resource kind, eg. Deployment, Service, DaemonSet.","type":"string"},"name":{"description":"Kubernetes resource name.","type":"string"},"namespace":{"description":"Kubernetes namespace.","type":"string"}},"type":"object"},"insights.v1.AttackPathGraphVertex.ImageMeta":{"properties":{"vulnCount":{"format":"int32","type":"integer"}},"type":"object"},"insights.v1.AttackPathGraphVertex.IngressRule":{"properties":{"host":{"description":"Host that this rule applies to, or \"*\" for any host.","type":"string"},"paths":{"description":"Paths that are routed to the specified service.","items":{"type":"string"},"type":"array"},"service":{"description":"The service that this rule routes to.","type":"string"}},"type":"object"},"insights.v1.AttackPathGraphVertex.InternetMeta":{"properties":{"publicAddresses":{"items":{"type":"string"},"type":"array"}},"type":"object"},"insights.v1.AttackPathStats":{"properties":{"affectedResourcesCount":{"format":"int32","type":"integer"}},"type":"object"},"insights.v1.AttackPathTarget":{"properties":{"kind":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"insights.v1.BaseImage":{"properties":{"digest":{"type":"string"},"sharedLayers":{"format":"int32","type":"integer"},"tag":{"$ref":"#/components/schemas/insights.v1.Tag"}},"type":"object"},"insights.v1.BestPracticesStandard":{"default":"cast","description":"Standard in which check should be returned.\n\n - cast: default standard\n - cisAks12: cis aks 12\n - cisEks12: cis eks 12\n - cisGke13: cis gke 13\n - cisAks13: cis aks 13\n - cisEks13: cis eks 13\n - cisGke14: cis gke 14\n - cisAks14: cis aks 14","enum":["cast","cisAks12","cisEks12","cisGke13","cisAks13","cisEks13","cisGke14","cisAks14"],"type":"string"},"insights.v1.CVE":{"properties":{"description":{"type":"string"},"link":{"type":"string"},"name":{"type":"string"},"score":{"format":"float","type":"number"}},"type":"object"},"insights.v1.CheckClusterResource":{"properties":{"resource":{"$ref":"#/components/schemas/insights.v1.ClusterResource"},"status":{"$ref":"#/components/schemas/insights.v1.CheckClusterResourceStatus"}},"type":"object"},"insights.v1.CheckClusterResourceStatus":{"default":"resource_affected","description":"- resource_affected: Resource is affected. It fails this check.\n - resource_excepted: Resource is excepted. It failed this check, but there is a matching exception.\n - resource_unaffected: Resource is unaffected. It passes this check.","enum":["resource_affected","resource_excepted","resource_unaffected"],"title":"State of a cluster resource in relation to a specific check","type":"string"},"insights.v1.CheckEnforcement":{"properties":{"clusterId":{"type":"string"},"enforcementId":{"type":"string"}},"type":"object"},"insights.v1.CheckExceptionsGroup":{"properties":{"clusters":{"items":{"type":"string"},"type":"array"},"kinds":{"items":{"type":"string"},"type":"array"},"names":{"items":{"type":"string"},"type":"array"},"namespaces":{"items":{"type":"string"},"type":"array"}},"type":"object"},"insights.v1.CheckExceptionsPayload":{"properties":{"groups":{"items":{"$ref":"#/components/schemas/insights.v1.CheckExceptionsGroup"},"type":"array"},"version":{"format":"date-time","type":"string"}},"type":"object"},"insights.v1.Cluster":{"properties":{"name":{"type":"string"},"path":{"type":"string"}},"type":"object"},"insights.v1.ClusterResource":{"properties":{"apiVersion":{"title":"Object API version","type":"string"},"clusterId":{"title":"Cluster ID","type":"string"},"clusterName":{"title":"Name of owning cluster","type":"string"},"id":{"title":"Cluster Resource ID","type":"string"},"kind":{"title":"Object kind","type":"string"},"name":{"title":"Object name","type":"string"},"namespace":{"title":"Object namespace","type":"string"}},"type":"object"},"insights.v1.ComplianceDetails":{"properties":{"compliant":{"format":"int32","title":"Total number of compliant resources","type":"integer"},"critical":{"format":"int32","title":"Number of critical non-compliant checks","type":"integer"},"high":{"format":"int32","title":"Number of high non-compliant checks","type":"integer"},"low":{"format":"int32","title":"Number of low non-compliant checks","type":"integer"},"medium":{"format":"int32","title":"Number of medium non-compliant checks","type":"integer"},"nonCompliant":{"format":"int32","title":"Total number of non-compliant resources","type":"integer"}},"type":"object"},"insights.v1.ConfigureClusterSecuritySettingsResponse":{"type":"object"},"insights.v1.ContainerImage":{"properties":{"affectedResources":{"format":"int32","type":"integer"},"clusters":{"format":"int32","type":"integer"},"digest":{"type":"string"},"fixes":{"format":"int32","type":"integer"},"scanErrorMsg":{"type":"string"},"scanStatus":{"$ref":"#/components/schemas/insights.v1.ImageScanStatus"},"status":{"$ref":"#/components/schemas/insights.v1.ImageStatus"},"tags":{"items":{"$ref":"#/components/schemas/insights.v1.Tag"},"type":"array"},"vulnerabilitiesBySeverityLevel":{"additionalProperties":{"format":"int32","type":"integer"},"type":"object"}},"type":"object"},"insights.v1.ContainerImagePackage":{"properties":{"fixes":{"format":"int32","type":"integer"},"id":{"type":"string"},"layerDigest":{"type":"string"},"name":{"type":"string"},"source":{"type":"string"},"version":{"type":"string"},"vulnerabilitiesBySeverityLevel":{"additionalProperties":{"format":"int32","type":"integer"},"type":"object"}},"type":"object"},"insights.v1.ContainerImageVulnerability":{"properties":{"createdAt":{"format":"date-time","type":"string"},"externalLink":{"type":"string"},"fixedVersion":{"type":"string"},"layerDigest":{"type":"string"},"package":{"$ref":"#/components/schemas/insights.v1.Package"},"pkgVulnId":{"type":"string"},"severityLevel":{"$ref":"#/components/schemas/insights.v1.VulnerabilitySeverity"},"severityScore":{"format":"float","type":"number"},"title":{"type":"string"},"vulnId":{"type":"string"}},"type":"object"},"insights.v1.CreateIntegrationRequest.Jira":{"properties":{"name":{"type":"string"},"projectKey":{"type":"string"},"token":{"type":"string"},"url":{"type":"string"},"username":{"type":"string"}},"type":"object"},"insights.v1.CreateIntegrationRequest.Payload":{"properties":{"jira":{"$ref":"#/components/schemas/insights.v1.CreateIntegrationRequest.Jira"}},"type":"object"},"insights.v1.CreateIntegrationResponse":{"properties":{"integration":{"$ref":"#/components/schemas/insights.v1.Integration"}},"type":"object"},"insights.v1.CreateTicketRequest.Type":{"default":"Unknown","description":"Type of the item in the Cast console.","enum":["Unknown","Check","Image","Package","Vulnerability"],"type":"string"},"insights.v1.CreateTicketResponse":{"properties":{"name":{"type":"string"},"url":{"title":"url to the ticket in the ticketing system's UI","type":"string"}},"type":"object"},"insights.v1.DeleteImagesRequest":{"properties":{"tagNames":{"items":{"type":"string"},"type":"array"}},"type":"object"},"insights.v1.DeleteImagesResponse":{"type":"object"},"insights.v1.DeleteIntegrationResponse":{"type":"object"},"insights.v1.DeletePolicyEnforcementResponse":{"type":"object"},"insights.v1.EnforceCheckPolicyResponse":{"properties":{"enforcementByCluster":{"additionalProperties":{"type":"string"},"title":"map of enforcement ids keyed by cluster id","type":"object"}},"type":"object"},"insights.v1.ExceptedImage":{"properties":{"package":{"$ref":"#/components/schemas/insights.v1.ExceptedPackage"},"tagName":{"type":"string"}},"required":["tagName"],"type":"object"},"insights.v1.ExceptedPackage":{"properties":{"name":{"type":"string"},"version":{"type":"string"},"vulnerability":{"$ref":"#/components/schemas/insights.v1.ExceptedVulnerability"}},"required":["name"],"type":"object"},"insights.v1.ExceptedVulnerability":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"},"insights.v1.GetAgentStatusResponse":{"properties":{"installed":{"title":"Is agent installed","type":"boolean"},"policyEnforcement":{"title":"Is policy enforcement enabled","type":"boolean"}},"type":"object"},"insights.v1.GetAgentSyncStateResponse":{"properties":{"images":{"$ref":"#/components/schemas/insights.v1.AgentSyncStateImages"}},"type":"object"},"insights.v1.GetAgentsStatusRequest":{"properties":{"clusterIds":{"items":{"type":"string"},"title":"(required) cluster id","type":"array"}},"type":"object"},"insights.v1.GetAgentsStatusResponse":{"properties":{"agentStatuses":{"additionalProperties":{"type":"boolean"},"title":"Map of agent statuses keyed by cluster id","type":"object"},"statuses":{"additionalProperties":{"$ref":"#/components/schemas/insights.v1.GetAgentsStatusResponse.AgentStatus"},"title":"Map of agent statuses keyed by cluster id","type":"object"}},"type":"object"},"insights.v1.GetAgentsStatusResponse.AgentStatus":{"properties":{"installed":{"type":"boolean"},"policyEnforcement":{"type":"boolean"}},"type":"object"},"insights.v1.GetAttackPathDetailsResponse":{"properties":{"details":{"$ref":"#/components/schemas/insights.v1.AttackPath"},"graph":{"$ref":"#/components/schemas/insights.v1.AttackPathGraph"}},"type":"object"},"insights.v1.GetAttackPathsOverviewResponse":{"properties":{"attackPaths":{"format":"int32","title":"Number of attack paths","type":"integer"},"criticalAttackPaths":{"format":"int32","title":"Number of critical attack paths","type":"integer"},"highAttackPaths":{"format":"int32","title":"Number of high attack paths","type":"integer"},"lowAttackPaths":{"format":"int32","title":"Number of low attack paths","type":"integer"},"mediumAttackPaths":{"format":"int32","title":"Number of medium attack paths","type":"integer"}},"type":"object"},"insights.v1.GetAttackPathsResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/insights.v1.AttackPath"},"type":"array"}},"type":"object"},"insights.v1.GetBestPracticesCheckDetailsResponse":{"properties":{"category":{"description":"Category of insight.","type":"string"},"cvss3vector":{"description":"CVSSV3 vulnerability vector.","type":"string"},"description":{"description":"Check detailed description.","type":"string"},"enforceable":{"title":"Can check be enforced","type":"boolean"},"enforcedOn":{"items":{"$ref":"#/components/schemas/insights.v1.CheckEnforcement"},"title":"IDs of clusters that have this rule enforced","type":"array"},"labels":{"description":"Check labels.","items":{"type":"string"},"type":"array"},"manual":{"title":"Is the check manual or automated","type":"boolean"},"mdCheckDetails":{"title":"Details about check in markdown format","type":"string"},"name":{"description":"Human readable rule name.","type":"string"},"ruleId":{"description":"Machine readable rule name.","type":"string"},"severityLevel":{"$ref":"#/components/schemas/insights.v1.VulnerabilitySeverity"},"severityScore":{"description":"Rule's severity rating [0.0,10.0].","format":"float","type":"number"},"ticket":{"$ref":"#/components/schemas/insights.v1.Ticket"}},"type":"object"},"insights.v1.GetBestPracticesOverviewResponse":{"properties":{"failedChecks":{"format":"int32","title":"Number of checks that have not passed","type":"integer"},"nodes":{"$ref":"#/components/schemas/insights.v1.ComplianceDetails"},"other":{"$ref":"#/components/schemas/insights.v1.ComplianceDetails"},"passedChecks":{"format":"int32","title":"Number of checks that have passed","type":"integer"},"workloads":{"$ref":"#/components/schemas/insights.v1.ComplianceDetails"}},"type":"object"},"insights.v1.GetBestPracticesReportFiltersResponse":{"properties":{"filters":{"additionalProperties":{"$ref":"#/components/schemas/insights.v1.GetBestPracticesReportFiltersResponse.ClusterFilters"},"title":"Cluster filters mapped by cluster id","type":"object"}},"type":"object"},"insights.v1.GetBestPracticesReportFiltersResponse.ClusterFilters":{"properties":{"categories":{"items":{"type":"string"},"title":"threat categories available","type":"array"},"labels":{"items":{"type":"string"},"title":"labels available","type":"array"},"namespaces":{"items":{"type":"string"},"title":"namespaces available","type":"array"},"severityLevels":{"items":{"$ref":"#/components/schemas/insights.v1.VulnerabilitySeverity"},"title":"severity levels available","type":"array"}},"type":"object"},"insights.v1.GetBestPracticesReportResponse":{"properties":{"checks":{"description":"Filtered checks.","items":{"$ref":"#/components/schemas/insights.v1.GetBestPracticesReportResponse.CheckItem"},"type":"array"}},"type":"object"},"insights.v1.GetBestPracticesReportResponse.CheckItem":{"properties":{"clusters":{"additionalProperties":{"$ref":"#/components/schemas/insights.v1.GetBestPracticesReportResponse.CheckItem.Cluster"},"title":"Check references for each cluster, keyed by cluster ID","type":"object"},"clustersCount":{"description":"Count of clusters having this check.","format":"int32","type":"integer"},"cvss3vector":{"description":"CVSSV3 vulnerability vector.","type":"string"},"excepted":{"format":"int32","title":"Number of objects that did not pass but are excepted","type":"integer"},"failed":{"description":"Number of objects that did not pass the check.","format":"int32","type":"integer"},"labels":{"description":"Check labels.","items":{"type":"string"},"type":"array"},"manual":{"title":"Is the check manual or automated","type":"boolean"},"name":{"description":"Human readable rule name.","type":"string"},"provider":{"description":"Check provider.","type":"string"},"ruleId":{"description":"Machine readable rule name.","type":"string"},"severityLevel":{"$ref":"#/components/schemas/insights.v1.VulnerabilitySeverity"},"severityScore":{"format":"float","title":"Rule's severity rating [0.0,10.0]. TODO: change to cvss3 calculation","type":"number"},"total":{"description":"Total number of objects that were checked.","format":"int32","type":"integer"},"type":{"description":"Category of insight.","type":"string"}},"type":"object"},"insights.v1.GetBestPracticesReportResponse.CheckItem.Cluster":{"properties":{"namespaces":{"items":{"type":"string"},"title":"list of namespaces having the check","type":"array"}},"type":"object"},"insights.v1.GetBestPracticesReportSummaryResponse":{"properties":{"checksFailed":{"description":"Number of checks that failed.","format":"int32","type":"integer"},"checksManual":{"format":"int32","title":"Number of checks that were manual","type":"integer"},"checksPassed":{"description":"Number of checks that passed.","format":"int32","type":"integer"},"checksTotal":{"description":"Total checks performed.","format":"int32","type":"integer"},"failedChecksBySeverityLevel":{"additionalProperties":{"format":"int32","type":"integer"},"description":"Checks count by severity level.","type":"object"},"lastScannedAt":{"description":"Timestamp of last scan.","format":"date-time","type":"string"},"resourcesAffected":{"format":"int32","title":"Number of affected resources","type":"integer"},"resourcesManual":{"format":"int32","title":"Number of manually verifiable resources","type":"integer"},"resourcesTotal":{"format":"int32","title":"Total number of resources in report","type":"integer"},"resourcesUnaffected":{"format":"int32","title":"Number of unaffected resources","type":"integer"}},"type":"object"},"insights.v1.GetCheckExceptionsResponse":{"properties":{"groups":{"items":{"$ref":"#/components/schemas/insights.v1.CheckExceptionsGroup"},"type":"array"},"version":{"format":"date-time","type":"string"}},"type":"object"},"insights.v1.GetCheckResourcesResponse":{"properties":{"count":{"format":"int32","type":"integer"},"nextCursor":{"type":"string"},"previousCursor":{"type":"string"},"resources":{"items":{"$ref":"#/components/schemas/insights.v1.CheckClusterResource"},"type":"array"}},"type":"object"},"insights.v1.GetChecksResourcesRequest":{"properties":{"clusterIds":{"items":{"type":"string"},"type":"array"},"excepted":{"type":"boolean"},"namespaces":{"items":{"type":"string"},"type":"array"},"ruleIds":{"items":{"type":"string"},"type":"array"}},"type":"object"},"insights.v1.GetChecksResourcesResponse":{"properties":{"resources":{"items":{"$ref":"#/components/schemas/insights.v1.ClusterResource"},"type":"array"}},"type":"object"},"insights.v1.GetContainerImageDetailsResponse":{"properties":{"architecture":{"type":"string"},"bases":{"items":{"$ref":"#/components/schemas/insights.v1.BaseImage"},"type":"array"},"clusters":{"format":"int32","type":"integer"},"digest":{"type":"string"},"exceptedAt":{"format":"date-time","type":"string"},"exceptedReason":{"type":"string"},"inferredLanguage":{"type":"string"},"lastSeen":{"format":"date-time","type":"string"},"layers":{"items":{"$ref":"#/components/schemas/insights.v1.Layer"},"type":"array"},"scanStatus":{"$ref":"#/components/schemas/insights.v1.ImageScanStatus"},"size":{"format":"uint64","type":"string"},"status":{"$ref":"#/components/schemas/insights.v1.ImageStatus"},"tags":{"items":{"$ref":"#/components/schemas/insights.v1.Tag"},"type":"array"},"ticket":{"$ref":"#/components/schemas/insights.v1.Ticket"},"vulnerabilities":{"additionalProperties":{"format":"int32","type":"integer"},"type":"object"}},"type":"object"},"insights.v1.GetContainerImageDigestsResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/insights.v1.GetContainerImageDigestsResponse.Image"},"type":"array"}},"type":"object"},"insights.v1.GetContainerImageDigestsResponse.Image":{"properties":{"architecture":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"digest":{"type":"string"},"scanStatus":{"$ref":"#/components/schemas/insights.v1.ImageScanStatus"},"status":{"$ref":"#/components/schemas/insights.v1.ImageStatus"},"tags":{"items":{"$ref":"#/components/schemas/insights.v1.Tag"},"type":"array"},"vulnerabilities":{"format":"int32","type":"integer"}},"type":"object"},"insights.v1.GetContainerImagePackageVulnerabilityDetailsResponse":{"properties":{"affectedVersion":{"type":"string"},"affectedVersions":{"items":{"type":"string"},"type":"array"},"cvss":{"additionalProperties":{"$ref":"#/components/schemas/insights.v1.GetContainerImagePackageVulnerabilityDetailsResponse.CVSS"},"type":"object"},"cwes":{"items":{"type":"string"},"title":"Example: cwe-503","type":"array"},"defaultSource":{"type":"string"},"description":{"type":"string"},"id":{"type":"string"},"package":{"$ref":"#/components/schemas/insights.v1.PackageDetails"},"patchedVersion":{"type":"string"},"severityLevel":{"$ref":"#/components/schemas/insights.v1.VulnerabilitySeverity"},"sources":{"items":{"type":"string"},"type":"array"},"ticket":{"$ref":"#/components/schemas/insights.v1.Ticket"},"title":{"type":"string"}},"type":"object"},"insights.v1.GetContainerImagePackageVulnerabilityDetailsResponse.CVSS":{"properties":{"scorev2":{"format":"float","type":"number"},"scorev3":{"format":"float","type":"number"},"severityLevel":{"$ref":"#/components/schemas/insights.v1.VulnerabilitySeverity"},"vectorv2":{"type":"string"},"vectorv3":{"type":"string"}},"title":"Common Vulnerability Scoring System","type":"object"},"insights.v1.GetContainerImagePackagesResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/insights.v1.ContainerImagePackage"},"type":"array"}},"type":"object"},"insights.v1.GetContainerImageResourcesResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/insights.v1.ImageResource"},"type":"array"}},"type":"object"},"insights.v1.GetContainerImageVulnerabilitiesResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/insights.v1.ContainerImageVulnerability"},"type":"array"}},"type":"object"},"insights.v1.GetContainerImagesFiltersResponse":{"properties":{"labels":{"items":{"$ref":"#/components/schemas/insights.v1.GetContainerImagesFiltersResponse.Labels"},"type":"array"}},"type":"object"},"insights.v1.GetContainerImagesFiltersResponse.Labels":{"properties":{"label":{"type":"string"},"values":{"items":{"type":"string"},"type":"array"}},"type":"object"},"insights.v1.GetContainerImagesResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/insights.v1.ContainerImage"},"type":"array"}},"type":"object"},"insights.v1.GetContainerImagesSummaryResponse":{"properties":{"vulnerabilitiesBySeverity":{"additionalProperties":{"format":"int32","type":"integer"},"type":"object"}},"type":"object"},"insights.v1.GetDailySummaryResponse":{"properties":{"vulnerabilities":{"items":{"$ref":"#/components/schemas/insights.v1.VulnerabilitiesSummary"},"type":"array"}},"type":"object"},"insights.v1.GetExceptedChecksResponse":{"properties":{"checks":{"description":"Excepted checks.","items":{"$ref":"#/components/schemas/insights.v1.GetExceptedChecksResponse.Item"},"type":"array"}},"type":"object"},"insights.v1.GetExceptedChecksResponse.Item":{"properties":{"clusters":{"additionalProperties":{"$ref":"#/components/schemas/insights.v1.GetExceptedChecksResponse.Item.Cluster"},"type":"object"},"cvss3vector":{"description":"CVSSV3 vulnerability vector.","type":"string"},"exceptedResources":{"format":"int32","title":"Total number of resources that were excepted","type":"integer"},"labels":{"description":"Check labels.","items":{"type":"string"},"type":"array"},"manual":{"title":"Is the check manual or automated","type":"boolean"},"name":{"description":"Human readable rule name.","type":"string"},"ruleId":{"description":"Machine readable rule name.","type":"string"},"severityLevel":{"$ref":"#/components/schemas/insights.v1.VulnerabilitySeverity"},"severityScore":{"format":"float","title":"Rule's severity rating [0.0,10.0]. TODO: change to cvss3 calculation","type":"number"},"type":{"description":"Category of insight.","type":"string"}},"type":"object"},"insights.v1.GetExceptedChecksResponse.Item.Cluster":{"properties":{"namespaces":{"items":{"type":"string"},"title":"list of namespaces having the check","type":"array"}},"type":"object"},"insights.v1.GetImageSecurityOverviewResponse":{"properties":{"criticalFixes":{"format":"int32","title":"The number of fixes available for critical image vulnerabilities","type":"integer"},"criticalVulnerabilities":{"format":"int32","title":"The number of critical image vulnerabilities","type":"integer"},"highFixes":{"format":"int32","title":"The number of fixes available for high image vulnerabilities","type":"integer"},"highVulnerabilities":{"format":"int32","title":"The number of high image vulnerabilities","type":"integer"},"lowFixes":{"format":"int32","title":"The number of fixes available for low image vulnerabilities","type":"integer"},"lowVulnerabilities":{"format":"int32","title":"The number of low image vulnerabilities","type":"integer"},"mediumFixes":{"format":"int32","title":"The number of fixes available for medium image vulnerabilities","type":"integer"},"mediumVulnerabilities":{"format":"int32","title":"The number of medium image vulnerabilities","type":"integer"},"totalImageRepositories":{"format":"int32","title":"The total number of images","type":"integer"}},"type":"object"},"insights.v1.GetIntegrationResponse":{"properties":{"integration":{"$ref":"#/components/schemas/insights.v1.Integration"}},"type":"object"},"insights.v1.GetNodesOverviewResponse":{"properties":{"managedNodes":{"format":"int32","title":"Number of managed nodes","type":"integer"},"nodeAges":{"items":{"type":"string"},"title":"A list of node ages","type":"array"},"scheduledUpdates":{"format":"int32","title":"Number of managed nodes with scheduled updates","type":"integer"},"unmanagedNodes":{"format":"int32","title":"Number of unmanaged nodes","type":"integer"}},"type":"object"},"insights.v1.GetPublicImageAlternativesResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/insights.v1.GetPublicImageAlternativesResponse.Item"},"type":"array"}},"type":"object"},"insights.v1.GetPublicImageAlternativesResponse.Item":{"properties":{"name":{"type":"string"},"tagId":{"type":"string"},"vulnerabilitiesBySeverity":{"additionalProperties":{"format":"int32","type":"integer"},"type":"object"}},"type":"object"},"insights.v1.GetResourceDetailsResponse":{"properties":{"checks":{"items":{"$ref":"#/components/schemas/insights.v1.GetResourceDetailsResponse.Check"},"type":"array"},"details":{"$ref":"#/components/schemas/insights.v1.ClusterResource"}},"type":"object"},"insights.v1.GetResourceDetailsResponse.Check":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"severity":{"type":"string"},"standard":{"type":"string"}},"type":"object"},"insights.v1.ImageExceptionChangesRequest":{"properties":{"added":{"items":{"$ref":"#/components/schemas/insights.v1.ExceptedImage"},"type":"array"},"deleted":{"items":{"$ref":"#/components/schemas/insights.v1.ExceptedImage"},"type":"array"},"reason":{"type":"string"}},"required":["added","deleted"],"type":"object"},"insights.v1.ImageExceptionChangesResponse":{"properties":{"created":{"format":"int64","type":"integer"},"deleted":{"format":"int64","type":"integer"}},"type":"object"},"insights.v1.ImageResource":{"properties":{"cluster":{"type":"string"},"clusterId":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"insights.v1.ImageScanStatus":{"default":"Unknown","enum":["Unknown","Pending","Failed","Completed"],"title":"ImageScanStatus informs the user whether the image is being scanned or failed scanning or completed scanning","type":"string"},"insights.v1.ImageStatus":{"default":"NotRunning","enum":["NotRunning","Running"],"title":"ImagesStatus informs the user whether the image is used or not","type":"string"},"insights.v1.IngestAgentLogResponse":{"type":"object"},"insights.v1.Integration":{"properties":{"createdAt":{"description":"Creation timestamp.","format":"date-time","type":"string"},"id":{"title":"Integration ID","type":"string"},"metadata":{"description":"JSON encoded integration metadata.","format":"byte","pattern":"^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$","type":"string"},"name":{"title":"Integration name","type":"string"},"type":{"$ref":"#/components/schemas/insights.v1.Integration.Type"},"updatedAt":{"description":"Update timestamp.","format":"date-time","type":"string"}},"type":"object"},"insights.v1.Integration.Type":{"default":"UNKNOWN","enum":["UNKNOWN","JIRA"],"title":"Integration type","type":"string"},"insights.v1.Layer":{"properties":{"command":{"type":"string"},"digest":{"type":"string"},"size":{"format":"uint64","type":"string"}},"type":"object"},"insights.v1.ListIntegrationsResponse":{"properties":{"integrations":{"items":{"$ref":"#/components/schemas/insights.v1.Integration"},"type":"array"}},"type":"object"},"insights.v1.LogEvent":{"properties":{"fields":{"additionalProperties":{"type":"string"},"type":"object"},"level":{"type":"string"},"message":{"type":"string"},"time":{"format":"date-time","type":"string"}},"type":"object"},"insights.v1.Package":{"properties":{"name":{"type":"string"},"source":{"type":"string"},"version":{"type":"string"}},"title":"Package is used when showing a list of items","type":"object"},"insights.v1.PackageDetails":{"properties":{"name":{"type":"string"},"paths":{"items":{"type":"string"},"type":"array"},"source":{"type":"string"},"ticket":{"$ref":"#/components/schemas/insights.v1.Ticket"},"version":{"type":"string"}},"title":"Package details is used when showing a single item","type":"object"},"insights.v1.PostAgentTelemetryResponse":{"properties":{"disabledFeatures":{"items":{"type":"string"},"title":"disabled features","type":"array"},"enforcedRules":{"items":{"type":"string"},"title":"rules that should be enforced by kvisor","type":"array"},"fullResync":{"title":"indicates if full cluster resource resync is required","type":"boolean"},"nodeIds":{"items":{"type":"string"},"title":"indicates already kube-benched nodes","type":"array"}},"type":"object"},"insights.v1.PreviewExceptionGroupsResourcesResponse":{"properties":{"resources":{"items":{"$ref":"#/components/schemas/insights.v1.ClusterResource"},"type":"array"}},"type":"object"},"insights.v1.SaveCheckExceptionsResponse":{"type":"object"},"insights.v1.ScannedImage":{"properties":{"architecture":{"type":"string"},"id":{"type":"string"},"resourceIds":{"items":{"type":"string"},"type":"array"}},"type":"object"},"insights.v1.ScheduleBestPracticesScanRequest":{"properties":{"clusterId":{"title":"(required) ID of cluster","type":"string"}},"type":"object"},"insights.v1.ScheduleBestPracticesScanResponse":{"type":"object"},"insights.v1.SecurityFeature":{"default":"SECURITY_FEATURE_UNKNOWN","description":"- SECURITY_FEATURE_UNKNOWN: Unknown security feature\n - IMAGE_SCANNING: Image scanning is enabled on the cluster\n - KUBE_BENCH: Kubebench is enabled on the cluster\n - RUNTIME_SECURITY: Runtime security is enabled on the cluster","enum":["SECURITY_FEATURE_UNKNOWN","IMAGE_SCANNING","KUBE_BENCH","RUNTIME_SECURITY"],"title":"SecurityFeature represents a security feature that is enabled on a cluster","type":"string"},"insights.v1.Tag":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"version":{"type":"string"}},"type":"object"},"insights.v1.Ticket":{"properties":{"name":{"type":"string"},"url":{"type":"string"}},"type":"object"},"insights.v1.UpdateIntegrationRequest.Jira":{"properties":{"name":{"type":"string"},"projectKey":{"type":"string"},"token":{"type":"string"},"url":{"type":"string"},"username":{"type":"string"}},"type":"object"},"insights.v1.UpdateIntegrationRequest.Payload":{"properties":{"jira":{"$ref":"#/components/schemas/insights.v1.UpdateIntegrationRequest.Jira"}},"type":"object"},"insights.v1.UpdateIntegrationResponse":{"properties":{"integration":{"$ref":"#/components/schemas/insights.v1.Integration"}},"type":"object"},"insights.v1.VulnerabilitiesSummary":{"properties":{"clusters":{"items":{"$ref":"#/components/schemas/insights.v1.Cluster"},"type":"array"},"cves":{"items":{"$ref":"#/components/schemas/insights.v1.CVE"},"type":"array"},"name":{"type":"string"},"path":{"type":"string"}},"type":"object"},"insights.v1.VulnerabilitySeverity":{"default":"any","description":"Each invariant is defined in camel case in order to avoid breaking changes\nwhen replacing string fields in existing responses with this enum.\nCamel case was chosen because message field names in generated code are always in\ncamel case and there is no way to change that. On the other hand, enum field names\nare carried over to the generated code without any modifications.","enum":["any","none","low","medium","high","critical","notAvailable"],"type":"string"},"inventoryblacklist.v1.AddBlacklistRequest":{"description":"Defines request object to add autoscaler inventory's blacklist item.","properties":{"clusterId":{"description":"Cluster id, that will only be set if instance type or family is blacklisted for specific cluster.","nullable":true,"type":"string"},"expiresAt":{"description":"The date time when the disabling is due to be expired.\nThis is for the situations when disabling is done by the platform due to\ncloud availability.","format":"date-time","nullable":true,"type":"string"},"instanceFamily":{"description":"Instance type family name, such as: 'c2d'.\nEither this or instance type must be set.","nullable":true,"type":"string"},"instanceType":{"description":"Instance type name, such as: 'c2d-highmem-32'.\nEither this or instance family must be set.","nullable":true,"type":"string"},"lifecycle":{"$ref":"#/components/schemas/inventoryblacklist.v1.InventoryBlacklistLifecycle"},"organizationId":{"description":"Organization id for which the instance type or family is blacklisted.","nullable":true,"type":"string"},"reason":{"description":"Reason for disabling instance type or family.","type":"string"}},"type":"object"},"inventoryblacklist.v1.AddBlacklistResponse":{"description":"Defines response object of added autoscaler inventory's blacklist item.","properties":{"clusterId":{"description":"Cluster id, that will only be set if instance type or family is blacklisted for specific cluster.\nEither this or organization id must be set.","nullable":true,"type":"string"},"disabledAt":{"description":"Organization id for which the instance type or family is blacklisted.","format":"date-time","type":"string"},"expiresAt":{"description":"The date time when the disabling is due to be expired.\nThis is for the situations when disabling is done by the platform due to cloud availability.","format":"date-time","nullable":true,"type":"string"},"id":{"description":"The ID of the blacklisted item.","type":"string"},"instanceFamily":{"description":"Instance type family name, such as: 'c2d'.\nEither this or instance type must be set.","nullable":true,"type":"string"},"instanceType":{"description":"Instance type name, such as: 'c2d-highmem-32'.\nEither this or instance family must be set.","nullable":true,"type":"string"},"lifecycle":{"$ref":"#/components/schemas/inventoryblacklist.v1.InventoryBlacklistLifecycle"},"organizationId":{"description":"Organization id for which the instance type or family is blacklisted.\nEither this or cluster id must be set.","type":"string"},"reason":{"description":"Reason for disabling instance type or family.","type":"string"}},"type":"object"},"inventoryblacklist.v1.InventoryBlacklistItem":{"description":"Defines BlacklistItem, which describes the properties for blacklisted instance type or family.","properties":{"clusterId":{"description":"Cluster id, that will only be set if instance type or family is blacklisted for specific cluster.","nullable":true,"type":"string"},"disabledAt":{"description":"The date time when the instance type or family was disabled.","format":"date-time","type":"string"},"expiresAt":{"description":"The date time when the disabling is due to be expired.\nThis is for the situations when disabling is done by the platform due to cloud availability.","format":"date-time","nullable":true,"type":"string"},"instanceFamily":{"description":"Instance type family name, such as: 'c2d'.\nEither this or instance type must be set.","nullable":true,"type":"string"},"instanceType":{"description":"Instance type name, such as: 'c2d-highmem-32'.\nEither this or instance family must be set.","nullable":true,"type":"string"},"lifecycle":{"$ref":"#/components/schemas/inventoryblacklist.v1.InventoryBlacklistLifecycle"},"organizationId":{"description":"Organization id for which the instance type or family is blacklisted.","type":"string"},"reason":{"description":"Reason for disabling instance type or family.","type":"string"}},"type":"object"},"inventoryblacklist.v1.InventoryBlacklistLifecycle":{"default":"all","description":"Defines inventory blacklist instance type lifecycles.\n\n - all: All instance type lifecycles.\n - spot: Spot instance type lifecycle.\n - on_demand: On-demand instance type lifecycle.","enum":["all","spot","on_demand"],"type":"string"},"inventoryblacklist.v1.ListBlacklistsResponse":{"description":"Defines response object of fetched cluster autoscaler blacklist.","properties":{"items":{"description":"Blacklisted instances of inventory items for that cluster or organization.","items":{"$ref":"#/components/schemas/inventoryblacklist.v1.InventoryBlacklistItem"},"type":"array"}},"type":"object"},"inventoryblacklist.v1.RemoveBlacklistRequest":{"description":"Defines request object to remove autoscaler inventory's blacklisted items.","properties":{"clusterId":{"description":"Cluster id, that will only be set if instance type or family is\nblacklisted for specific cluster.","nullable":true,"type":"string"},"instanceFamily":{"description":"Organization id for which the instance type or family is blacklisted.\nInstance type family name, such as: 'c2d'.\nEither this or instance type must be set.","nullable":true,"type":"string"},"instanceType":{"description":"Instance type name, such as: 'c2d-highmem-32'.\nEither this or instance family must be set.","nullable":true,"type":"string"},"lifecycle":{"$ref":"#/components/schemas/inventoryblacklist.v1.InventoryBlacklistLifecycle"},"organizationId":{"description":"Organization id for which the instance type or family is blacklisted.","nullable":true,"type":"string"}},"type":"object"},"inventoryblacklist.v1.RemoveBlacklistResponse":{"description":"Defines response object of removed autoscaler inventory's blacklist response.","type":"object"},"k8s_selector.v1.KubernetesNodeAffinity":{"properties":{"key":{"type":"string"},"operator":{"$ref":"#/components/schemas/k8s_selector.v1.Operator"},"values":{"items":{"type":"string"},"type":"array"}},"required":["key","operator","values"],"type":"object"},"k8s_selector.v1.Operator":{"default":"IN","description":"- IN: In values\n - NotInt: Not int values\n - Exists: Just exist\n - DoesNotExist: Values does not exist\n - Gt: Greater then\n - Lt: Lower then","enum":["IN","in","NotInt","notIn","Exists","exists","DoesNotExist","doesNotExist","Gt","gt","Lt","lt"],"title":"Selection operator","type":"string"},"llmoptimization.v1.APIKeyUsageItem":{"properties":{"dailyCost":{"type":"string"},"dailyCostPerMilTokens":{"type":"string"},"requestCount":{"format":"int32","type":"integer"},"timestamp":{"type":"string"},"tokenCount":{"$ref":"#/components/schemas/llmoptimization.v1.TokenCount"}},"required":["dailyCost","dailyCostPerMilTokens","requestCount","timestamp","tokenCount"],"type":"object"},"llmoptimization.v1.APIKeysSavingsItem":{"properties":{"alias":{"type":"string"},"costs":{"$ref":"#/components/schemas/llmoptimization.v1.Costs"},"id":{"type":"string"},"recommendedModelCosts":{"$ref":"#/components/schemas/llmoptimization.v1.Costs"},"requestCount":{"format":"int32","type":"integer"},"tokenCount":{"$ref":"#/components/schemas/llmoptimization.v1.TokenCount"}},"required":["alias","costs","id","recommendedModelCosts","requestCount","tokenCount"],"type":"object"},"llmoptimization.v1.CategoryUsageItem":{"properties":{"costPerApiKey":{"additionalProperties":{"type":"string"},"type":"object"},"dailyCost":{"type":"string"},"dailyCostPerMilTokens":{"type":"string"},"requestCount":{"format":"int32","type":"integer"},"timestamp":{"type":"string"},"tokenCount":{"$ref":"#/components/schemas/llmoptimization.v1.TokenCount"}},"required":["costPerApiKey","dailyCost","dailyCostPerMilTokens","requestCount","timestamp","tokenCount"],"type":"object"},"llmoptimization.v1.Costs":{"properties":{"daily":{"type":"string"},"perMilTokens":{"type":"string"},"perMilTokensIn":{"type":"string"},"perMilTokensOut":{"type":"string"},"total":{"type":"string"},"totalPerTokensIn":{"type":"string"},"totalPerTokensOut":{"type":"string"}},"required":["daily","perMilTokens","perMilTokensIn","perMilTokensOut","total","totalPerTokensIn","totalPerTokensOut"],"type":"object"},"llmoptimization.v1.GetChatCompletionsAPIKeyUsageReportResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/llmoptimization.v1.APIKeyUsageItem"},"type":"array"},"stepSeconds":{"format":"int32","type":"integer"}},"type":"object"},"llmoptimization.v1.GetChatCompletionsAPIKeysSavingsReportResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/llmoptimization.v1.APIKeysSavingsItem"},"type":"array"}},"type":"object"},"llmoptimization.v1.GetChatCompletionsCategoryRecommendationsReportResponse":{"properties":{"recommendation":{"$ref":"#/components/schemas/llmoptimization.v1.RecommendationsItem"},"summary":{"$ref":"#/components/schemas/llmoptimization.v1.RecommendationsSummary"}},"type":"object"},"llmoptimization.v1.GetChatCompletionsCategoryUsageReportResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/llmoptimization.v1.CategoryUsageItem"},"type":"array"},"stepSeconds":{"format":"int32","type":"integer"}},"type":"object"},"llmoptimization.v1.GetChatCompletionsRecommendationsReportResponse":{"properties":{"isOnboarded":{"type":"boolean"},"items":{"items":{"$ref":"#/components/schemas/llmoptimization.v1.RecommendationsItem"},"type":"array"},"summary":{"$ref":"#/components/schemas/llmoptimization.v1.RecommendationsSummary"}},"type":"object"},"llmoptimization.v1.GetChatCompletionsUsageReportResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/llmoptimization.v1.UsageItem"},"type":"array"},"stepSeconds":{"format":"int32","type":"integer"}},"type":"object"},"llmoptimization.v1.GetSettingsResponse":{"properties":{"settings":{"$ref":"#/components/schemas/llmoptimization.v1.Settings"}},"type":"object"},"llmoptimization.v1.RecommendationsItem":{"properties":{"category":{"type":"string"},"costs":{"$ref":"#/components/schemas/llmoptimization.v1.Costs"},"id":{"type":"string"},"recommendedModelCosts":{"$ref":"#/components/schemas/llmoptimization.v1.Costs"},"requestCount":{"format":"int32","type":"integer"},"routing":{"$ref":"#/components/schemas/llmoptimization.v1.Routing"},"tokenCount":{"$ref":"#/components/schemas/llmoptimization.v1.TokenCount"}},"required":["category","costs","id","recommendedModelCosts","requestCount","routing","tokenCount"],"type":"object"},"llmoptimization.v1.RecommendationsSummary":{"properties":{"costs":{"$ref":"#/components/schemas/llmoptimization.v1.Costs"},"recommendedModelCosts":{"$ref":"#/components/schemas/llmoptimization.v1.Costs"}},"required":["costs","recommendedModelCosts"],"type":"object"},"llmoptimization.v1.Routing":{"properties":{"from":{"$ref":"#/components/schemas/llmoptimization.v1.RoutingModel"},"to":{"$ref":"#/components/schemas/llmoptimization.v1.RoutingModel"}},"required":["from","to"],"type":"object"},"llmoptimization.v1.RoutingModel":{"properties":{"fineTuned":{"type":"boolean"},"model":{"type":"string"}},"required":["fineTuned","model"],"type":"object"},"llmoptimization.v1.Settings":{"properties":{"promptSharingEnabled":{"type":"boolean"}},"required":["promptSharingEnabled"],"type":"object"},"llmoptimization.v1.TokenCount":{"properties":{"in":{"format":"int32","type":"integer"},"out":{"format":"int32","type":"integer"}},"required":["in","out"],"type":"object"},"llmoptimization.v1.UpsertSettingsRequest":{"properties":{"settings":{"$ref":"#/components/schemas/llmoptimization.v1.Settings"}},"type":"object"},"llmoptimization.v1.UpsertSettingsResponse":{"properties":{"settings":{"$ref":"#/components/schemas/llmoptimization.v1.Settings"}},"type":"object"},"llmoptimization.v1.UsageItem":{"properties":{"costPerApiKey":{"additionalProperties":{"type":"string"},"type":"object"},"costPerCategory":{"additionalProperties":{"type":"string"},"type":"object"},"dailyCost":{"type":"string"},"dailyCostPerMilTokens":{"type":"string"},"timestamp":{"type":"string"}},"required":["costPerApiKey","costPerCategory","dailyCost","dailyCostPerMilTokens","timestamp"],"type":"object"},"nodeconfig.v1.AKSConfig":{"properties":{"maxPodsPerNode":{"description":"Maximum number of pods that can be run on a node, which affects how many IP addresses you will need for each node.\nDefaults to 30. Values between 10 and 250 are allowed.\nSetting values above 110 will require specific CNI configuration. Please refer to Microsoft documentation for additional guidance.","format":"int32","type":"integer"},"osDiskType":{"$ref":"#/components/schemas/nodeconfig.v1.AKSConfig.OsDiskType"}},"type":"object"},"nodeconfig.v1.AKSConfig.OsDiskType":{"default":"OS_DISK_TYPE_UNSPECIFIED","description":"OsDiskType represent possible values for AKS node os disk type(this is subset of all available Azure disk types).","enum":["OS_DISK_TYPE_UNSPECIFIED","OS_DISK_TYPE_STANDARD","OS_DISK_TYPE_STANDARD_SSD","OS_DISK_TYPE_PREMIUM_SSD"],"type":"string"},"nodeconfig.v1.ContainerRuntime":{"default":"UNSPECIFIED","description":"List of supported container runtimes kubelet should use.","enum":["UNSPECIFIED","unspecified","DOCKERD","dockerd","CONTAINERD","containerd"],"type":"string"},"nodeconfig.v1.DeleteConfigurationResponse":{"type":"object"},"nodeconfig.v1.EKSConfig":{"properties":{"dnsClusterIp":{"description":"IP address to use for DNS queries within the cluster. Defaults to 10.100.0.10 or 172.20.0.10 based on the IP address of the primary interface.","nullable":true,"type":"string"},"imdsHopLimit":{"default":2,"format":"int32","nullable":true,"title":"Allow configure the IMDSv2 hop limit, the default is 2","type":"integer"},"imdsV1":{"default":true,"nullable":true,"title":"Allow IMDSv1, the default is true","type":"boolean"},"instanceProfileArn":{"description":"Cluster's instance profile ARN used for CAST provisioned nodes.","type":"string"},"keyPairId":{"description":"AWS key pair ID to be used for provisioned nodes. Has priority over sshPublicKey.","nullable":true,"type":"string"},"securityGroups":{"description":"Cluster's security groups configuration.","items":{"type":"string"},"type":"array"},"targetGroup":{"$ref":"#/components/schemas/nodeconfig.v1.TargetGroup"},"volumeIops":{"description":"EBS volume IOPS value to be used for provisioned nodes.","format":"int32","nullable":true,"type":"integer"},"volumeKmsKeyArn":{"nullable":true,"title":"Optional AWS KMS key for encrypting EBS attached to the node","type":"string"},"volumeThroughput":{"description":"EBS volume throughput in MiB/s to be used for provisioned nodes.","format":"int32","nullable":true,"type":"integer"},"volumeType":{"description":"EBS volume type to be used for provisioned nodes. Defaults to gp3.","nullable":true,"type":"string"}},"required":["instanceProfileArn"],"type":"object"},"nodeconfig.v1.GKEConfig":{"properties":{"diskType":{"description":"Type of boot disk attached to the node. For available types please read official GCP docs(https://cloud.google.com/compute/docs/disks#pdspecs).","nullable":true,"type":"string"},"maxPodsPerNode":{"description":"Maximum number of pods that can be run on a node, which affects how many IP addresses you will need for each node. Defaults to 110.\nFor Standard GKE clusters, you can run a maximum of 256 Pods on a node with a /23 range, not 512 as you might expect. This provides a buffer so that Pods don't become unschedulable due to a\ntransient lack of IP addresses in the Pod IP range for a given node. For all ranges, at most half as many Pods can be scheduled as IP addresses in the range.","format":"int32","type":"integer"},"networkTags":{"description":"Network tags to be added on a VM. Each tag must be 1-63 characters long, start with a lowercase letter and end with either a number or a lowercase letter.","items":{"type":"string"},"type":"array"}},"type":"object"},"nodeconfig.v1.GetSuggestedConfigurationResponse":{"properties":{"securityGroups":{"items":{"$ref":"#/components/schemas/nodeconfig.v1.SecurityGroup"},"title":"All clusters Security Groups in the cluster VPC","type":"array"},"subnets":{"items":{"$ref":"#/components/schemas/nodeconfig.v1.SubnetDetails"},"title":"All cluster routable subnets","type":"array"}},"title":"GetSuggestedConfigurationResponse returns suggested configuration based on existing cloud resources","type":"object"},"nodeconfig.v1.KOPSConfig":{"properties":{"keyPairId":{"description":"AWS key pair ID to be used for provisioned nodes. Has priority over sshPublicKey.","nullable":true,"type":"string"}},"type":"object"},"nodeconfig.v1.ListConfigurationsResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/nodeconfig.v1.NodeConfiguration"},"type":"array"}},"type":"object"},"nodeconfig.v1.NewNodeConfiguration":{"properties":{"aks":{"$ref":"#/components/schemas/nodeconfig.v1.AKSConfig"},"containerRuntime":{"$ref":"#/components/schemas/nodeconfig.v1.ContainerRuntime"},"diskCpuRatio":{"description":"Disk to CPU ratio. Sets the number of GiBs to be added for every CPU on the node. The root volume will have a minimum of 100GiB and will be further increased based on value.","format":"int32","type":"integer"},"dockerConfig":{"description":"Optional docker daemon configuration properties. Provide only properties that you want to override. Available values https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file","example":{"insecure-registries":["registry.com:5000"],"max-concurrent-downloads":10},"type":"object"},"drainTimeoutSec":{"description":"Drain timeout in seconds. Defaults to 0.","format":"int32","nullable":true,"type":"integer"},"eks":{"$ref":"#/components/schemas/nodeconfig.v1.EKSConfig"},"gke":{"$ref":"#/components/schemas/nodeconfig.v1.GKEConfig"},"image":{"description":"Image to be used while provisioning the node. If nothing is provided will be resolved to latest available image based on Kubernetes version if possible.","nullable":true,"type":"string"},"initScript":{"description":"Init script to be run on your instance at launch. Should not contain any sensitive data. Value should be base64 encoded.","nullable":true,"type":"string"},"kops":{"$ref":"#/components/schemas/nodeconfig.v1.KOPSConfig"},"kubeletConfig":{"description":"Optional kubelet configuration properties. Applicable for EKS only.","type":"object"},"minDiskSize":{"description":"Minimal disk size in GiB. Defaults to 100.","format":"int32","nullable":true,"type":"integer"},"name":{"description":"The name of the node configuration.","type":"string"},"sshPublicKey":{"description":"Optional SSH public key to be used for provisioned nodes. Value should be base64 encoded.","nullable":true,"type":"string"},"subnets":{"description":"Subnet ids to be used for provisioned nodes.","items":{"type":"string"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags to be added on cloud instances for provisioned nodes.","type":"object"}},"required":["name"],"type":"object"},"nodeconfig.v1.NodeConfiguration":{"properties":{"aks":{"$ref":"#/components/schemas/nodeconfig.v1.AKSConfig"},"containerRuntime":{"$ref":"#/components/schemas/nodeconfig.v1.ContainerRuntime"},"createdAt":{"description":"The date when node configuration was created.","format":"date-time","type":"string"},"default":{"description":"Whether node configuration is the default one.","type":"boolean"},"diskCpuRatio":{"description":"Disk to CPU ratio.","format":"int32","type":"integer"},"dockerConfig":{"description":"Optional docker daemon configuration properties. Applicable for EKS only.","nullable":true,"type":"object"},"drainTimeoutSec":{"description":"Drain timeout in seconds. Defaults to 0.","format":"int32","nullable":true,"type":"integer"},"eks":{"$ref":"#/components/schemas/nodeconfig.v1.EKSConfig"},"gke":{"$ref":"#/components/schemas/nodeconfig.v1.GKEConfig"},"id":{"description":"The node configuration ID.","type":"string"},"image":{"description":"Image to be used while provisioning the node. If nothing is provided will be resolved to latest available image based on Kubernetes version if possible.","nullable":true,"type":"string"},"initScript":{"description":"Base64 encoded init script to be run on your instance at launch.","nullable":true,"type":"string"},"kops":{"$ref":"#/components/schemas/nodeconfig.v1.KOPSConfig"},"kubeletConfig":{"description":"Optional kubelet configuration properties. Applicable for EKS only.","nullable":true,"type":"object"},"minDiskSize":{"description":"Minimal disk size in GiB.","format":"int32","type":"integer"},"name":{"description":"The name of the node configuration.","type":"string"},"sshPublicKey":{"description":"Base64 encoded ssh public key to be used for provisioned nodes.","nullable":true,"type":"string"},"subnets":{"description":"Subnet ids to be used for provisioned nodes.","items":{"type":"string"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags to be added on cloud instances for provisioned nodes.","type":"object"},"updatedAt":{"description":"The date when node configuration was updated.","format":"date-time","type":"string"},"version":{"description":"The version of the node configuration.","format":"int32","type":"integer"}},"type":"object"},"nodeconfig.v1.NodeConfigurationUpdate":{"properties":{"aks":{"$ref":"#/components/schemas/nodeconfig.v1.AKSConfig"},"containerRuntime":{"$ref":"#/components/schemas/nodeconfig.v1.ContainerRuntime"},"diskCpuRatio":{"description":"Disk to CPU ratio. Sets the number of GiBs to be added for every CPU on the node. The root volume will have a minimum of 100GiB and will be further increased based on value.","format":"int32","type":"integer"},"dockerConfig":{"description":"Optional docker daemon configuration properties. Provide only properties that you want to override. Available values https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file","example":{"insecure-registries":["registry.com:5000"],"max-concurrent-downloads":10},"type":"object"},"drainTimeoutSec":{"description":"Drain timeout in seconds. Defaults to 0.","format":"int32","nullable":true,"type":"integer"},"eks":{"$ref":"#/components/schemas/nodeconfig.v1.EKSConfig"},"gke":{"$ref":"#/components/schemas/nodeconfig.v1.GKEConfig"},"image":{"description":"Image to be used while provisioning the node. If nothing is provided will be resolved to latest available image based on Kubernetes version if possible.","nullable":true,"type":"string"},"initScript":{"description":"Init script to be run on your instance at launch. Should not contain any sensitive data. Value should be base64 encoded.","nullable":true,"type":"string"},"kops":{"$ref":"#/components/schemas/nodeconfig.v1.KOPSConfig"},"kubeletConfig":{"description":"Optional kubelet configuration properties. Applicable for EKS only.","type":"object"},"minDiskSize":{"description":"Minimal disk size in GiB. Defaults to 100.","format":"int32","nullable":true,"type":"integer"},"sshPublicKey":{"description":"Optional SSH public key to be used for provisioned nodes. Value should be base64 encoded.","nullable":true,"type":"string"},"subnets":{"description":"Subnet ids to be used for provisioned nodes.","items":{"type":"string"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags to be added on cloud instances for provisioned nodes.","type":"object"}},"type":"object"},"nodeconfig.v1.SecurityGroup":{"properties":{"description":{"description":"A description of the security group.","type":"string"},"id":{"description":"The ID of the security group.","type":"string"},"name":{"description":"The name of the security group.","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags of the security group.","type":"object"}},"type":"object"},"nodeconfig.v1.SubnetDetails":{"description":"SubnetDetails contains all subnet attributes relevant for node configuration.","properties":{"availableIpAddressCount":{"description":"Available Ip Address populated for EKS provider only.","format":"int32","nullable":true,"type":"integer"},"cidr":{"description":"Cidr block of the subnet.","type":"string"},"id":{"description":"The ID of the subnet.","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags of the subnet.","type":"object"},"zone":{"$ref":"#/components/schemas/externalcluster.v1.Zone"}},"type":"object"},"nodeconfig.v1.TargetGroup":{"properties":{"arn":{"description":"ARN of the target group.","type":"string"},"port":{"description":"Port of the target group.","format":"int32","nullable":true,"type":"integer"}},"type":"object"},"nodetemplates.v1.AvailableInstanceType":{"properties":{"architecture":{"title":"CPU architecture of the instance","type":"string"},"availableGpuDevices":{"items":{"$ref":"#/components/schemas/nodetemplates.v1.AvailableInstanceType.GPUDevice"},"title":"GPU devices available for this instance type","type":"array"},"cpu":{"format":"int64","title":"CPU count","type":"string"},"cpuCost":{"format":"double","title":"Cost of the CPU per hour","type":"number"},"family":{"title":"Name of the instance type family","type":"string"},"isBareMetal":{"title":"Indicates if instance is bare metal","type":"boolean"},"isComputeOptimized":{"title":"Indicates if instance is compute optimized","type":"boolean"},"memory":{"format":"int64","title":"Memory in MiB","type":"string"},"name":{"title":"Name of the instance type","type":"string"},"os":{"$ref":"#/components/schemas/nodetemplates.v1.AvailableInstanceType.Os"},"storageOptimizedOption":{"$ref":"#/components/schemas/nodetemplates.v1.AvailableInstanceType.StorageOptimizedOption"}},"title":"Defines the instance type","type":"object"},"nodetemplates.v1.AvailableInstanceType.GPUDevice":{"properties":{"count":{"format":"int32","type":"integer"},"manufacturer":{"type":"string"},"name":{"type":"string"}},"title":"One of the available gpu devices to attach of the instance type","type":"object"},"nodetemplates.v1.AvailableInstanceType.Os":{"default":"unknown","enum":["unknown","linux","windows"],"title":"A set of operating system","type":"string"},"nodetemplates.v1.AvailableInstanceType.StorageOptimizedOption":{"default":"Never","enum":["Never","OnDemand","Always"],"title":"A set of storage optimized options","type":"string"},"nodetemplates.v1.DeleteNodeTemplateResponse":{"type":"object"},"nodetemplates.v1.FilterInstanceTypesResponse":{"properties":{"availableInstanceTypes":{"items":{"$ref":"#/components/schemas/nodetemplates.v1.AvailableInstanceType"},"type":"array"}},"type":"object"},"nodetemplates.v1.GenerateNodeTemplatesResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/nodetemplates.v1.NodeTemplateListItem"},"title":"Templates and their associated metadata","type":"array"}},"type":"object"},"nodetemplates.v1.Label":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"nodetemplates.v1.ListNodeTemplatesResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/nodetemplates.v1.NodeTemplateListItem"},"title":"Templates and their associated metadata","type":"array"}},"type":"object"},"nodetemplates.v1.NewNodeTemplate":{"properties":{"configurationId":{"title":"ID of the selected configuration","type":"string"},"constraints":{"$ref":"#/components/schemas/nodetemplates.v1.TemplateConstraints"},"customInstancesEnabled":{"nullable":true,"title":"Marks whether custom instances should be used when deciding which parts of inventory are available.\nThe flag is only available for GCP clusters","type":"boolean"},"customInstancesWithExtendedMemoryEnabled":{"nullable":true,"title":"Marks whether custom instances with extended memory should be used when deciding which parts of inventory are available.\nThe flag is only available for GCP clusters","type":"boolean"},"customLabel":{"$ref":"#/components/schemas/nodetemplates.v1.Label"},"customLabels":{"additionalProperties":{"type":"string"},"description":"Custom labels for the template.\nThe passed values will be ignored if the field custom_label is present.","type":"object"},"customTaints":{"description":"Custom taints for the template.","items":{"$ref":"#/components/schemas/nodetemplates.v1.TaintWithOptionalEffect"},"type":"array"},"isDefault":{"description":"Flag whether this template is the default template for the cluster.","type":"boolean"},"isEnabled":{"description":"This field is used to enable/disable autoscaling for the template.","nullable":true,"type":"boolean"},"name":{"title":"Name of the template","type":"string"},"rebalancingConfig":{"$ref":"#/components/schemas/nodetemplates.v1.RebalancingConfiguration"},"shouldTaint":{"description":"Marks whether the templated nodes will have a taint template taint.\nBased on the template constraints, the template may still have additional taints.\nFor example, if both lifecycles (spot, on-demand) are enabled, to use spot nodes, the spot nodes of this template will have the spot taint.","nullable":true,"type":"boolean"}},"type":"object"},"nodetemplates.v1.NodeTemplate":{"properties":{"configurationId":{"title":"ID of the selected configuration","type":"string"},"configurationName":{"title":"Name of the selected configuration","type":"string"},"constraints":{"$ref":"#/components/schemas/nodetemplates.v1.TemplateConstraints"},"customInstancesEnabled":{"title":"Marks whether custom instances should be used when deciding which parts of inventory are available.\nThe flag is only available for GCP clusters","type":"boolean"},"customInstancesWithExtendedMemoryEnabled":{"title":"Marks whether custom instances with extended memory should be used when deciding which parts of inventory are available.\nThe flag is only available for GCP clusters","type":"boolean"},"customLabel":{"$ref":"#/components/schemas/nodetemplates.v1.Label"},"customLabels":{"additionalProperties":{"type":"string"},"description":"Custom labels for the template.","type":"object"},"customTaints":{"description":"Custom taints for the template.","items":{"$ref":"#/components/schemas/nodetemplates.v1.Taint"},"type":"array"},"isDefault":{"description":"Flag whether this template is the default template for the cluster.","type":"boolean"},"isEnabled":{"description":"This field is used to enable/disable autoscaling for the template.","type":"boolean"},"name":{"title":"Name of the template","type":"string"},"rebalancingConfig":{"$ref":"#/components/schemas/nodetemplates.v1.RebalancingConfiguration"},"shouldTaint":{"description":"Marks whether the templated nodes will have a taint.","type":"boolean"},"version":{"title":"version of the template","type":"string"}},"type":"object"},"nodetemplates.v1.NodeTemplateListItem":{"properties":{"stats":{"$ref":"#/components/schemas/nodetemplates.v1.NodeTemplateListItem.Stats"},"template":{"$ref":"#/components/schemas/nodetemplates.v1.NodeTemplate"}},"type":"object"},"nodetemplates.v1.NodeTemplateListItem.Stats":{"properties":{"countFallback":{"format":"int32","type":"integer"},"countOnDemand":{"format":"int32","type":"integer"},"countSpot":{"format":"int32","type":"integer"}},"type":"object"},"nodetemplates.v1.RebalancingConfiguration":{"properties":{"minNodes":{"description":"Minimum amount of nodes to create for template\nNote, this setting is only relevant for very small clusters, for larger clusters it's recommended to leave this at 0.","format":"int32","nullable":true,"type":"integer"}},"title":"Defines rebalancing settings per template","type":"object"},"nodetemplates.v1.Taint":{"description":"Taint is used in responses.","properties":{"effect":{"$ref":"#/components/schemas/nodetemplates.v1.TaintEffect"},"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"nodetemplates.v1.TaintEffect":{"default":"NoSchedule","description":"TaintEffect is a node taint effect.","enum":["NoSchedule","NoExecute"],"type":"string"},"nodetemplates.v1.TaintWithOptionalEffect":{"description":"TaintWithOptionalEffect is used when creating/updating a node template.\nWe are adding support for specifying taint effect on node templates and effect should be optional to be backwards compatible.","properties":{"effect":{"$ref":"#/components/schemas/nodetemplates.v1.TaintEffect"},"key":{"type":"string"},"value":{"nullable":true,"type":"string"}},"required":["key"],"type":"object"},"nodetemplates.v1.TemplateConstraints":{"properties":{"architectures":{"items":{"type":"string"},"title":"Instance type CPU architecture constraints - will only pick nodes whose CPU architecture is within this list","type":"array"},"bareMetal":{"nullable":true,"title":"Bare metal instance constraint - if set to true will only pick bare metal nodes, if set to false will only pick\nnon-bare metal nodes and if not set will pick both","type":"boolean"},"computeOptimized":{"nullable":true,"title":"Compute optimized instance constraint - will only pick compute optimized nodes if true","type":"boolean"},"customPriority":{"description":"Custom sorting priority - instances matching defined rules will take priority over other candidates.","items":{"$ref":"#/components/schemas/nodetemplates.v1.TemplateConstraints.CustomPriority"},"type":"array"},"dedicatedNodeAffinity":{"description":"Dedicated node affinity - creates preference for instances to be created on sole tenancy or dedicated nodes.\n\nDedicated node affinity - creates preference for instances to be created on sole tenancy or dedicated nodes. This\nfeature is only available for GCP clusters and sole tenancy nodes with local SSDs or GPUs are not supported. If\nthe sole tenancy or dedicated nodes don't have capacity for selected instance type, the Autoscaler will fall back\nto multi-tenant instance types available for this Node Template. Other instance constraints are applied when\nthe Autoscaler picks available instance types that can be created on the sole tenancy or dedicated\nnode (example: setting min CPU to 16).\n\nWhen using dedicated node affinity, with a shared sole tenancy node group in GCP following rules and limitations apply:\n- Use Resource URI/FQDN of the sole tenancy node group as the name (example: /projects/test-123/zones/europe-west1b/nodeGroups/test-node-group).\n- The GKE cluster must use Shared VPC (https://cloud.google.com/vpc/docs/shared-vpc).\n- The sole tenancy node group must be shared with the GKE cluster's project or organization.\n- The CAST's service account must have the necessary permissions to create and operate instances\n on the sole tenancy node group's project.","items":{"$ref":"#/components/schemas/nodetemplates.v1.TemplateConstraints.DedicatedNodeAffinity"},"type":"array"},"enableSpotDiversity":{"description":"Enable/disable spot diversity policy. When enabled, autoscaler will try to balance between diverse and cost optimal instance types.","nullable":true,"type":"boolean"},"fallbackRestoreRateSeconds":{"description":"Fallback restore rate in seconds: defines how much time should pass before spot fallback should be attempted to be restored to real spot.","format":"int32","nullable":true,"type":"integer"},"gpu":{"$ref":"#/components/schemas/nodetemplates.v1.TemplateConstraints.GPUConstraints"},"instanceFamilies":{"$ref":"#/components/schemas/nodetemplates.v1.TemplateConstraints.InstanceFamilyConstraints"},"isGpuOnly":{"description":"This template is gpu only. Setting this to true, will result in only instances with GPUs being considered.\nIn addition, this ensures that all of the added instances for this template won't have any nvidia taints.","nullable":true,"type":"boolean"},"maxCpu":{"format":"int32","nullable":true,"title":"Max CPU cores per node","type":"integer"},"maxMemory":{"format":"int32","nullable":true,"title":"Max Memory (Mib) per node","type":"integer"},"minCpu":{"format":"int32","nullable":true,"title":"Min CPU cores per node","type":"integer"},"minMemory":{"format":"int32","nullable":true,"title":"Min Memory (Mib) per node","type":"integer"},"onDemand":{"description":"Should include on-demand instances in the considered pool.","nullable":true,"type":"boolean"},"os":{"items":{"type":"string"},"title":"Instance type Operating System constraints - if empty or null then default to \"linux\" only","type":"array"},"spot":{"description":"Should include spot instances in the considered pool.\nNote 1: if both spot and on-demand are false, then on-demand is assumed.\nNote 2: if both spot and on-demand are true, then you can specify which lifecycle you want by adding\n nodeSelector:\n scheduling.cast.ai/spot: \"true\"\nselector, or an equivalent affinity to the pod manifest and\n tolerations:\n - key: scheduling.cast.ai/spot\n operator: Exists\ntoleration.","nullable":true,"type":"boolean"},"spotDiversityPriceIncreaseLimitPercent":{"description":"Allowed node configuration price increase when diversifying instance types. E.g. if the value is 10%, then the overall price of diversified instance types can be 10% higher than the price of the\noptimal configuration.","format":"int32","nullable":true,"type":"integer"},"spotInterruptionPredictionsEnabled":{"description":"Enable/disable spot interruption predictions.","nullable":true,"type":"boolean"},"spotInterruptionPredictionsType":{"description":"Spot interruption predictions type. Can be either \"aws-rebalance-recommendations\" or \"interruption-predictions\".","nullable":true,"type":"string"},"storageOptimized":{"nullable":true,"title":"Storage optimized instance constraint - will only pick storage optimized nodes if true","type":"boolean"},"useSpotFallbacks":{"description":"Spot instance fallback constraint - when true, on-demand instances will be created, when spots are unavailable.","nullable":true,"type":"boolean"}},"title":"Defines the constraints on a template","type":"object"},"nodetemplates.v1.TemplateConstraints.CustomPriority":{"properties":{"families":{"items":{"type":"string"},"title":"Instance families to prioritize","type":"array"},"onDemand":{"nullable":true,"title":"If set, this priority tier will apply for on-demand instances","type":"boolean"},"spot":{"nullable":true,"title":"If set, this priority tier will apply for spot instances","type":"boolean"}},"type":"object"},"nodetemplates.v1.TemplateConstraints.DedicatedNodeAffinity":{"properties":{"azName":{"title":"The availability zone of the sole tenancy or dedicated node group","type":"string"},"instanceTypes":{"items":{"type":"string"},"title":"The instance/node types of the sole tenancy or dedicated node group","type":"array"},"name":{"title":"The name of the sole tenancy or dedicated node group","type":"string"}},"type":"object"},"nodetemplates.v1.TemplateConstraints.GPUConstraints":{"properties":{"excludeNames":{"items":{"type":"string"},"title":"Names of the GPUs to exclude","type":"array"},"includeNames":{"items":{"type":"string"},"title":"Names of the GPUs to include","type":"array"},"manufacturers":{"items":{"type":"string"},"title":"Manufacturers of the gpus to select - NVIDIA, AMD","type":"array"},"maxCount":{"format":"int32","nullable":true,"title":"Max GPU count for the instance type to have","type":"integer"},"minCount":{"format":"int32","nullable":true,"title":"Min GPU count for the instance type to have","type":"integer"}},"type":"object"},"nodetemplates.v1.TemplateConstraints.InstanceFamilyConstraints":{"properties":{"exclude":{"items":{"type":"string"},"title":"Instance families to exclude when filtering (includes all other families)","type":"array"},"include":{"items":{"type":"string"},"title":"Instance families to include when filtering (excludes all other families)","type":"array"}},"type":"object"},"nodetemplates.v1.UpdateNodeTemplate":{"properties":{"configurationId":{"title":"ID of the selected configuration","type":"string"},"constraints":{"$ref":"#/components/schemas/nodetemplates.v1.TemplateConstraints"},"customInstancesEnabled":{"nullable":true,"title":"Marks whether custom instances should be used when deciding which parts of inventory are available.\nThe flag is only available for GCP clusters","type":"boolean"},"customInstancesWithExtendedMemoryEnabled":{"nullable":true,"title":"Marks whether custom instances with extended memory should be used when deciding which parts of inventory are available.\nThe flag is only available for GCP clusters","type":"boolean"},"customLabel":{"$ref":"#/components/schemas/nodetemplates.v1.Label"},"customLabels":{"additionalProperties":{"type":"string"},"description":"Custom labels for the template.\nThe passed values will be ignored if the field custom_label is present.","type":"object"},"customTaints":{"description":"Custom taints for the template.","items":{"$ref":"#/components/schemas/nodetemplates.v1.TaintWithOptionalEffect"},"type":"array"},"isDefault":{"description":"Flag whether this template is the default template for the cluster.","type":"boolean"},"isEnabled":{"description":"This field is used to enable/disable autoscaling for the template.","nullable":true,"type":"boolean"},"rebalancingConfig":{"$ref":"#/components/schemas/nodetemplates.v1.RebalancingConfiguration"},"shouldTaint":{"description":"Marks whether the templated nodes will have a taint.","nullable":true,"type":"boolean"}},"type":"object"},"policies.v1.ClusterLimitsCpu":{"description":"Defines the minimum and maximum amount of vCPUs for cluster's worker nodes.","properties":{"maxCores":{"default":20,"description":"Defines the maximum allowed amount of vCPUs in the whole cluster.","example":20,"format":"int32","maximum":1000,"minimum":2,"type":"integer"},"minCores":{"default":1,"description":"Defines the minimum allowed amount of CPUs in the whole cluster.","example":1,"format":"int32","maximum":20,"minimum":1,"type":"integer"}},"type":"object"},"policies.v1.ClusterLimitsPolicy":{"description":"Defines minimum and maximum amount of CPU the cluster can have.","properties":{"cpu":{"$ref":"#/components/schemas/policies.v1.ClusterLimitsCpu"},"enabled":{"default":true,"description":"Enable/disable cluster size limits policy.","nullable":true,"type":"boolean"}},"type":"object"},"policies.v1.Evictor":{"description":"Defines the CAST AI Evictor component settings. Evictor watches the pods running in your cluster and looks for\nways to compact them into fewer nodes, making nodes empty, which will be removed by the the empty worker nodes\npolicy.","properties":{"aggressiveMode":{"default":false,"description":"Enable/disable aggressive mode. By default, Evictor does not target nodes that are running unreplicated pods.\nThis mode will make the Evictor start considering application with just a single replica.","nullable":true,"type":"boolean"},"allowed":{"description":"* We have detected an already existing Evictor installation. If you want CAST AI to manage the Evictor instead,\n then you will need to remove the current installation first.\n\nDeprecated; use \"status\" instead.","nullable":true,"readOnly":true,"title":"Indicates whether the Evictor policy is allowed to be turned on. Reasons why it might be disallowed:","type":"boolean"},"cycleInterval":{"default":"1m","description":"Configure the interval duration between Evictor operations. This property can be used to lower or raise the\nfrequency of the Evictor's find-and-drain operations.","example":"5m10s","nullable":true,"type":"string"},"dryRun":{"default":false,"description":"Enable/disable dry-run. This property allows you to prevent the Evictor from carrying any operations out and\npreview the actions it would take.","nullable":true,"type":"boolean"},"enabled":{"default":false,"description":"Enable/disable the Evictor policy. This will either install or uninstall the Evictor component in your cluster.","nullable":true,"type":"boolean"},"ignorePodDisruptionBudgets":{"default":false,"description":"If enabled then Evictor will attempt to evict pods that have pod disruption budgets configured.","nullable":true,"type":"boolean"},"nodeGracePeriodMinutes":{"default":5,"description":"Configure the node grace period which controls the duration which must pass after a node has been created before\nEvictor starts considering that node.","example":10,"format":"int32","nullable":true,"type":"integer"},"podEvictionFailureBackOffInterval":{"default":"5s","description":"Configure the pod eviction failure back off interval. If pod eviction fails then Evictor will attempt\nto evict it again after the amount of time specified here.","example":"1m10s","nullable":true,"type":"string"},"scopedMode":{"default":false,"description":"Enable/disable scoped mode. By default, Evictor targets all nodes in the cluster. This mode will constrain in to\njust the nodes which were created by CAST AI.","nullable":true,"type":"boolean"},"status":{"$ref":"#/components/schemas/policies.v1.EvictorStatus"}},"type":"object"},"policies.v1.EvictorStatus":{"default":"Unknown","enum":["Unknown","Compatible","Incompatible","Missing"],"title":"EvictorStatus defines the discovered state of evictor helm chart","type":"string"},"policies.v1.GetClusterNodeConstraintsResponse":{"description":"Defines cluster node constraints response.","properties":{"clusterId":{"description":"The ID of the cluster.","type":"string"},"items":{"description":"A list of viable CPU:Memory combinations.","items":{"$ref":"#/components/schemas/policies.v1.GetClusterNodeConstraintsResponse.CpuRam"},"type":"array"}},"type":"object"},"policies.v1.GetClusterNodeConstraintsResponse.CpuRam":{"description":"A viable CPU:Memory combination.","properties":{"cpuCores":{"description":"Number of CPUs.","format":"int32","type":"integer"},"ramMib":{"description":"Number of memory in MiB.","format":"int32","type":"integer"}},"type":"object"},"policies.v1.Headroom":{"description":"Defines Headroom for Unschedulable Pods.","properties":{"cpuPercentage":{"default":10,"description":"Defines percentage of additional CPU capacity to be added.","format":"int32","maximum":100,"type":"integer"},"enabled":{"default":true,"description":"Defines whether Headroom is enabled.","nullable":true,"type":"boolean"},"memoryPercentage":{"default":10,"format":"int32","maximum":100,"title":"Defines percentage of additional memory capacity to be added","type":"integer"}},"type":"object"},"policies.v1.NodeConstraints":{"description":"Defines the NodeConstraints that will be applied when autoscaling with UnschedulablePodsPolicy.","properties":{"enabled":{"default":false,"description":"Defines whether NodeConstraints are enabled.","nullable":true,"type":"boolean"},"maxCpuCores":{"default":32,"description":"Defines max CPU cores for the node to pick.","example":32,"format":"int32","type":"integer"},"maxRamMib":{"default":262144,"description":"Defines max RAM in MiB for the node to pick.","example":262144,"format":"int32","type":"integer"},"minCpuCores":{"default":0,"description":"Defines min CPU cores for the node to pick.","example":2,"format":"int32","type":"integer"},"minRamMib":{"default":2048,"description":"Defines min RAM in MiB for the node to pick.","example":2048,"format":"int32","type":"integer"}},"type":"object"},"policies.v1.NodeDownscaler":{"description":"Node Downscaler defines policies for removing nodes based on the configured conditions.","properties":{"emptyNodes":{"$ref":"#/components/schemas/policies.v1.NodeDownscalerEmptyNodes"},"enabled":{"default":true,"description":"Enable/disable node downscaler policy.","nullable":true,"type":"boolean"},"evictor":{"$ref":"#/components/schemas/policies.v1.Evictor"}},"type":"object"},"policies.v1.NodeDownscalerEmptyNodes":{"description":"Defines whether Node Downscaler should opt in for removing empty worker nodes when possible.","properties":{"delaySeconds":{"default":0,"description":"* increasing the value will make the cluster more responsive to dynamic\n* workloads in the expense of higher cluster cost.","format":"int32","nullable":true,"title":"Period (in seconds) to wait before removing the node. Might be useful to control the aggressiveness of\nthe downscaler:","type":"integer"},"enabled":{"default":false,"description":"Enable/disable the empty worker nodes policy.","nullable":true,"type":"boolean"}},"type":"object"},"policies.v1.Policies":{"description":"Defines the autoscaling policies details.","properties":{"clusterLimits":{"$ref":"#/components/schemas/policies.v1.ClusterLimitsPolicy"},"enabled":{"default":false,"description":"Enable/disable all policies.","nullable":true,"type":"boolean"},"isScopedMode":{"default":false,"description":"Run autoscaler in scoped mode. Only specifically marked pods will be considered for autoscaling, and only nodes\nprovisioned by autoscaler will be considered for downscaling.","nullable":true,"type":"boolean"},"nodeDownscaler":{"$ref":"#/components/schemas/policies.v1.NodeDownscaler"},"nodeTemplatesPartialMatchingEnabled":{"default":false,"description":"Marks whether partial matching should be used when deciding which custom node template to select.","nullable":true,"type":"boolean"},"spotInstances":{"$ref":"#/components/schemas/policies.v1.SpotInstances"},"unschedulablePods":{"$ref":"#/components/schemas/policies.v1.UnschedulablePodsPolicy"}},"type":"object"},"policies.v1.SpotBackups":{"description":"Policy defining whether autoscaler can use spot backups instead of spot instances when spot instances are not\navailable.","properties":{"enabled":{"default":false,"description":"Enable/disable spot backups policy.","nullable":true,"type":"boolean"},"spotBackupRestoreRateSeconds":{"default":1800,"description":"Defines interval on how often spot backups restore to real spot should occur.","format":"int32","minimum":60,"nullable":true,"type":"integer"}},"type":"object"},"policies.v1.SpotInstances":{"description":"Policy defining whether autoscaler can use spot instances for provisioning additional workloads.","properties":{"enabled":{"default":false,"description":"Enable/disable spot instances policy.","nullable":true,"type":"boolean"},"maxReclaimRate":{"default":0,"description":"Max allowed reclaim rate when choosing spot instance type. E.g. if the value is 10%, instance types having 10% or\nhigher reclaim rate will not be considered. Set to zero to use all instance types regardless of reclaim rate.","format":"int32","nullable":true,"type":"integer"},"spotBackups":{"$ref":"#/components/schemas/policies.v1.SpotBackups"},"spotDiversityEnabled":{"default":false,"description":"Enable/disable spot diversity policy.\n\nWhen enabled, autoscaler will try to balance between diverse and cost optimal instance types.","nullable":true,"type":"boolean"},"spotDiversityPriceIncreaseLimitPercent":{"default":20,"description":"Allowed node configuration price increase when diversifying instance types.\nE.g. if the value is 10%, then the overall price of diversified instance types can be 10% higher than the price of the optimal configuration.","example":20,"format":"int32","minimum":1,"nullable":true,"type":"integer"},"spotInterruptionPredictions":{"$ref":"#/components/schemas/policies.v1.SpotInterruptionPredictions"}},"type":"object"},"policies.v1.SpotInterruptionPredictions":{"description":"SpotInterruptionPredictions allows to configure the handling of SPOT interrupt predictions.","properties":{"enabled":{"default":false,"description":"Enable/disable spot interruption predictions.","type":"boolean"},"type":{"$ref":"#/components/schemas/policies.v1.SpotInterruptionPredictionsType"}},"type":"object"},"policies.v1.SpotInterruptionPredictionsType":{"default":"AWSRebalanceRecommendations","description":"SpotInterruptionPredictionsType defines the type of the SPOT interruption predictions to enable.","enum":["AWSRebalanceRecommendations","CASTAIInterruptionPredictions"],"type":"string"},"policies.v1.UnschedulablePodsPolicy":{"description":"Policy defining autoscaler's behavior when unscedulable pods were detected.","properties":{"customInstancesEnabled":{"description":"Defines custom instance usage settings.","nullable":true,"type":"boolean"},"diskGibToCpuRatio":{"default":5,"description":"Defines default ratio of 1 CPU to Volume GiB which will be summed with minimum value when creating new nodes.\nIf set to 5, the ration would be: 1 CPU : 5 GiB.\nFor example a node with 16 CPU would have (16 * 5 GiB) + minimum(100GiB) = 180 GiB volume size.\nDeprecated. Input only (for backwards-compatibility, ignored).","format":"int32","nullable":true,"type":"integer"},"enabled":{"default":false,"description":"Enable/disable unschedulable pods detection policy.","nullable":true,"type":"boolean"},"headroom":{"$ref":"#/components/schemas/policies.v1.Headroom"},"headroomSpot":{"$ref":"#/components/schemas/policies.v1.Headroom"},"nodeConstraints":{"$ref":"#/components/schemas/policies.v1.NodeConstraints"}},"type":"object"},"runtime.v1.AckAnomaliesResponse":{"type":"object"},"runtime.v1.Anomaly":{"properties":{"ackedAt":{"format":"date-time","type":"string"},"assignedUser":{"type":"string"},"closedAt":{"format":"date-time","type":"string"},"closedReason":{"$ref":"#/components/schemas/runtime.v1.CloseReason"},"closedReasonDescription":{"type":"string"},"clusterId":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"id":{"type":"string"},"name":{"description":"Human readable name of the anomaly.","type":"string"},"namespace":{"type":"string"},"status":{"$ref":"#/components/schemas/runtime.v1.AnomalyStatus"},"type":{"title":"Type of the anomaly, eg (general:oom_killed, crypto_mining:binary_executed)","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"workload":{"type":"string"}},"type":"object"},"runtime.v1.AnomalyEvent":{"properties":{"containerName":{"type":"string"},"dns":{"$ref":"#/components/schemas/runtime.v1.DNSAnomaly"},"eventName":{"description":"Human readable name of the event related to anomaly..","type":"string"},"eventType":{"title":"Type of the event, eg (tcp_connect, dns, exec, process_oom_killed)","type":"string"},"exec":{"$ref":"#/components/schemas/runtime.v1.ExecAnomaly"},"file":{"$ref":"#/components/schemas/runtime.v1.FileAnomaly"},"id":{"type":"string"},"namespace":{"description":"Kubernetes Fields.","type":"string"},"podName":{"type":"string"},"process":{"description":"Process name.","type":"string"},"ruleName":{"description":"Human readable rule name which triggered anomaly.","type":"string"},"tcp":{"$ref":"#/components/schemas/runtime.v1.TCPAnomaly"},"timestamp":{"format":"date-time","type":"string"}},"type":"object"},"runtime.v1.AnomalyStatus":{"default":"ANOMALY_STATUS_UNSPECIFIED","enum":["ANOMALY_STATUS_UNSPECIFIED","ANOMALY_STATUS_OPEN","ANOMALY_STATUS_ACKED","ANOMALY_STATUS_CLOSED"],"type":"string"},"runtime.v1.CloseAnomaliesResponse":{"type":"object"},"runtime.v1.CloseReason":{"default":"CLOSE_REASON_UNSPECIFIED","enum":["CLOSE_REASON_UNSPECIFIED","CLOSE_REASON_FALSE_POSITIVE","CLOSE_REASON_RESOLVED","CLOSE_REASON_OTHER"],"type":"string"},"runtime.v1.DNSAnomaly":{"properties":{"answers":{"items":{"type":"string"},"type":"array"},"question":{"type":"string"}},"type":"object"},"runtime.v1.ExecAnomaly":{"properties":{"args":{"items":{"type":"string"},"type":"array"},"filePath":{"type":"string"}},"type":"object"},"runtime.v1.FileAnomaly":{"properties":{"filePath":{"type":"string"},"operation":{"type":"string"}},"type":"object"},"runtime.v1.GetAnomaliesOverviewResponse":{"properties":{"acked":{"format":"int32","type":"integer"},"closed":{"format":"int32","type":"integer"},"open":{"format":"int32","type":"integer"}},"type":"object"},"runtime.v1.GetAnomaliesResponse":{"properties":{"anomalies":{"items":{"$ref":"#/components/schemas/runtime.v1.Anomaly"},"type":"array"},"count":{"format":"int32","type":"integer"},"nextCursor":{"type":"string"},"previousCursor":{"type":"string"}},"type":"object"},"runtime.v1.GetAnomalyResponse":{"properties":{"anomaly":{"$ref":"#/components/schemas/runtime.v1.Anomaly"},"events":{"items":{"$ref":"#/components/schemas/runtime.v1.AnomalyEvent"},"type":"array"}},"type":"object"},"runtime.v1.GetKvisordScriptResponse":{"properties":{"script":{"type":"string"}},"type":"object"},"runtime.v1.TCPAnomaly":{"properties":{"dstDomain":{"type":"string"},"dstIp":{"type":"string"},"dstPort":{"format":"int64","type":"integer"}},"type":"object"},"scheduledrebalancing.v1.DeleteRebalancingJobResponse":{"type":"object"},"scheduledrebalancing.v1.DeleteRebalancingScheduleResponse":{"type":"object"},"scheduledrebalancing.v1.ExecutionConditions":{"description":"Defines the conditions which must be met in order to fully execute the plan.","properties":{"achievedSavingsPercentage":{"description":"Identifies the minimum percentage of predicted savings that should be achieved.\nThe rebalancing plan will not proceed after creating the nodes if the achieved savings percentage\nis not achieved.\nThis field's value will not be considered if the initially predicted savings are negative.","format":"int32","type":"integer"},"enabled":{"type":"boolean"}},"type":"object"},"scheduledrebalancing.v1.JobStatus":{"default":"JobStatusPending","description":"JobStatus defines rebalancing job's last execution status.","enum":["JobStatusPending","JobStatusInProgress","JobStatusFinished","JobStatusFailed","JobStatusSkipped"],"type":"string"},"scheduledrebalancing.v1.LaunchConfiguration":{"properties":{"nodeTtlSeconds":{"description":"Specifies amount of time since node creation before the node is allowed to be considered for automated rebalancing.","format":"int32","type":"integer"},"numTargetedNodes":{"description":"Maximum number of nodes that will be selected for rebalancing.","format":"int32","type":"integer"},"rebalancingOptions":{"$ref":"#/components/schemas/scheduledrebalancing.v1.RebalancingOptions"},"selector":{"$ref":"#/components/schemas/scheduledrebalancing.v1.NodeSelector"}},"type":"object"},"scheduledrebalancing.v1.ListAvailableRebalancingTZResponse":{"properties":{"timeZones":{"items":{"$ref":"#/components/schemas/scheduledrebalancing.v1.TimeZone"},"type":"array"}},"type":"object"},"scheduledrebalancing.v1.ListRebalancingJobsResponse":{"properties":{"jobs":{"items":{"$ref":"#/components/schemas/scheduledrebalancing.v1.RebalancingJob"},"type":"array"}},"type":"object"},"scheduledrebalancing.v1.ListRebalancingSchedulesResponse":{"properties":{"schedules":{"items":{"$ref":"#/components/schemas/scheduledrebalancing.v1.RebalancingSchedule"},"type":"array"}},"type":"object"},"scheduledrebalancing.v1.Node":{"properties":{"id":{"readOnly":true,"type":"string"}},"type":"object"},"scheduledrebalancing.v1.NodeSelector":{"properties":{"nodeSelectorTerms":{"description":"Required. A list of node selector terms. The terms are ORed.","items":{"$ref":"#/components/schemas/scheduledrebalancing.v1.NodeSelectorTerm"},"type":"array"}},"title":"A node selector represents the union of the results of one or more label queries\nover a set of nodes; that is, it represents the OR of the selectors represented\nby the node selector terms.\n+structType=atomic","type":"object"},"scheduledrebalancing.v1.NodeSelectorRequirement":{"description":"A node selector requirement is a selector that contains values, a key, and an operator\nthat relates the key and values.","properties":{"key":{"description":"The label key that the selector applies to.","nullable":true,"type":"string"},"operator":{"description":"Represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.","nullable":true,"type":"string"},"values":{"items":{"type":"string"},"title":"An array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. If the operator is Gt or Lt, the values\narray must have a single element, which will be interpreted as an integer.\nThis array is replaced during a strategic merge patch.\n+optional","type":"array"}},"type":"object"},"scheduledrebalancing.v1.NodeSelectorTerm":{"properties":{"matchExpressions":{"items":{"$ref":"#/components/schemas/scheduledrebalancing.v1.NodeSelectorRequirement"},"title":"A list of node selector requirements by node's labels.\n+optional","type":"array"},"matchFields":{"items":{"$ref":"#/components/schemas/scheduledrebalancing.v1.NodeSelectorRequirement"},"title":"A list of node selector requirements by node's fields.\n+optional","type":"array"}},"title":"A null or empty node selector term matches no objects. The requirements of\nthem are ANDed.\nThe TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\n+structType=atomic","type":"object"},"scheduledrebalancing.v1.PreviewRebalancingScheduleResponse":{"properties":{"affectedNodes":{"items":{"$ref":"#/components/schemas/scheduledrebalancing.v1.Node"},"type":"array"},"willTriggerAt":{"items":{"format":"date-time","type":"string"},"type":"array"}},"type":"object"},"scheduledrebalancing.v1.RebalancingJob":{"properties":{"clusterId":{"readOnly":true,"title":"ID of a cluster that will be rebalanced once this job triggers","type":"string"},"enabled":{"description":"Specifies if job is currently enabled; disabled jobs are not triggered.","nullable":true,"type":"boolean"},"id":{"readOnly":true,"type":"string"},"lastTriggerAt":{"format":"date-time","nullable":true,"readOnly":true,"title":"Reflects the last time the job was executed","type":"string"},"nextTriggerAt":{"format":"date-time","nullable":true,"readOnly":true,"title":"Reflects the next time the job will be executed","type":"string"},"rebalancingPlanId":{"readOnly":true,"title":"ID of rebalancing plan: whenever job triggers, this value is updated once rebalancing plan is available,\nand will remain set until it is reset next time the job re-triggers;","type":"string"},"rebalancingScheduleId":{"title":"ID of schedule associated with this job","type":"string"},"status":{"$ref":"#/components/schemas/scheduledrebalancing.v1.JobStatus"}},"type":"object"},"scheduledrebalancing.v1.RebalancingOptions":{"properties":{"evictGracefully":{"description":"Defines whether the nodes that failed to get drained until a predefined timeout, will be kept with a\nrebalancing.cast.ai/status=drain-failed annotation instead of forcefully drained.","nullable":true,"type":"boolean"},"executionConditions":{"$ref":"#/components/schemas/scheduledrebalancing.v1.ExecutionConditions"},"keepDrainTimeoutNodes":{"nullable":true,"title":"Deprecated, use evictGracefully instead","type":"boolean"},"minNodes":{"description":"Minimum number of nodes that should be kept in the cluster after rebalancing.","format":"int32","type":"integer"}},"type":"object"},"scheduledrebalancing.v1.RebalancingSchedule":{"properties":{"id":{"readOnly":true,"type":"string"},"jobs":{"items":{"$ref":"#/components/schemas/scheduledrebalancing.v1.RebalancingJob"},"readOnly":true,"title":"Rebalancing jobs associated with this schedule","type":"array"},"lastTriggerAt":{"format":"date-time","nullable":true,"readOnly":true,"title":"Indicates the last time time this schedule triggered all of it's jobs","type":"string"},"launchConfiguration":{"$ref":"#/components/schemas/scheduledrebalancing.v1.LaunchConfiguration"},"name":{"title":"Schedule name. Must be unique per-organization","type":"string"},"nextTriggerAt":{"format":"date-time","readOnly":true,"title":"Indicates the time when all jobs for this schedule will re-trigger","type":"string"},"schedule":{"$ref":"#/components/schemas/scheduledrebalancing.v1.Schedule"},"triggerConditions":{"$ref":"#/components/schemas/scheduledrebalancing.v1.TriggerConditions"}},"required":["launchConfiguration","name","schedule","triggerConditions"],"type":"object"},"scheduledrebalancing.v1.RebalancingScheduleUpdate":{"properties":{"launchConfiguration":{"$ref":"#/components/schemas/scheduledrebalancing.v1.LaunchConfiguration"},"name":{"title":"Specify new name to rename the schedule","type":"string"},"schedule":{"$ref":"#/components/schemas/scheduledrebalancing.v1.Schedule"},"triggerConditions":{"$ref":"#/components/schemas/scheduledrebalancing.v1.TriggerConditions"}},"type":"object"},"scheduledrebalancing.v1.Schedule":{"properties":{"cron":{"title":"Defines when the schedule should be triggered","type":"string"}},"required":["cron"],"type":"object"},"scheduledrebalancing.v1.TimeZone":{"properties":{"name":{"title":"Time zone name, e.g. \"America/Los_Angeles\"","type":"string"},"offset":{"title":"Time zone offset, e.g. -04:00 for \"America/Los_Angeles\"","type":"string"}},"type":"object"},"scheduledrebalancing.v1.TriggerConditions":{"properties":{"savingsPercentage":{"format":"float","title":"Defines minimum number of savings expected","type":"number"}},"type":"object"},"workloadoptimization.v1.ApplyType":{"default":"UNKNOWN","enum":["UNKNOWN","IMMEDIATE","DEFERRED"],"title":"Defines possible recommendation apply type options.\nIMMEDIATE - when a new recommendation for a workload is generated a pod restart will be initiated immediately\nDEFERRED - when a new recommendation for a workload is generated pods are not restarted immediately, instead natural restarts(pod crash, new deployment, etc.) are utilized to apply new\nrecommendation values","type":"string"},"workloadoptimization.v1.AssignScalingPolicyWorkloadsResponse":{"type":"object"},"workloadoptimization.v1.ConfigurationChangedEvent":{"properties":{"managementOption":{"$ref":"#/components/schemas/workloadoptimization.v1.ManagementOption"},"recommendationConfig":{"$ref":"#/components/schemas/workloadoptimization.v1.RecommendationConfig"}},"required":["managementOption","recommendationConfig"],"type":"object"},"workloadoptimization.v1.Container":{"properties":{"name":{"description":"Name of the container.","type":"string"},"recommendation":{"$ref":"#/components/schemas/workloadoptimization.v1.Resources"},"resources":{"$ref":"#/components/schemas/workloadoptimization.v1.Resources"}},"required":["name"],"type":"object"},"workloadoptimization.v1.DeleteWorkloadScalingPolicyResponse":{"type":"object"},"workloadoptimization.v1.Event":{"properties":{"configurationChanged":{"$ref":"#/components/schemas/workloadoptimization.v1.ConfigurationChangedEvent"},"oomKill":{"$ref":"#/components/schemas/workloadoptimization.v1.OOMKillEvent"},"recommendationApplied":{"$ref":"#/components/schemas/workloadoptimization.v1.RecommendationAppliedEvent"},"surge":{"$ref":"#/components/schemas/workloadoptimization.v1.SurgeEvent"}},"type":"object"},"workloadoptimization.v1.EventContainer":{"properties":{"name":{"type":"string"},"resources":{"$ref":"#/components/schemas/workloadoptimization.v1.Resources"}},"required":["name","resources"],"type":"object"},"workloadoptimization.v1.EventType":{"default":"EVENT_TYPE_INVALID","description":"EventType defines possible types for workload events.","enum":["EVENT_TYPE_INVALID","EVENT_TYPE_CONFIGURATION_CHANGED","EVENT_TYPE_RECOMMENDATION_APPLIED","EVENT_TYPE_SURGE","EVENT_TYPE_OOM_KILL"],"type":"string"},"workloadoptimization.v1.GetAgentStatusResponse":{"properties":{"status":{"$ref":"#/components/schemas/workloadoptimization.v1.GetAgentStatusResponse.AgentStatus"}},"required":["status"],"type":"object"},"workloadoptimization.v1.GetAgentStatusResponse.AgentStatus":{"default":"AGENT_STATUS_INVALID","description":"AgentStatus defines the status of workload-autoscaler.","enum":["AGENT_STATUS_INVALID","AGENT_STATUS_UNKNOWN","AGENT_STATUS_RUNNING"],"type":"string"},"workloadoptimization.v1.GetInstallCmdResponse":{"properties":{"script":{"type":"string"}},"required":["script"],"type":"object"},"workloadoptimization.v1.GetWorkloadResponse":{"properties":{"metrics":{"$ref":"#/components/schemas/workloadoptimization.v1.WorkloadMetrics"},"workload":{"$ref":"#/components/schemas/workloadoptimization.v1.Workload"}},"required":["workload"],"type":"object"},"workloadoptimization.v1.InitiatedBy":{"properties":{"email":{"nullable":true,"type":"string"},"id":{"type":"string"},"name":{"nullable":true,"type":"string"}},"required":["id"],"type":"object"},"workloadoptimization.v1.KeyValuePair":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"workloadoptimization.v1.ListWorkloadEventsResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/workloadoptimization.v1.WorkloadEvent"},"type":"array"},"nextCursor":{"description":"The token to request the next page of results.","nullable":true,"type":"string"}},"required":["items"],"type":"object"},"workloadoptimization.v1.ListWorkloadScalingPoliciesResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/workloadoptimization.v1.WorkloadScalingPolicy"},"type":"array"}},"required":["items"],"type":"object"},"workloadoptimization.v1.ListWorkloadsResponse":{"properties":{"workloads":{"items":{"$ref":"#/components/schemas/workloadoptimization.v1.Workload"},"type":"array"}},"required":["workloads"],"type":"object"},"workloadoptimization.v1.ManagementOption":{"default":"UNDEFINED","description":"Defines possible options for workload management.\nREAD_ONLY - workload watched (metrics collected), but no actions may be performed by CAST AI.\nMANAGED - workload watched (metrics collected), CAST AI may perform actions on the workload.","enum":["UNDEFINED","READ_ONLY","MANAGED"],"type":"string"},"workloadoptimization.v1.NewWorkloadScalingPolicy":{"properties":{"applyType":{"$ref":"#/components/schemas/workloadoptimization.v1.ApplyType"},"name":{"title":"The scaling policy name must be unique within a cluster and adhere to the format guidelines of Kubernetes labels/annotations.\nIt should have a maximum length of 63 characters and begin and end with an alphanumeric character.\nAdditionally, it can include alphanumeric characters, periods (.), underscores (_), or hyphens (-). For reference on the formatting, please visit:\nhttps://kubernetes.io/docs/concepts/overview/working-with-objects/labels/","type":"string"},"recommendationPolicies":{"$ref":"#/components/schemas/workloadoptimization.v1.RecommendationPolicies"}},"required":["applyType","name","recommendationPolicies"],"type":"object"},"workloadoptimization.v1.OOMKillEvent":{"properties":{"containers":{"items":{"$ref":"#/components/schemas/workloadoptimization.v1.EventContainer"},"type":"array"}},"required":["containers"],"type":"object"},"workloadoptimization.v1.RecommendationAppliedEvent":{"properties":{"current":{"$ref":"#/components/schemas/workloadoptimization.v1.RecommendationAppliedEvent.Change"},"previous":{"$ref":"#/components/schemas/workloadoptimization.v1.RecommendationAppliedEvent.Change"}},"required":["current","previous"],"type":"object"},"workloadoptimization.v1.RecommendationAppliedEvent.Change":{"properties":{"containers":{"items":{"$ref":"#/components/schemas/workloadoptimization.v1.EventContainer"},"type":"array"}},"type":"object"},"workloadoptimization.v1.RecommendationConfig":{"properties":{"cpu":{"$ref":"#/components/schemas/workloadoptimization.v1.ResourceConfig"},"memory":{"$ref":"#/components/schemas/workloadoptimization.v1.ResourceConfig"}},"required":["cpu","memory"],"type":"object"},"workloadoptimization.v1.RecommendationPolicies":{"properties":{"cpu":{"$ref":"#/components/schemas/workloadoptimization.v1.ResourcePolicies"},"managementOption":{"$ref":"#/components/schemas/workloadoptimization.v1.ManagementOption"},"memory":{"$ref":"#/components/schemas/workloadoptimization.v1.ResourcePolicies"}},"required":["cpu","managementOption","memory"],"type":"object"},"workloadoptimization.v1.ResourceConfig":{"properties":{"applyThreshold":{"description":"The threshold of when to apply the recommendation - when diff of current requests and recommendation is greater than this, apply the recommendation.","format":"float","nullable":true,"type":"number"},"args":{"description":"The arguments for the function - i.e. for a quantile, this should be a [0, 1] float.","items":{"type":"string"},"type":"array"},"function":{"$ref":"#/components/schemas/workloadoptimization.v1.ResourceConfig.Function"},"max":{"description":"Max values for the recommendation. For memory - this is in MiB, for CPU - this is in cores.\nIf not set, there will be no upper bound for the recommendation (default behaviour).","format":"double","nullable":true,"type":"number"},"min":{"description":"Min values for the recommendation. For memory - this is in MiB, for CPU - this is in cores.\nIf not set, there will be no lower bound for the recommendation (default behaviour).","format":"double","nullable":true,"type":"number"},"overhead":{"description":"The overhead for the recommendation, the formula is: (1 + overhead) * function(args).","format":"float","type":"number"}},"required":["args","function","overhead"],"type":"object"},"workloadoptimization.v1.ResourceConfig.Function":{"default":"QUANTILE","description":"The function which to use when calculating the resource recommendation.\nQUANTILE - the quantile function.\nMAX - the max function.","enum":["QUANTILE","MAX"],"type":"string"},"workloadoptimization.v1.ResourceConfigUpdate":{"properties":{"max":{"description":"Max values for the recommendation. For memory - this is in MiB, for CPU - this is in cores.\nIf not set, there will be no upper bound for the recommendation (default behaviour).","format":"double","nullable":true,"type":"number"},"min":{"description":"Min values for the recommendation. For memory - this is in MiB, for CPU - this is in cores.\nIf not set, there will be no lower bound for the recommendation (default behaviour).","format":"double","nullable":true,"type":"number"}},"type":"object"},"workloadoptimization.v1.ResourceMetrics":{"properties":{"max":{"format":"double","type":"number"},"min":{"format":"double","type":"number"},"p25":{"format":"double","type":"number"},"p50":{"format":"double","type":"number"},"p75":{"format":"double","type":"number"},"rec":{"format":"double","type":"number"},"req":{"format":"double","type":"number"},"timestamp":{"format":"date-time","type":"string"}},"required":["max","min","p25","p50","p75","rec","req","timestamp"],"type":"object"},"workloadoptimization.v1.ResourcePolicies":{"properties":{"applyThreshold":{"description":"The threshold of when to apply the recommendation - when diff of current requests and recommendation is greater than this, apply the recommendation.","format":"float","type":"number"},"args":{"description":"The arguments for the function - i.e. for a quantile, this should be a [0, 1] float.","items":{"type":"string"},"type":"array"},"function":{"$ref":"#/components/schemas/workloadoptimization.v1.ResourcePolicies.Function"},"overhead":{"description":"The overhead for the recommendation, the formula is: (1 + overhead) * function(args).","format":"float","type":"number"}},"required":["applyThreshold","args","function","overhead"],"type":"object"},"workloadoptimization.v1.ResourcePolicies.Function":{"default":"QUANTILE","description":"The function which to use when calculating the resource recommendation.\nQUANTILE - the quantile function.\nMAX - the max function.","enum":["QUANTILE","MAX"],"type":"string"},"workloadoptimization.v1.ResourceQuantity":{"properties":{"cpuCores":{"format":"double","nullable":true,"type":"number"},"memoryGib":{"format":"double","nullable":true,"type":"number"}},"type":"object"},"workloadoptimization.v1.Resources":{"properties":{"limits":{"$ref":"#/components/schemas/workloadoptimization.v1.ResourceQuantity"},"requests":{"$ref":"#/components/schemas/workloadoptimization.v1.ResourceQuantity"}},"type":"object"},"workloadoptimization.v1.SurgeContainer":{"properties":{"name":{"type":"string"},"surge":{"$ref":"#/components/schemas/workloadoptimization.v1.ResourceQuantity"}},"required":["name","surge"],"type":"object"},"workloadoptimization.v1.SurgeEvent":{"properties":{"containers":{"items":{"$ref":"#/components/schemas/workloadoptimization.v1.SurgeContainer"},"type":"array"}},"required":["containers"],"type":"object"},"workloadoptimization.v1.UpdateWorkload":{"properties":{"managementOption":{"$ref":"#/components/schemas/workloadoptimization.v1.ManagementOption"},"recommendationConfig":{"$ref":"#/components/schemas/workloadoptimization.v1.RecommendationConfig"},"scalingPolicyId":{"nullable":true,"title":"sets scaling policy ID of the workload","type":"string"},"workloadConfig":{"$ref":"#/components/schemas/workloadoptimization.v1.WorkloadConfigUpdate"}},"type":"object"},"workloadoptimization.v1.UpdateWorkloadResponse":{"properties":{"workload":{"$ref":"#/components/schemas/workloadoptimization.v1.Workload"}},"type":"object"},"workloadoptimization.v1.UpdateWorkloadScalingPolicy":{"properties":{"applyType":{"$ref":"#/components/schemas/workloadoptimization.v1.ApplyType"},"name":{"title":"The scaling policy name must be unique within a cluster and adhere to the format guidelines of Kubernetes labels/annotations.\nIt should have a maximum length of 63 characters and begin and end with an alphanumeric character.\nAdditionally, it can include alphanumeric characters, periods (.), underscores (_), or hyphens (-). For reference on the formatting, please visit:\nhttps://kubernetes.io/docs/concepts/overview/working-with-objects/labels/","type":"string"},"recommendationPolicies":{"$ref":"#/components/schemas/workloadoptimization.v1.RecommendationPolicies"}},"required":["applyType","name","recommendationPolicies"],"type":"object"},"workloadoptimization.v1.Workload":{"properties":{"annotations":{"description":"Annotations as defined on the workload manifest. These are annotations from the controller meta, not the pod meta.","items":{"$ref":"#/components/schemas/workloadoptimization.v1.KeyValuePair"},"type":"array"},"clusterId":{"type":"string"},"containers":{"description":"Workload containers.","items":{"$ref":"#/components/schemas/workloadoptimization.v1.Container"},"type":"array"},"createdAt":{"format":"date-time","type":"string"},"desiredPodCount":{"description":"Desired pod count stores the number of pods the workload should have, as defined on the workload spec.","format":"int32","type":"integer"},"error":{"description":"Workload error state (if any).\nErrors can happen if CAST AI is unable to apply the recommendation for the workload.","nullable":true,"type":"string"},"group":{"type":"string"},"id":{"type":"string"},"kind":{"type":"string"},"labels":{"description":"Labels as defined on the workload manifest. These are labels from the controller meta, not the pod meta.","items":{"$ref":"#/components/schemas/workloadoptimization.v1.KeyValuePair"},"type":"array"},"managementOption":{"$ref":"#/components/schemas/workloadoptimization.v1.ManagementOption"},"name":{"type":"string"},"namespace":{"type":"string"},"organizationId":{"type":"string"},"podCount":{"description":"Pod count stores the *running* count of pods of the workload.","format":"int32","type":"integer"},"recommendationConfidence":{"description":"Defines the confidence of the recommendation. Value between 0 and 1. 1 means max confidence, 0 means no confidence.\nThis value indicates how many metrics were collected versus expected for the workload, given the recommendation configuration.","format":"float","nullable":true,"type":"number"},"recommendationConfig":{"$ref":"#/components/schemas/workloadoptimization.v1.RecommendationConfig"},"scalingPolicyId":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"},"version":{"type":"string"},"workloadConfig":{"$ref":"#/components/schemas/workloadoptimization.v1.WorkloadConfig"}},"required":["annotations","clusterId","containers","createdAt","desiredPodCount","group","id","kind","labels","managementOption","name","namespace","organizationId","podCount","recommendationConfig","scalingPolicyId","updatedAt","version","workloadConfig"],"type":"object"},"workloadoptimization.v1.WorkloadConfig":{"properties":{"cpu":{"$ref":"#/components/schemas/workloadoptimization.v1.ResourceConfig"},"managementOption":{"$ref":"#/components/schemas/workloadoptimization.v1.ManagementOption"},"memory":{"$ref":"#/components/schemas/workloadoptimization.v1.ResourceConfig"}},"required":["cpu","managementOption","memory"],"type":"object"},"workloadoptimization.v1.WorkloadConfigUpdate":{"properties":{"cpu":{"$ref":"#/components/schemas/workloadoptimization.v1.ResourceConfigUpdate"},"managementOption":{"$ref":"#/components/schemas/workloadoptimization.v1.ManagementOption"},"memory":{"$ref":"#/components/schemas/workloadoptimization.v1.ResourceConfigUpdate"}},"type":"object"},"workloadoptimization.v1.WorkloadEvent":{"properties":{"clusterId":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"event":{"$ref":"#/components/schemas/workloadoptimization.v1.Event"},"id":{"type":"string"},"initiatedBy":{"$ref":"#/components/schemas/workloadoptimization.v1.InitiatedBy"},"organizationId":{"type":"string"},"type":{"$ref":"#/components/schemas/workloadoptimization.v1.EventType"},"workload":{"$ref":"#/components/schemas/workloadoptimization.v1.WorkloadEvent.Workload"}},"required":["clusterId","createdAt","event","id","organizationId","type","workload"],"type":"object"},"workloadoptimization.v1.WorkloadEvent.Workload":{"properties":{"id":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"}},"required":["id","kind","name","namespace"],"type":"object"},"workloadoptimization.v1.WorkloadMetricContainer":{"properties":{"cpuCores":{"items":{"$ref":"#/components/schemas/workloadoptimization.v1.ResourceMetrics"},"type":"array"},"memoryGib":{"items":{"$ref":"#/components/schemas/workloadoptimization.v1.ResourceMetrics"},"type":"array"},"name":{"type":"string"}},"required":["cpuCores","memoryGib","name"],"type":"object"},"workloadoptimization.v1.WorkloadMetrics":{"properties":{"containers":{"items":{"$ref":"#/components/schemas/workloadoptimization.v1.WorkloadMetricContainer"},"type":"array"}},"required":["containers"],"type":"object"},"workloadoptimization.v1.WorkloadScalingPolicy":{"properties":{"applyType":{"$ref":"#/components/schemas/workloadoptimization.v1.ApplyType"},"clusterId":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"id":{"type":"string"},"isDefault":{"type":"boolean"},"isReadonly":{"type":"boolean"},"name":{"type":"string"},"organizationId":{"type":"string"},"recommendationPolicies":{"$ref":"#/components/schemas/workloadoptimization.v1.RecommendationPolicies"},"updatedAt":{"format":"date-time","type":"string"}},"required":["applyType","clusterId","createdAt","id","isDefault","isReadonly","name","organizationId","recommendationPolicies","updatedAt"],"type":"object"}},"securitySchemes":{"ApiKeyAuth":{"in":"header","name":"X-API-Key","type":"apiKey"},"BearerAuth":{"bearerFormat":"JWT","scheme":"bearer","type":"http"}}},"info":{"description":"### Feature maturity indicators (may appear on resources, operations and request/response fields)\n - **(BETA)** - new or experimental features, subject to change\n - **(Deprecated)** - outdated or replaced features (a reason and removal date will be provided in the description)\n","title":"CAST.AI API documentation","version":"1.0.0"},"openapi":"3.0.1","paths":{"/v1/agent.sh":{"get":{"description":"All parameters are optional. If no parameters are provided, then the script will default to EKS configuration.\n\nThe returned install script can be run in your terminal to install the\n[CASTAI Kubernetes agent](https://github.com/castai/k8s-agent). The script can also be used to update an already\nrunning agent in your cluster.\n\nThe agent supports automatic discovery of cluster properties. However, if you specify at least one of the\nproperties, then all properties for that provider must be specified.\n\nOpenShift (ROSA) supports autodiscovery so choosing it does not require any OpenShift parameters. However, autodiscovery\ncan be turned off by providing the properties explicitly. When any of the OpenShift parameters are provided, then\nall OpenShift parameters must be provided, with the exception of `openshift.runAsUser`, `openshift.runAsGroup` and `openshift.fsGroup`,\nwhich are optional and can be specified without the other parameters.","operationId":"AutoscalerAPIGetAgentScript","parameters":[{"description":"AWS region of your EKS cluster.","in":"query","name":"eks.region","schema":{"type":"string"}},{"description":"Your AWS account id. Can be retrieved by executing `aws sts get-caller-identity`.","in":"query","name":"eks.accountId","schema":{"type":"string"}},{"description":"The name of your EKS cluster.","in":"query","name":"eks.clusterName","schema":{"type":"string"}},{"description":"GCP region of your GKE cluster.","in":"query","name":"gke.region","schema":{"type":"string"}},{"description":"GCP project id in which your GKE cluster is created.","in":"query","name":"gke.projectId","schema":{"type":"string"}},{"description":"The name of your GKE cluster.","in":"query","name":"gke.clusterName","schema":{"type":"string"}},{"description":"Location of your GKE cluster.","in":"query","name":"gke.location","schema":{"type":"string"}},{"description":"Provider of the cluster.","in":"query","name":"provider","schema":{"default":"invalid_provider","enum":["invalid_provider","eks","gke","aks","openshift","kops"],"type":"string"}},{"description":"The Cloud Service Provider (CSP) of your kOps cluster.\n\nPossible values are: `aws`, `gcp`.\n\n - invalid: Invalid.\n - aws: Amazon web services.\n - gcp: Google cloud provider.\n - azure: Microsoft Azure.","in":"query","name":"kops.csp","schema":{"default":"invalid","enum":["invalid","INVALID","aws","AWS","gcp","GCP","azure","AZURE"],"type":"string"}},{"description":"The region of your kOps cluster. Region is CSP specific.","in":"query","name":"kops.region","schema":{"type":"string"}},{"description":"The name of your kOps cluster.","in":"query","name":"kops.clusterName","schema":{"type":"string"}},{"description":"The kOps cluster state store. Only remote S3 state is supported at the moment.","in":"query","name":"kops.stateStore","schema":{"type":"string"}},{"description":"Azure location of your AKS cluster.","in":"query","name":"aks.location","schema":{"type":"string"}},{"description":"Azure resource group where AKS nodes are deployed.","in":"query","name":"aks.nodeResourceGroup","schema":{"type":"string"}},{"description":"Azure account subscription id.","in":"query","name":"aks.subscriptionId","schema":{"type":"string"}},{"description":"The Cloud Service Provider (CSP) of your OpenShift cluster.\n\nPossible values are: `aws`.\n\n - invalid: Invalid.\n - aws: Amazon web services.\n - gcp: Google cloud provider.\n - azure: Microsoft Azure.","in":"query","name":"openshift.csp","schema":{"default":"invalid","enum":["invalid","INVALID","aws","AWS","gcp","GCP","azure","AZURE"],"type":"string"}},{"description":"The region of your OpenShift cluster. Region is CSP specific.","in":"query","name":"openshift.region","schema":{"type":"string"}},{"description":"The name of your OpenShift cluster.","in":"query","name":"openshift.clusterName","schema":{"type":"string"}},{"description":"The OpenShift cluster ID. It can be found in the ClusterVersion object.\n\n[Link to docs](https://docs.openshift.com/container-platform/4.8/support/gathering-cluster-data.html#support-get-cluster-id_gathering-cluster-data).","in":"query","name":"openshift.internalId","schema":{"type":"string"}},{"description":"The uid of the user that runs the agent pod.","in":"query","name":"openshift.runAsUser","schema":{"type":"string"}},{"description":"The gid of the user that runs the agent pod.","in":"query","name":"openshift.runAsGroup","schema":{"type":"string"}},{"description":"The gid of the user that owns the agent pod's volumes.","in":"query","name":"openshift.fsGroup","schema":{"type":"string"}}],"responses":{"200":{"content":{"text/plain":{"example":"curl -H \"Authorization: Token redacted\" \"https://api.cast.ai/v1/agent.yaml?provider=eks\" | kubectl apply -f -"}},"description":"The agent install script."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request. Additional details returned in the error response."}},"summary":"Get a Kubernetes agent install script","tags":["AutoscalerAPI"]}},"/v1/audit":{"get":{"operationId":"AuditAPIListAuditEntries","parameters":[{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}},{"description":"the cluster id to filter by","in":"query","name":"clusterId","schema":{"type":"string"}},{"description":"from_date is a timestamp to filter audits from","in":"query","name":"fromDate","schema":{"format":"date-time","type":"string"}},{"description":"to_date is a timestamp to filter audits to","in":"query","name":"toDate","schema":{"format":"date-time","type":"string"}},{"description":"labels is a map of labels to filter audits by\n\nThis is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18","in":"query","name":"labels","schema":{"type":"string"}},{"description":"operation is a string to filter audits by","in":"query","name":"operation","schema":{"type":"string"}},{"description":"initiated_by_id is a string to filter audits by ID of the user who initiated the operation","in":"query","name":"initiatedById","schema":{"type":"string"}},{"description":"initiated_by_email is a string to filter audits by email of the user who initiated the operation","in":"query","name":"initiatedByEmail","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.audit.v1beta1.ListAuditEntriesResponse"}}},"description":"A successful response."}},"summary":"ListAuditEntries returns audit entries for given cluster.","tags":["AuditAPI"]}},"/v1/auth":{"get":{"description":"Callback endpoint where login flow returns after authentication succeeds on auth0. Not to be called directly.","operationId":"LoginCallback","responses":{"302":{"description":"redirects to `returnTo` that was provided with initial auth request."}},"summary":"Login callback","tags":["AuthAPI"]},"post":{"description":"Redirect browser to AUTH0 login flow, where user authenticates, browser receives authentication cookie, and then user's browser gets redirected to provided `returnTo` URL. From that point on, all API calls don't require additional headers as HTTP-only cookie will be attached to each request.","operationId":"Login","parameters":[{"$ref":"#/components/parameters/returnTo"},{"description":"optional override for URL to redirect browser from auth0 back to backend, for situations where backend is being reached via proxy","in":"query","name":"auth0returnTo","schema":{"type":"string"}},{"description":"optional hint for which screen to use when redirecting to authentication pages.","in":"query","name":"screenHint","schema":{"type":"string"}}],"responses":{"302":{"description":"redirects to login page"}},"summary":"Login","tags":["AuthAPI"]}},"/v1/auth/logout":{"post":{"description":"Close login session, remove relevant cookies and redirect browser to provided URL.","operationId":"Logout","parameters":[{"$ref":"#/components/parameters/returnTo"}],"responses":{"302":{"description":"redirects to `returnTo` url."}},"summary":"Logout","tags":["AuthAPI"]}},"/v1/auth/saml/acs":{"post":{"description":"SAML flow callback invoked after the flow is completed.","operationId":"SamlAcs","responses":{"302":{"description":"redirects to login page"}},"summary":"SAML flow callback","tags":["AuthAPI"]}},"/v1/auth/session":{"get":{"description":"As JS has no access to JWT token, this provides a subset of information about user session.","operationId":"GetSession","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSession"}}},"description":"User is currently logged in"},"401":{"description":"not logged in."}},"summary":"Current login session info","tags":["AuthAPI"]}},"/v1/auth/tokens":{"get":{"operationId":"AuthTokenAPIListAuthTokens","parameters":[{"description":"User id to filter by, if this is set we will only return tokens that have this user id.","in":"query","name":"userId","schema":{"type":"string"}},{"description":"Service account id to filter by, if this is set we will only return tokens that have this service account id ignoring users_id.","in":"query","name":"serviceAccountId","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.authtoken.v1beta1.ListAuthTokensResponse"}}},"description":"A successful response."}},"summary":"Lists user auth tokens.","tags":["AuthTokenAPI"]},"post":{"operationId":"AuthTokenAPICreateAuthToken","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.authtoken.v1beta1.AuthToken"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.authtoken.v1beta1.AuthToken"}}},"description":""}},"summary":"CreateAuthToken creates a new api auth token.","tags":["AuthTokenAPI"],"x-codegen-request-body-name":"item"}},"/v1/auth/tokens/{id}":{"delete":{"operationId":"AuthTokenAPIDeleteAuthToken","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.authtoken.v1beta1.DeleteAuthTokenResponse"}}},"description":"A successful response."}},"summary":"Deletes auth token.","tags":["AuthTokenAPI"]},"get":{"operationId":"AuthTokenAPIGetAuthToken","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.authtoken.v1beta1.AuthToken"}}},"description":""}},"summary":"Retrieves the specified auth token.","tags":["AuthTokenAPI"]},"post":{"operationId":"AuthTokenAPIUpdateAuthToken","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.authtoken.v1beta1.AuthTokenUpdate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.authtoken.v1beta1.AuthToken"}}},"description":""}},"summary":"Updates the specified auth token.","tags":["AuthTokenAPI"],"x-codegen-request-body-name":"item"}},"/v1/billing/sso":{"get":{"description":"Builds URL to use in end-customer's browser session as an iframe. URL will direct to ChargeBee portal session. Can be tailored with specific portal URL. When application/json media type is requested - returns portal session object for generating a chargeBee hosted portal session popup.","operationId":"BillingSso","parameters":[{"description":"Desired destination URL within ChargeBee.\nSee https://apidocs.chargebee.com/docs/api/portal_sessions#create_a_portal_session_forward_url for more details.\n","in":"query","name":"forwardUrl","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortalSession"}}},"description":"customer's chargeBee portal session object."},"302":{"description":"ChargeBee login URL with single-use token in the URL."}},"summary":"Single sign-on of ChargeBee portal.","tags":["BillingAPI"]}},"/v1/billing/subscription":{"get":{"description":"Retrieves user's subscription details from ChargeBee.","operationId":"Subscription","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Subscription"}}},"description":"Subscription details."}},"summary":"Retrieves current user's subscription details.","tags":["BillingAPI"]}},"/v1/billing/subscription/checkout":{"get":{"description":"Builds URL to use in end-customer's browser session as an iframe. URL will direct to ChargeBee default subscription checkout form. When application/json media type is requested - returns hosted page object for generating checkout popup in end-customer's browser session.","operationId":"SubscriptionCheckout","parameters":[{"description":"Checkout specific subscription plan.","in":"query","name":"plan","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostedPage"}}},"description":"subscription checkout hosted page object."},"302":{"description":"Subscription checkout form iframe URL."},"404":{"description":"Desired subscription plan was not found."}},"summary":"Checkout current user's subscription.","tags":["BillingAPI"]}},"/v1/billing/usage-report":{"get":{"operationId":"BillingAPIGetUsageReport","parameters":[{"description":"Start time of resource usage period.","in":"query","name":"period.from","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"End time of resource usage period.","in":"query","name":"period.to","required":true,"schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/billing.v1.GetUsageReportResponse"}}},"description":"A successful response."}},"summary":"GetUsageReport returns resource usage report.","tags":["BillingAPI"]}},"/v1/clusters/{clusterId}/components/workload-autoscaler":{"get":{"operationId":"WorkloadOptimizationAPIGetAgentStatus","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workloadoptimization.v1.GetAgentStatusResponse"}}},"description":"A successful response."}},"summary":"(ALPHA) Returns status of workload-autoscaler agent.","tags":["WorkloadOptimizationAPI"]}},"/v1/clusters/{clusterId}/components/{component}/logs":{"post":{"operationId":"ComponentsAPIIngestLogs","parameters":[{"description":"The ID of the cluster the component is running in.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"The name of the source component for the logs.","in":"path","name":"component","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/components.v1.ComponentLogs"}}},"description":"The logs to ingest.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/components.v1.IngestLogsResponse"}}},"description":"A successful response."}},"summary":"IngestLogs accepts logs from CAST AI components running outside of the mother-ship.","tags":["ComponentsAPI"],"x-codegen-request-body-name":"logs"}},"/v1/clusters/{clusterId}/workload-events":{"get":{"operationId":"WorkloadOptimizationAPIListWorkloadEvents","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"in":"query","name":"workloadId","schema":{"type":"string"}},{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}},{"in":"query","name":"fromDate","schema":{"format":"date-time","type":"string"}},{"in":"query","name":"toDate","schema":{"format":"date-time","type":"string"}},{"in":"query","name":"workloadName","schema":{"type":"string"}},{"explode":true,"in":"query","name":"type","schema":{"items":{"enum":["EVENT_TYPE_INVALID","EVENT_TYPE_CONFIGURATION_CHANGED","EVENT_TYPE_RECOMMENDATION_APPLIED","EVENT_TYPE_SURGE","EVENT_TYPE_OOM_KILL"],"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workloadoptimization.v1.ListWorkloadEventsResponse"}}},"description":"A successful response."}},"summary":"(ALPHA) Returns a list of workload events for given cluster.","tags":["WorkloadOptimizationAPI"]}},"/v1/clusters/{clusterId}/workloads":{"get":{"operationId":"WorkloadOptimizationAPIListWorkloads","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workloadoptimization.v1.ListWorkloadsResponse"}}},"description":"A successful response."}},"summary":"(ALPHA) Returns a list of workloads for the given cluster.","tags":["WorkloadOptimizationAPI"]}},"/v1/clusters/{clusterId}/workloads/{workloadId}":{"get":{"operationId":"WorkloadOptimizationAPIGetWorkload","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"in":"path","name":"workloadId","required":true,"schema":{"type":"string"}},{"in":"query","name":"includeMetrics","schema":{"type":"boolean"}},{"in":"query","name":"fromTime","schema":{"format":"date-time","type":"string"}},{"in":"query","name":"toTime","schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workloadoptimization.v1.GetWorkloadResponse"}}},"description":"A successful response."}},"summary":"(ALPHA) Returns a workload by a given id.","tags":["WorkloadOptimizationAPI"]},"put":{"operationId":"WorkloadOptimizationAPIUpdateWorkload","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"in":"path","name":"workloadId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workloadoptimization.v1.UpdateWorkload"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workloadoptimization.v1.UpdateWorkloadResponse"}}},"description":"A successful response."}},"summary":"(ALPHA) Updates a CAST AI managed workload.","tags":["WorkloadOptimizationAPI"],"x-codegen-request-body-name":"workload"}},"/v1/cost-reports/allocation-group-costs":{"get":{"operationId":"AllocationGroupAPIGetAllocationGroupCostTimedSummaries","parameters":[{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Cluster IDs for filtering. Leave empty for the full list.","explode":true,"in":"query","name":"clusterIds","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetAllocationGroupCostTimedSummariesResponse"}}},"description":"A successful response."}},"summary":"Gets allocation group timed cost summaries.","tags":["AllocationGroupAPI"]}},"/v1/cost-reports/allocation-group-summaries":{"get":{"operationId":"AllocationGroupAPIGetAllocationGroupCostSummaries","parameters":[{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Cluster IDs for filtering. Leave empty for the full list.","explode":true,"in":"query","name":"clusterIds","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetAllocationGroupCostSummariesResponse"}}},"description":"A successful response."}},"summary":"Gets allocation group cost summaries.","tags":["AllocationGroupAPI"]}},"/v1/cost-reports/allocation-groups":{"get":{"operationId":"AllocationGroupAPIListAllocationGroups","parameters":[{"description":"Cluster IDs for filtering. Leave empty for the full list.","explode":true,"in":"query","name":"clusterIds","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.ListAllocationGroupsResponse"}}},"description":"A successful response."}},"summary":"Lists allocation groups.","tags":["AllocationGroupAPI"]},"post":{"operationId":"AllocationGroupAPICreateAllocationGroup","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.AllocationGroupDetails"}}},"description":"Allocation group details","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.AllocationGroup"}}},"description":"Allocation group details"}},"summary":"Creates an allocation group for custom report.","tags":["AllocationGroupAPI"],"x-codegen-request-body-name":"allocationGroup"}},"/v1/cost-reports/allocation-groups-totalcost":{"get":{"operationId":"AllocationGroupAPIGetAllocationGroupTotalCostTimed","parameters":[{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Cluster IDs for filtering. Leave empty for the full list.","explode":true,"in":"query","name":"clusterIds","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetAllocationGroupTotalCostTimedResponse"}}},"description":"A successful response."}},"summary":"Gets allocation groups total cost only.","tags":["AllocationGroupAPI"]}},"/v1/cost-reports/allocation-groups/datatransfer-costs/summary":{"get":{"operationId":"AllocationGroupAPIGetCostAllocationGroupDataTransferSummary","parameters":[{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Cluster IDs for filtering. Leave empty for the full list.","explode":true,"in":"query","name":"clusterIds","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetCostAllocationGroupDataTransferSummaryResponse"}}},"description":"A successful response."}},"summary":"Gets allocation group summary for datatransfer costs.","tags":["AllocationGroupAPI"]}},"/v1/cost-reports/allocation-groups/efficiency/summary":{"get":{"operationId":"AllocationGroupAPIGetAllocationGroupEfficiencySummary","parameters":[{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Cluster IDs for filtering. Leave empty for the full list.","explode":true,"in":"query","name":"clusterIds","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetAllocationGroupEfficiencySummaryResponse"}}},"description":"A successful response."}},"summary":"Gets allocation group efficiency summary.","tags":["AllocationGroupAPI"]}},"/v1/cost-reports/allocation-groups/summary":{"get":{"operationId":"AllocationGroupAPIGetCostAllocationGroupSummary","parameters":[{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Cluster IDs for filtering. Leave empty for the full list.","explode":true,"in":"query","name":"clusterIds","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetCostAllocationGroupSummaryResponse"}}},"description":"A successful response."}},"summary":"Deprecated: use /v1/cost-reports/allocation-groups-summaries or /v1/cost-reports/allocation-group-costs.","tags":["AllocationGroupAPI"]}},"/v1/cost-reports/allocation-groups/{groupId}/datatransfer-costs/workloads":{"get":{"operationId":"AllocationGroupAPIGetCostAllocationGroupDataTransferWorkloads","parameters":[{"in":"path","name":"groupId","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetCostAllocationGroupDataTransferWorkloadsResponse"}}},"description":"A successful response."}},"summary":"Gets workloads of datatransfer cost allocation group.","tags":["AllocationGroupAPI"]}},"/v1/cost-reports/allocation-groups/{groupId}/workloads":{"get":{"operationId":"AllocationGroupAPIGetCostAllocationGroupWorkloads","parameters":[{"in":"path","name":"groupId","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Cluster IDs for filtering. Leave empty for the full list.","explode":true,"in":"query","name":"clusterIds","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetCostAllocationGroupWorkloadsResponse"}}},"description":"A successful response."}},"summary":"Gets workloads of cost allocation group.","tags":["AllocationGroupAPI"]}},"/v1/cost-reports/allocation-groups/{id}":{"delete":{"operationId":"AllocationGroupAPIDeleteAllocationGroup","parameters":[{"description":"ID of the allocation group","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.DeleteAllocationGroupResponse"}}},"description":"A successful response."}},"summary":"Deletes an allocation group.","tags":["AllocationGroupAPI"]},"put":{"operationId":"AllocationGroupAPIUpdateAllocationGroup","parameters":[{"description":"ID of the allocation group","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.AllocationGroupDetails"}}},"description":"Allocation group details","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.AllocationGroup"}}},"description":"Allocation group details"}},"summary":"Updates an allocation group for custom report.","tags":["AllocationGroupAPI"],"x-codegen-request-body-name":"allocationGroup"}},"/v1/cost-reports/clusters/{clusterId}/cost":{"get":{"operationId":"ClusterReportAPIGetClusterCostReport","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Aggregate items in specified interval steps.","in":"query","name":"stepSeconds","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterCostReportResponse"}}},"description":"A successful response."}},"summary":"Gets cluster cost report data.","tags":["ClusterReportAPI"]}},"/v1/cost-reports/clusters/{clusterId}/datatransfer-costs":{"get":{"operationId":"WorkloadReportAPIGetWorkloadDataTransferCost","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Aggregate items in specified interval steps.","in":"query","name":"stepSeconds","schema":{"format":"int32","type":"integer"}},{"explode":true,"in":"query","name":"filter.workloadNames","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"in":"query","name":"filter.labelsOperator","schema":{"default":"OR","enum":["OR","AND"],"type":"string"}},{"explode":true,"in":"query","name":"filter.workloadTypes","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"explode":true,"in":"query","name":"filter.namespaces","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}},{"description":"Name of the field you want to sort","in":"query","name":"sort.field","schema":{"type":"string"}},{"description":"The sort order, possible values ASC or DESC, if not provided asc is the default\n\n - ASC: ASC\n - asc: desc\n - DESC: ASC\n - desc: desc","in":"query","name":"sort.order","schema":{"default":"ASC","enum":["ASC","asc","DESC","desc"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetWorkloadDataTransferCostResponse"}}},"description":"A successful response."}},"summary":"Gets workloads datatransfer costs","tags":["WorkloadReportAPI"]},"post":{"operationId":"WorkloadReportAPIGetWorkloadDataTransferCost2","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Aggregate items in specified interval steps.","in":"query","name":"stepSeconds","schema":{"format":"int32","type":"integer"}},{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}},{"description":"Name of the field you want to sort","in":"query","name":"sort.field","schema":{"type":"string"}},{"description":"The sort order, possible values ASC or DESC, if not provided asc is the default\n\n - ASC: ASC\n - asc: desc\n - DESC: ASC\n - desc: desc","in":"query","name":"sort.order","schema":{"default":"ASC","enum":["ASC","asc","DESC","desc"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadFilter"}}},"description":"Filter workloads by labels or names.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetWorkloadDataTransferCostResponse"}}},"description":"A successful response."}},"summary":"Gets workloads datatransfer costs","tags":["WorkloadReportAPI"],"x-codegen-request-body-name":"filter"}},"/v1/cost-reports/clusters/{clusterId}/efficiency":{"get":{"operationId":"ClusterReportAPIGetClusterEfficiencyReport","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Aggregate items in specified interval steps.","in":"query","name":"stepSeconds","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterEfficiencyReportResponse"}}},"description":"A successful response."}},"summary":"Gets cluster efficiency report data.","tags":["ClusterReportAPI"]}},"/v1/cost-reports/clusters/{clusterId}/estimated-savings":{"get":{"operationId":"ClusterReportAPIGetSavingsRecommendation","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetSavingsRecommendationResponse"}}},"description":"A successful response."}},"summary":"Gets the available savings estimation report. Current cluster state is evaluated and a report is generated\nbased on the workloads and nodes running in your cluster.","tags":["ClusterReportAPI"]}},"/v1/cost-reports/clusters/{clusterId}/estimated-savings-history":{"get":{"operationId":"ClusterReportAPIGetClusterCostHistory","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"fromDate","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"toDate","required":true,"schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterCostHistoryResponse"}}},"description":"A successful response."}},"summary":"Gets available savings history over time. Real cluster cost and estimated optimal cost.","tags":["ClusterReportAPI"]}},"/v1/cost-reports/clusters/{clusterId}/grouping-config":{"get":{"operationId":"ReportConfigurationAPIGetGroupingConfig","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetGroupingConfigResponse"}}},"description":"A successful response."}},"summary":"Gets workload grouping config.","tags":["ReportConfigurationAPI"]},"put":{"operationId":"ReportConfigurationAPIUpsertGroupingConfig","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GroupingConfig"}}},"description":"Grouping config.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.UpsertGroupingConfigResponse"}}},"description":"A successful response."}},"summary":"Upserts workload grouping config.","tags":["ReportConfigurationAPI"],"x-codegen-request-body-name":"config"}},"/v1/cost-reports/clusters/{clusterId}/namespace-cost-summaries":{"post":{"operationId":"NamespaceReportAPIGetClusterNamespaceCostReportSummaries","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}},{"description":"Name of the field you want to sort","in":"query","name":"sort.field","schema":{"type":"string"}},{"description":"The sort order, possible values ASC or DESC, if not provided asc is the default\n\n - ASC: ASC\n - asc: desc\n - DESC: ASC\n - desc: desc","in":"query","name":"sort.order","schema":{"default":"ASC","enum":["ASC","asc","DESC","desc"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.NamespaceFilter"}}},"description":"Filtering options.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterNamespaceCostReportSummariesResponse"}}},"description":"A successful response."}},"summary":"Gets cluster namespaces cost report summaries.","tags":["NamespaceReportAPI"],"x-codegen-request-body-name":"filter"}},"/v1/cost-reports/clusters/{clusterId}/namespace-datatransfer-costs":{"get":{"operationId":"NamespaceReportAPIGetClusterNamespaceDataTransferCost","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items by namespace. Acts like a case-insensitive substring search.","in":"query","name":"filter.namespace","schema":{"type":"string"}},{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}},{"description":"Name of the field you want to sort","in":"query","name":"sort.field","schema":{"type":"string"}},{"description":"The sort order, possible values ASC or DESC, if not provided asc is the default\n\n - ASC: ASC\n - asc: desc\n - DESC: ASC\n - desc: desc","in":"query","name":"sort.order","schema":{"default":"ASC","enum":["ASC","asc","DESC","desc"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterNamespaceDataTransferCostResponse"}}},"description":"A successful response."}},"summary":"Gets cluster namespaces data transfer report","tags":["NamespaceReportAPI"]}},"/v1/cost-reports/clusters/{clusterId}/namespace-datatransfer-totalcost":{"get":{"operationId":"NamespaceReportAPIGetClusterNamespaceDataTransferTimedTotalCost","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterNamespaceDataTransferTimedTotalCostResponse"}}},"description":"A successful response."}},"summary":"Gets a timed breakdown of the data transfer costs for the top K namespaces in the cluster\n(by default breakdown is by day).","tags":["NamespaceReportAPI"]}},"/v1/cost-reports/clusters/{clusterId}/namespace-totalcost":{"post":{"operationId":"NamespaceReportAPIGetClusterNamespaceCostReport","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Aggregate items in specified interval steps.","in":"query","name":"stepSeconds","schema":{"format":"int32","type":"integer"}},{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.NamespaceFilter"}}},"description":"Filtering options.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterNamespaceCostReportResponse"}}},"description":"A successful response."}},"summary":"Gets cluster namespaces cost report.","tags":["NamespaceReportAPI"],"x-codegen-request-body-name":"filter"}},"/v1/cost-reports/clusters/{clusterId}/namespaces/{namespace}":{"get":{"operationId":"NamespaceReportAPIGetSingleNamespaceCostReport","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Which namespace to return data for.","in":"path","name":"namespace","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetSingleNamespaceCostReportResponse"}}},"description":"A successful response."}},"summary":"Gets a single namespace cost report with a daily breakdown.","tags":["NamespaceReportAPI"]}},"/v1/cost-reports/clusters/{clusterId}/namespaces/{namespace}/{workloadType}/{workloadName}/cost":{"get":{"operationId":"WorkloadReportAPIGetSingleWorkloadCostReport","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"in":"path","name":"namespace","required":true,"schema":{"type":"string"}},{"in":"path","name":"workloadType","required":true,"schema":{"type":"string"}},{"in":"path","name":"workloadName","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Aggregate items in specified interval steps.","in":"query","name":"stepSeconds","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetSingleWorkloadCostReportResponse"}}},"description":"A successful response."}},"summary":"Gets single workload cost report.","tags":["WorkloadReportAPI"]}},"/v1/cost-reports/clusters/{clusterId}/namespaces/{namespace}/{workloadType}/{workloadName}/datatransfer-costs":{"get":{"operationId":"WorkloadReportAPIGetSingleWorkloadDataTransferCost","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"in":"path","name":"namespace","required":true,"schema":{"type":"string"}},{"in":"path","name":"workloadType","required":true,"schema":{"type":"string"}},{"in":"path","name":"workloadName","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Aggregate items in specified interval steps.","in":"query","name":"stepSeconds","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetSingleWorkloadDataTransferCostResponse"}}},"description":"A successful response."}},"summary":"Gets single workload cost report.","tags":["WorkloadReportAPI"]}},"/v1/cost-reports/clusters/{clusterId}/namespaces/{namespace}/{workloadType}/{workloadName}/efficiency":{"get":{"operationId":"WorkloadReportAPIGetClusterWorkloadEfficiencyReportByName","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Namespace of the workload.","in":"path","name":"namespace","required":true,"schema":{"type":"string"}},{"description":"Workload type, e.g. Deployment, StatefulSet, DaemonSet.","in":"path","name":"workloadType","required":true,"schema":{"type":"string"}},{"description":"Name of the workload.","in":"path","name":"workloadName","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Aggregate items in specified interval steps.","in":"query","name":"stepSeconds","schema":{"format":"int32","type":"integer"}},{"description":"Optional parameter marking whether the current state for workload and its containers should be returned.","in":"query","name":"includeCurrent","schema":{"type":"boolean"}},{"description":"Optional parameter marking whether the history of workload and its containers should be returned.","in":"query","name":"includeHistory","schema":{"default":true,"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterWorkloadEfficiencyReportByNameResponse"}}},"description":"A successful response."}},"summary":"Gets cluster workload efficiency report for a workload by name.","tags":["WorkloadReportAPI"]}},"/v1/cost-reports/clusters/{clusterId}/namespaces/{namespace}/{workloadType}/{workloadName}/traffic-destination-histories":{"get":{"operationId":"WorkloadReportAPIGetWorkloadTrafficDestinationsHistory","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Namespace of the workload.","in":"path","name":"namespace","required":true,"schema":{"type":"string"}},{"description":"Workload type, e.g. Deployment, StatefulSet, DaemonSet.","in":"path","name":"workloadType","required":true,"schema":{"type":"string"}},{"description":"Name of the workload.","in":"path","name":"workloadName","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Aggregate items in specified interval steps.","in":"query","name":"stepSeconds","schema":{"format":"int32","type":"integer"}},{"description":"Limit the number of items in destinations. Default value is 0 = UNLIMITED.","in":"query","name":"limit","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetWorkloadTrafficDestinationsHistoryResponse"}}},"description":"A successful response."}},"summary":"Gets workload traffic destinations with their costs and history.","tags":["WorkloadReportAPI"]}},"/v1/cost-reports/clusters/{clusterId}/namespaces/{namespace}/{workloadType}/{workloadName}/traffic-destinations":{"get":{"operationId":"WorkloadReportAPIGetWorkloadTrafficDestinations","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Namespace of the workload.","in":"path","name":"namespace","required":true,"schema":{"type":"string"}},{"description":"Workload type, e.g. Deployment, StatefulSet, DaemonSet.","in":"path","name":"workloadType","required":true,"schema":{"type":"string"}},{"description":"Name of the workload.","in":"path","name":"workloadName","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Aggregate items in specified interval steps.","in":"query","name":"stepSeconds","schema":{"format":"int32","type":"integer"}},{"description":"Limit the number of items in destinations. Default value is 0 = UNLIMITED.","in":"query","name":"limit","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetWorkloadTrafficDestinationsResponse"}}},"description":"A successful response."}},"summary":"Gets workload traffic destinations with their costs.","tags":["WorkloadReportAPI"]}},"/v1/cost-reports/clusters/{clusterId}/reporting-capabilities":{"get":{"operationId":"ReportConfigurationAPIGetReportingCapabilities","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetReportingCapabilitiesResponse"}}},"description":"A successful response."}},"summary":"Returns information about the report capabilities for a specific cluster,\ne.g. if GPU is collected","tags":["ReportConfigurationAPI"]}},"/v1/cost-reports/clusters/{clusterId}/resource-usage":{"get":{"operationId":"ClusterReportAPIGetClusterResourceUsage","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Aggregate items in specified interval steps.","in":"query","name":"stepSeconds","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterResourceUsageResponse"}}},"description":"A successful response."}},"summary":"Gets cluster resource usage.","tags":["ClusterReportAPI"]}},"/v1/cost-reports/clusters/{clusterId}/rightsizing-patch.sh":{"post":{"operationId":"WorkloadReportAPIGetClusterWorkloadRightsizingPatch","parameters":[{"description":"Defines cluster id.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterWorkloadRightsizingPatchRequest.Workloads"}}},"description":"Reference to the Workloads IDs list.","required":true},"responses":{"200":{"content":{"text/x-shellscript":{"schema":{"format":"string","type":"string"}}},"description":"A successful response."}},"summary":"Gets cluster workload efficiency report for the workloads.","tags":["WorkloadReportAPI"],"x-codegen-request-body-name":"workloads"}},"/v1/cost-reports/clusters/{clusterId}/rightsizing-summary":{"get":{"operationId":"ClusterReportAPIGetRightsizingSummary","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetRightsizingSummaryResponse"}}},"description":"A successful response."}},"summary":"Gets the rightsizing summary for the cluster.","tags":["ClusterReportAPI"]}},"/v1/cost-reports/clusters/{clusterId}/savings":{"get":{"operationId":"ClusterReportAPIGetClusterSavingsReport","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Aggregate items in specified interval steps.","in":"query","name":"stepSeconds","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterSavingsReportResponse"}}},"description":"A successful response."}},"summary":"Gets cluster savings report.","tags":["ClusterReportAPI"]}},"/v1/cost-reports/clusters/{clusterId}/summary":{"get":{"operationId":"ClusterReportAPIGetClusterSummary","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterSummaryResponse"}}},"description":"A successful response."}},"summary":"Gets current details about the cluster.","tags":["ClusterReportAPI"]}},"/v1/cost-reports/clusters/{clusterId}/workload-cost-summaries":{"post":{"operationId":"WorkloadReportAPIGetWorkloadCostSummaries","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}},{"description":"Name of the field you want to sort","in":"query","name":"sort.field","schema":{"type":"string"}},{"description":"The sort order, possible values ASC or DESC, if not provided asc is the default\n\n - ASC: ASC\n - asc: desc\n - DESC: ASC\n - desc: desc","in":"query","name":"sort.order","schema":{"default":"ASC","enum":["ASC","asc","DESC","desc"],"type":"string"}},{"description":"Labels to be included for each workload.","explode":true,"in":"query","name":"labelsToInclude","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadFilter"}}},"description":"Workload filtering options.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetWorkloadCostSummariesResponse"}}},"description":"A successful response."}},"summary":"Gets cluster workloads compute cost report.","tags":["WorkloadReportAPI"],"x-codegen-request-body-name":"filter"}},"/v1/cost-reports/clusters/{clusterId}/workload-costs":{"get":{"operationId":"WorkloadReportAPIGetClusterWorkloadReport","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Aggregate items in specified interval steps.","in":"query","name":"stepSeconds","schema":{"format":"int32","type":"integer"}},{"explode":true,"in":"query","name":"filter.workloadNames","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"in":"query","name":"filter.labelsOperator","schema":{"default":"OR","enum":["OR","AND"],"type":"string"}},{"explode":true,"in":"query","name":"filter.workloadTypes","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"explode":true,"in":"query","name":"filter.namespaces","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}},{"description":"Labels to be included for each workload.","explode":true,"in":"query","name":"labelsToInclude","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterWorkloadReportResponse"}}},"description":"A successful response."}},"summary":"Gets cluster workloads cost report.","tags":["WorkloadReportAPI"]},"post":{"operationId":"WorkloadReportAPIGetClusterWorkloadReport2","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Aggregate items in specified interval steps.","in":"query","name":"stepSeconds","schema":{"format":"int32","type":"integer"}},{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}},{"description":"Labels to be included for each workload.","explode":true,"in":"query","name":"labelsToInclude","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadFilter"}}},"description":"Filter workloads by labels or names.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterWorkloadReportResponse"}}},"description":"A successful response."}},"summary":"Gets cluster workloads cost report.","tags":["WorkloadReportAPI"],"x-codegen-request-body-name":"filter"}},"/v1/cost-reports/clusters/{clusterId}/workload-efficiency":{"get":{"operationId":"WorkloadReportAPIGetClusterWorkloadEfficiencyReport","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Aggregate items in specified interval steps.","in":"query","name":"stepSeconds","schema":{"format":"int32","type":"integer"}},{"explode":true,"in":"query","name":"filter.workloadNames","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"in":"query","name":"filter.labelsOperator","schema":{"default":"OR","enum":["OR","AND"],"type":"string"}},{"explode":true,"in":"query","name":"filter.workloadTypes","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"explode":true,"in":"query","name":"filter.namespaces","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}},{"description":"Name of the field you want to sort","in":"query","name":"sort.field","schema":{"type":"string"}},{"description":"The sort order, possible values ASC or DESC, if not provided asc is the default\n\n - ASC: ASC\n - asc: desc\n - DESC: ASC\n - desc: desc","in":"query","name":"sort.order","schema":{"default":"ASC","enum":["ASC","asc","DESC","desc"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterWorkloadEfficiencyReportResponse"}}},"description":"A successful response."}},"summary":"Gets cluster workload efficiency report.","tags":["WorkloadReportAPI"]},"post":{"operationId":"WorkloadReportAPIGetClusterWorkloadEfficiencyReport2","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Aggregate items in specified interval steps.","in":"query","name":"stepSeconds","schema":{"format":"int32","type":"integer"}},{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}},{"description":"Name of the field you want to sort","in":"query","name":"sort.field","schema":{"type":"string"}},{"description":"The sort order, possible values ASC or DESC, if not provided asc is the default\n\n - ASC: ASC\n - asc: desc\n - DESC: ASC\n - desc: desc","in":"query","name":"sort.order","schema":{"default":"ASC","enum":["ASC","asc","DESC","desc"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadFilter"}}},"description":"Filter workloads by labels or names.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterWorkloadEfficiencyReportResponse"}}},"description":"A successful response."}},"summary":"Gets cluster workload efficiency report.","tags":["WorkloadReportAPI"],"x-codegen-request-body-name":"filter"}},"/v1/cost-reports/clusters/{clusterId}/workload-labels":{"get":{"operationId":"WorkloadReportAPIGetClusterWorkloadLabels","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterWorkloadLabelsResponse"}}},"description":"A successful response."}},"summary":"[Deprecated] Use `/v1/cost-reports/workload-labels/names` to get the label names and `/v1/cost-reports/workload-labels/values` to get the label values.","tags":["WorkloadReportAPI"]}},"/v1/cost-reports/namespaces":{"post":{"operationId":"WorkloadReportAPIGetNamespacesForClusters","parameters":[{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.NamespaceFilters"}}},"description":"Filter items by workload specific fields.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetNamespacesForClustersResponse"}}},"description":"A successful response."}},"summary":"Gets the kubernetes namespaces for the given cluster IDs.","tags":["WorkloadReportAPI"],"x-codegen-request-body-name":"namespaceFilters"}},"/v1/cost-reports/node-labels/names":{"post":{"operationId":"NodeReportAPIGetNodeLabelNames","parameters":[{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.NodeLabelFilters"}}},"description":"Filter items by more label specific fields.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetNodeLabelNamesResponse"}}},"description":"A successful response."}},"summary":"Gets the kubernetes label names applied to the node in the organization.","tags":["NodeReportAPI"],"x-codegen-request-body-name":"labelFilters"}},"/v1/cost-reports/node-labels/values":{"post":{"operationId":"NodeReportAPIGetNodeLabelValues","parameters":[{"description":"Label name. Max length of 317 = 253 (optional prefix) + 1 (slash) + 63 (name segment) according to\nhttps://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set","in":"query","name":"label","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.NodeLabelFilters"}}},"description":"Filter items by more label specific fields.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetNodeLabelValuesResponse"}}},"description":"A successful response."}},"summary":"Gets the kubernetes label values for the given label name.","tags":["NodeReportAPI"],"x-codegen-request-body-name":"labelFilters"}},"/v1/cost-reports/organization/clusters/report":{"get":{"operationId":"ClusterReportAPIGetOrganizationClustersCostReport","parameters":[{"description":"Start of period for summary","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"End of period for summary","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetOrganizationClustersCostReportResponse"}}},"description":"A successful response."}},"summary":"Gets summary for all clusters for an organization","tags":["ClusterReportAPI"]}},"/v1/cost-reports/organization/clusters/summary":{"get":{"operationId":"ClusterReportAPIGetClustersSummary","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetClustersSummaryResponse"}}},"description":"A successful response."}},"summary":"Gets current details about all clusters of organization.","tags":["ClusterReportAPI"]}},"/v1/cost-reports/organization/daily-cost":{"get":{"operationId":"ClusterReportAPIGetClustersCostReport","parameters":[{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetClustersCostReportResponse"}}},"description":"A successful response."}},"summary":"Gets cost report data over all clusters of user organization.","tags":["ClusterReportAPI"]}},"/v1/cost-reports/workload-labels/names":{"post":{"operationId":"WorkloadReportAPIGetWorkloadLabelNames","parameters":[{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadLabelFilters"}}},"description":"Filter items by more label specific fields.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetWorkloadLabelNamesResponse"}}},"description":"A successful response."}},"summary":"Gets the kubernetes label names applied to the workloads in the organization.","tags":["WorkloadReportAPI"],"x-codegen-request-body-name":"labelFilters"}},"/v1/cost-reports/workload-labels/values":{"post":{"operationId":"WorkloadReportAPIGetWorkloadLabelValues","parameters":[{"description":"Label name. Max length of 317 = 253 (optional prefix) + 1 (slash) + 63 (name segment) according to\nhttps://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set","in":"query","name":"label","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadLabelFilters"}}},"description":"Filter items by more label specific fields.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetWorkloadLabelValuesResponse"}}},"description":"A successful response."}},"summary":"Gets the kubernetes label values for the given label name.","tags":["WorkloadReportAPI"],"x-codegen-request-body-name":"labelFilters"}},"/v1/cost-reports/workload-labels/{label}/values":{"post":{"operationId":"WorkloadReportAPIGetWorkloadLabelValuesDeprecated","parameters":[{"description":"Label name. Max length of 317 = 253 (optional prefix) + 1 (slash) + 63 (name segment) according to\nhttps://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set","in":"path","name":"label","required":true,"schema":{"type":"string"}},{"description":"Filter items to include from specified time.","in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Filter items to include up to specified time.","in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadLabelFilters"}}},"description":"Filter items by more label specific fields.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetWorkloadLabelValuesDeprecatedResponse"}}},"description":"A successful response."}},"summary":"[Deprecated] Use `/v1/cost-reports/workload-labels/values` instead","tags":["WorkloadReportAPI"],"x-codegen-request-body-name":"labelFilters"}},"/v1/cost-reports/workloads/metadata":{"post":{"operationId":"WorkloadReportAPIGetWorkloadsMetadata","parameters":[{"in":"query","name":"startTime","required":true,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"endTime","required":true,"schema":{"format":"date-time","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.WorkloadLabelFilters"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetWorkloadsMetadataResponse"}}},"description":"A successful response."}},"summary":"Gets the workloads metadata","tags":["WorkloadReportAPI"],"x-codegen-request-body-name":"filters"}},"/v1/dedicated-instances":{"get":{"operationId":"DedicatedInstanceAPIListDedicatedInstances","parameters":[{"in":"query","name":"gcp.name","schema":{"type":"string"}},{"in":"query","name":"gcp.project","schema":{"type":"string"}},{"in":"query","name":"gcp.zone","schema":{"type":"string"}},{"in":"query","name":"usingCluster","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dedicatedinstance.v1beta1.ListDedicatedInstancesResponse"}}},"description":"A successful response."}},"summary":"ListDedicatedInstances returns list of dedicated instances.","tags":["DedicatedInstanceAPI"]}},"/v1/features":{"get":{"operationId":"FeaturesAPIList","parameters":[{"description":"Prefix to filter flags by.","in":"query","name":"flagNamePrefix","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.features.v1.ListResponse"}}},"description":"A successful response."}},"summary":"List all available feature flags","tags":["FeaturesAPI"]},"post":{"operationId":"FeaturesAPIResolve","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.features.v1.ResolveMessage"}}},"description":"ResolveMessage is the message used to resolve a feature flag.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.features.v1.ResolveResponse"}}},"description":"A successful response."}},"summary":"Resolve resolves a flags for the provided context","tags":["FeaturesAPI"],"x-codegen-request-body-name":"message"}},"/v1/inventory/blacklist":{"get":{"description":"Gets cluster autoscaler blacklist configuration.","operationId":"InventoryBlacklistAPIListBlacklists","parameters":[{"description":"Organization id for which the instance type or family is blacklisted.","in":"query","name":"organizationId","schema":{"type":"string"}},{"description":"Cluster id, that will only be set if instance type or family is blacklisted for specific cluster.","in":"query","name":"clusterId","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/inventoryblacklist.v1.ListBlacklistsResponse"}}},"description":"A successful response."}},"summary":"Get blacklist configuration","tags":["InventoryBlacklistAPI"]}},"/v1/inventory/blacklist/add":{"post":{"description":"Blacklists a specific instance family or type","operationId":"InventoryBlacklistAPIAddBlacklist","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/inventoryblacklist.v1.AddBlacklistRequest"}}},"description":"Defines request object to add autoscaler inventory's blacklist item.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/inventoryblacklist.v1.AddBlacklistResponse"}}},"description":"A successful response."}},"summary":"Add to blacklist","tags":["InventoryBlacklistAPI"],"x-codegen-request-body-name":"body"}},"/v1/inventory/blacklist/remove":{"post":{"description":"Whitelists a specific instance family or type","operationId":"InventoryBlacklistAPIRemoveBlacklist","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/inventoryblacklist.v1.RemoveBlacklistRequest"}}},"description":"Defines request object to remove autoscaler inventory's blacklisted items.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/inventoryblacklist.v1.RemoveBlacklistResponse"}}},"description":"A successful response."}},"summary":"Remove from blacklist","tags":["InventoryBlacklistAPI"],"x-codegen-request-body-name":"body"}},"/v1/invitations":{"get":{"operationId":"UsersAPIListInvitations","parameters":[{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.users.v1beta1.ListInvitationsResponse"}}},"description":"A successful response."}},"summary":"Gets all pending invitations in the organization.","tags":["UsersAPI"]},"post":{"operationId":"UsersAPICreateInvitations","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.users.v1beta1.CreateInvitationsRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.users.v1beta1.CreateInvitationsResponse"}}},"description":"A successful response."}},"summary":"Create invitations to join organization by email","tags":["UsersAPI"],"x-codegen-request-body-name":"body"}},"/v1/invitations/{id}":{"delete":{"operationId":"UsersAPIDeleteInvitation","parameters":[{"description":"Invitation ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.users.v1beta1.DeleteInvitationResponse"}}},"description":"A successful response."}},"summary":"Delete an invitation by id.","tags":["UsersAPI"]}},"/v1/invitations/{invitationId}":{"post":{"operationId":"UsersAPIClaimInvitation","parameters":[{"description":"Invitation ID.","in":"path","name":"invitationId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.users.v1beta1.Request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.users.v1beta1.ClaimInvitationResponse"}}},"description":"A successful response."}},"summary":"Consume invitation and add current user to organization","tags":["UsersAPI"],"x-codegen-request-body-name":"request"}},"/v1/kubernetes/clusters/{clusterId}/actions":{"get":{"operationId":"ClusterActionsAPIPollClusterActions","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/clusteractions.v1.PollClusterActionsResponse"}}},"description":"A successful response."}},"summary":"Polls for pending cluster actions.","tags":["ClusterActionsAPI"]}},"/v1/kubernetes/clusters/{clusterId}/actions/logs":{"post":{"operationId":"ClusterActionsAPIIngestLogs","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/clusteractions.v1.LogEvent"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/clusteractions.v1.IngestLogsResponse"}}},"description":"A successful response."}},"summary":"Ingest cluster controller logs.","tags":["ClusterActionsAPI"],"x-codegen-request-body-name":"log"}},"/v1/kubernetes/clusters/{clusterId}/actions/{actionId}/ack":{"post":{"operationId":"ClusterActionsAPIAckClusterAction","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"in":"path","name":"actionId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/clusteractions.v1.ClusterActionAck"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/clusteractions.v1.AckClusterActionResponse"}}},"description":"A successful response."}},"summary":"Ack completed cluster action.","tags":["ClusterActionsAPI"],"x-codegen-request-body-name":"ack"}},"/v1/kubernetes/clusters/{clusterId}/algorithm-stats":{"post":{"operationId":"AlgorithmStatsAPISubmit","parameters":[{"description":"cluster id","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Request_to_submit_algorithm_stats"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.algorithmstats.v1beta1.SubmitResponse"}}},"description":"A successful response."}},"summary":"Submit algorithm stats","tags":["AlgorithmStatsAPI"],"x-codegen-request-body-name":"body"}},"/v1/kubernetes/clusters/{clusterId}/egressd-script":{"get":{"operationId":"ReportConfigurationAPIGetEgressdScript","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetEgressdScriptResponse"}}},"description":"A successful response."}},"summary":"Returns single command for external cluster with egressd installation script.","tags":["ReportConfigurationAPI"]}},"/v1/kubernetes/clusters/{clusterId}/evictor-advanced-config":{"get":{"operationId":"EvictorAPIGetAdvancedConfig","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.evictor.v1.AdvancedConfig"}}},"description":"AdvancedConfig object."}},"summary":"Gets evictor advanced configuration for the target cluster.","tags":["EvictorAPI"]},"post":{"operationId":"EvictorAPIUpsertAdvancedConfig","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.evictor.v1.AdvancedConfig"}}},"description":"EvictionConfig details.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.evictor.v1.AdvancedConfig"}}},"description":"AdvancedConfig obect."}},"summary":"Upsert cluster's evictor advanced configuration.","tags":["EvictorAPI"],"x-codegen-request-body-name":"advancedConfig"}},"/v1/kubernetes/clusters/{clusterId}/filter-instance-types":{"post":{"description":"Lists instance types based on the provided policy.","operationId":"NodeTemplatesAPIFilterInstanceTypes","parameters":[{"description":"ID of the cluster","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/nodetemplates.v1.NodeTemplate"}}},"description":"Filter","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/nodetemplates.v1.FilterInstanceTypesResponse"}}},"description":"A successful response."}},"summary":"Filter instance types","tags":["NodeTemplatesAPI"],"x-codegen-request-body-name":"filter"}},"/v1/kubernetes/clusters/{clusterId}/generate-node-templates":{"post":{"description":"Generates node templates from the latest snapshot","operationId":"NodeTemplatesAPIGenerateNodeTemplates","parameters":[{"description":"ID of the cluster to generate templates for","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/nodetemplates.v1.GenerateNodeTemplatesResponse"}}},"description":"A successful response."}},"summary":"Generate node templates","tags":["NodeTemplatesAPI"]}},"/v1/kubernetes/clusters/{clusterId}/karpenter/migrate":{"get":{"operationId":"AutoscalerAPIGetKarpenterDefinitionsMigrationIntent","parameters":[{"description":"The id of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.GetKarpenterMigrationIntentResponse"}}},"description":"A successful response."}},"summary":"Get karpenter definitions migration intent","tags":["AutoscalerAPI"]},"post":{"operationId":"AutoscalerAPIMigrateKarpenterDefinitions","parameters":[{"description":"The id of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.MigrateKarpenterDefinitionsResponse"}}},"description":"A successful response."}},"summary":"Migrate karpenter custom resource definitions to CAST AI configuration","tags":["AutoscalerAPI"],"x-codegen-request-body-name":"body"}},"/v1/kubernetes/clusters/{clusterId}/node-configurations":{"get":{"operationId":"NodeConfigurationAPIListConfigurations","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/nodeconfig.v1.ListConfigurationsResponse"}}},"description":"A successful response."}},"summary":"Lists cluster's node configurations.","tags":["NodeConfigurationAPI"]},"post":{"operationId":"NodeConfigurationAPICreateConfiguration","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/nodeconfig.v1.NewNodeConfiguration"}}},"description":"New node configuration.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/nodeconfig.v1.NodeConfiguration"}}},"description":"Created configuration."}},"summary":"Creates new node configuration for a specific cluster.","tags":["NodeConfigurationAPI"],"x-codegen-request-body-name":"config"}},"/v1/kubernetes/clusters/{clusterId}/node-configurations/suggestions":{"get":{"operationId":"NodeConfigurationAPIGetSuggestedConfiguration","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/nodeconfig.v1.GetSuggestedConfigurationResponse"}}},"description":"A successful response."}},"summary":"Returns suggested configuration for the cluster","tags":["NodeConfigurationAPI"]}},"/v1/kubernetes/clusters/{clusterId}/node-configurations/{id}":{"delete":{"operationId":"NodeConfigurationAPIDeleteConfiguration","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"The ID of the node configuration.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/nodeconfig.v1.DeleteConfigurationResponse"}}},"description":"A successful response."}},"summary":"Deletes node configuration of a specific cluster.","tags":["NodeConfigurationAPI"]},"get":{"operationId":"NodeConfigurationAPIGetConfiguration","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"The ID of the node configuration.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/nodeconfig.v1.NodeConfiguration"}}},"description":""}},"summary":"Get cluster's node configuration.","tags":["NodeConfigurationAPI"]},"post":{"operationId":"NodeConfigurationAPIUpdateConfiguration","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"The ID of the node configuration.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/nodeconfig.v1.NodeConfigurationUpdate"}}},"description":"Node configuration update.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/nodeconfig.v1.NodeConfiguration"}}},"description":"Updated configuration."}},"summary":"Updates configuration of a specific cluster.","tags":["NodeConfigurationAPI"],"x-codegen-request-body-name":"config"}},"/v1/kubernetes/clusters/{clusterId}/node-configurations/{id}/default":{"post":{"operationId":"NodeConfigurationAPISetDefault","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"The ID of the node configuration.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/nodeconfig.v1.NodeConfiguration"}}},"description":"Updated configuration."}},"summary":"Marks node configuration as default.","tags":["NodeConfigurationAPI"]}},"/v1/kubernetes/clusters/{clusterId}/node-constraints":{"get":{"operationId":"PoliciesAPIGetClusterNodeConstraints","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/policies.v1.GetClusterNodeConstraintsResponse"}}},"description":"A successful response."}},"summary":"Gets all viable settings to be used for the Node Constraints feature.","tags":["PoliciesAPI"]}},"/v1/kubernetes/clusters/{clusterId}/node-templates":{"get":{"description":"Lists active node templates.","operationId":"NodeTemplatesAPIListNodeTemplates","parameters":[{"description":"ID of the cluster to list templates for","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Flag whether to include the default template","in":"query","name":"includeDefault","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/nodetemplates.v1.ListNodeTemplatesResponse"}}},"description":"A successful response."}},"summary":"List node templates","tags":["NodeTemplatesAPI"]},"post":{"description":"Creates a node template to be used in autoscaling.","operationId":"NodeTemplatesAPICreateNodeTemplate","parameters":[{"description":"ID of the cluster that the template is for","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/nodetemplates.v1.NewNodeTemplate"}}},"description":"NodeTemplate to create","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/nodetemplates.v1.NodeTemplate"}}},"description":"Created template"}},"summary":"Create node template","tags":["NodeTemplatesAPI"],"x-codegen-request-body-name":"nodeTemplate"}},"/v1/kubernetes/clusters/{clusterId}/node-templates/{nodeTemplateName}":{"delete":{"description":"Deletes a node template.","operationId":"NodeTemplatesAPIDeleteNodeTemplate","parameters":[{"description":"ID of the cluster that the template is for","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"The name of the template to delete","in":"path","name":"nodeTemplateName","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/nodetemplates.v1.DeleteNodeTemplateResponse"}}},"description":"A successful response."}},"summary":"Delete node template","tags":["NodeTemplatesAPI"]},"put":{"description":"Updates a node template.","operationId":"NodeTemplatesAPIUpdateNodeTemplate","parameters":[{"description":"The ID of the cluster that the template is for","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"The name of the node template to update","in":"path","name":"nodeTemplateName","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/nodetemplates.v1.UpdateNodeTemplate"}}},"description":"The node template to update","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/nodetemplates.v1.NodeTemplate"}}},"description":"The updated node template"}},"summary":"Update node template","tags":["NodeTemplatesAPI"],"x-codegen-request-body-name":"nodeTemplate"}},"/v1/kubernetes/clusters/{clusterId}/policies":{"get":{"operationId":"PoliciesAPIGetClusterPolicies","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/policies.v1.Policies"}}},"description":"Policies details."}},"summary":"Gets policies configuration for the target cluster.","tags":["PoliciesAPI"]},"put":{"operationId":"PoliciesAPIUpsertClusterPolicies","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/policies.v1.Policies"}}},"description":"Policies details.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/policies.v1.Policies"}}},"description":"Policies details."}},"summary":"Upsert cluster's policies configuration.","tags":["PoliciesAPI"],"x-codegen-request-body-name":"policies"}},"/v1/kubernetes/clusters/{clusterId}/problematic-nodes":{"get":{"description":"Gets cluster problematic nodes that are currently running in the cluster. These nodes cannot be rebalanced.","operationId":"AutoscalerAPIGetProblematicNodes","parameters":[{"description":"The id of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.GetProblematicNodesResponse"}}},"description":"A successful response."}},"summary":"Get problematic nodes","tags":["AutoscalerAPI"]}},"/v1/kubernetes/clusters/{clusterId}/problematic-workloads":{"get":{"description":"Gets cluster problematic workloads that are currently running in the cluster. These workloads cannot be rebalanced.","operationId":"AutoscalerAPIGetProblematicWorkloads","parameters":[{"description":"The id of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.GetProblematicWorkloadsResponse"}}},"description":"A successful response."}},"summary":"Get problematic workloads","tags":["AutoscalerAPI"]}},"/v1/kubernetes/clusters/{clusterId}/rebalanced-workloads":{"get":{"description":"Gets the rebalanced workloads. Only relevant when rebalancing execution is in-progress.","operationId":"AutoscalerAPIGetRebalancedWorkloads","parameters":[{"description":"The id of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.GetRebalancedWorkloadsResponse"}}},"description":"A successful response."}},"summary":"Get rebalanced workloads","tags":["AutoscalerAPI"]}},"/v1/kubernetes/clusters/{clusterId}/rebalancing-jobs":{"get":{"description":"Lists rebalancing jobs per cluster.","operationId":"ScheduledRebalancingAPIListRebalancingJobs","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/scheduledrebalancing.v1.ListRebalancingJobsResponse"}}},"description":"A successful response."}},"summary":"List rebalancing jobs","tags":["ScheduledRebalancingAPI"]},"post":{"description":"Creates rebalancing job, associating a cluster and a rebalancing schedule.","operationId":"ScheduledRebalancingAPICreateRebalancingJob","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/scheduledrebalancing.v1.RebalancingJob"}}},"description":"RebalancingJob to create","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/scheduledrebalancing.v1.RebalancingJob"}}},"description":"Created job"}},"summary":"Create rebalancing job","tags":["ScheduledRebalancingAPI"],"x-codegen-request-body-name":"job"}},"/v1/kubernetes/clusters/{clusterId}/rebalancing-jobs/{id}":{"delete":{"description":"Deletes a single rebalancing job.","operationId":"ScheduledRebalancingAPIDeleteRebalancingJob","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/scheduledrebalancing.v1.DeleteRebalancingJobResponse"}}},"description":"A successful response."}},"summary":"Delete rebalancing job","tags":["ScheduledRebalancingAPI"]},"get":{"description":"Gets a rebalancing job by it's ID","operationId":"ScheduledRebalancingAPIGetRebalancingJob","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/scheduledrebalancing.v1.RebalancingJob"}}},"description":""}},"summary":"Get rebalancing job","tags":["ScheduledRebalancingAPI"]},"put":{"description":"Updates rebalancing job setup.","operationId":"ScheduledRebalancingAPIUpdateRebalancingJob","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/scheduledrebalancing.v1.RebalancingJob"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/scheduledrebalancing.v1.RebalancingJob"}}},"description":"Created job"}},"summary":"Update rebalancing job","tags":["ScheduledRebalancingAPI"],"x-codegen-request-body-name":"job"}},"/v1/kubernetes/clusters/{clusterId}/rebalancing-plans":{"get":{"description":"Lists cluster rebalancing plans by cluster ID.","operationId":"AutoscalerAPIListRebalancingPlans","parameters":[{"description":"ID of the cluster that is being rebalanced.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"A limit on the number of objects to be returned, between 1 and 500.","in":"query","name":"limit","schema":{"default":"10","format":"uint64","type":"string"}},{"description":"A cursor for use in pagination.\n\nThis is a token that defines your place in the list. For instance, if you make a list request - you will receive a `nextCursor` field in response metadata. Given that the `nextCursor` field is\nnot empty, it can be used as a cursor query parameter to get subsequent items. If `nextCursor` is empty - there are no more items to retrieve.","in":"query","name":"cursor","schema":{"type":"string"}},{"description":"Status list filter","explode":true,"in":"query","name":"filter.statuses","schema":{"items":{"enum":["invalid","generating","generated","creating_nodes","preparing_nodes","draining_nodes","deleting_nodes","finished","error","partially_finished"],"type":"string"},"type":"array"},"style":"form"},{"description":"If include operations is true then operations is returned in response, otherwise is skipped","in":"query","name":"includeOperations","schema":{"type":"boolean"}},{"description":"If include configurations is true then configurations is returned in response, otherwise is skipped","in":"query","name":"includeConfigurations","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.ListRebalancingPlansResponse"}}},"description":"A successful response."}},"summary":"List cluster rebalancing plans","tags":["AutoscalerAPI"]},"post":{"description":"Initiates the cluster rebalancing process which will optimize current node configuration by consolidating\nexisting workloads into fewer bin-packed, right-sized nodes.\n\nThis is a long-running operation, the request is queued and the response is immediate.","operationId":"AutoscalerAPIGenerateRebalancingPlan","parameters":[{"description":"ID of the cluster to be rebalanced.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoscalerAPI_GenerateRebalancingPlan_request"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.GenerateRebalancingPlanResponse"}}},"description":"A successful response."}},"summary":"Generate a cluster rebalancing plan","tags":["AutoscalerAPI"],"x-codegen-request-body-name":"body"}},"/v1/kubernetes/clusters/{clusterId}/rebalancing-plans/{rebalancingPlanId}":{"get":{"description":"Will only return a body when the plan's generation has fully finished.","operationId":"AutoscalerAPIGetRebalancingPlan","parameters":[{"description":"ID of the cluster that is being rebalanced.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"ID of the rebalancing plan.","in":"path","name":"rebalancingPlanId","required":true,"schema":{"type":"string"}},{"description":"If include operations is true then operations is returned in response, otherwise is skipped","in":"query","name":"includeOperations","schema":{"type":"boolean"}},{"description":"If include configurations is true then configurations is returned in response, otherwise is skipped","in":"query","name":"includeConfigurations","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse"}}},"description":"A successful response."}},"summary":"Get a rebalancing plan","tags":["AutoscalerAPI"]}},"/v1/kubernetes/clusters/{clusterId}/rebalancing-plans/{rebalancingPlanId}/execute":{"post":{"description":"Triggers and executes the rebalancing plan.","operationId":"AutoscalerAPIExecuteRebalancingPlan","parameters":[{"description":"The id of the cluster which should be rebalanced.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"The id of the rebalancing plan to use for rebalancing.","in":"path","name":"rebalancingPlanId","required":true,"schema":{"type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.RebalancingPlanResponse"}}},"description":"A successful response."}},"summary":"Trigger the rebalancing plan","tags":["AutoscalerAPI"],"x-codegen-request-body-name":"body"}},"/v1/kubernetes/clusters/{clusterId}/rebalancing-schedule-preview":{"post":{"description":"Preview which nodes will be affected given the provided rebalancing schedule.","operationId":"ScheduledRebalancingAPIPreviewRebalancingSchedule","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/scheduledrebalancing.v1.RebalancingScheduleUpdate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/scheduledrebalancing.v1.PreviewRebalancingScheduleResponse"}}},"description":"A successful response."}},"summary":"Preview rebalancing schedule","tags":["ScheduledRebalancingAPI"],"x-codegen-request-body-name":"schedule"}},"/v1/kubernetes/clusters/{clusterId}/settings":{"get":{"operationId":"AutoscalerAPIGetClusterSettings","parameters":[{"description":"The id of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.GetClusterSettingsResponse"}}},"description":"A successful response."}},"summary":"Get cluster settings","tags":["AutoscalerAPI"]}},"/v1/kubernetes/clusters/{clusterId}/unscheduled-pods":{"get":{"operationId":"ClusterReportAPIGetClusterUnscheduledPods","parameters":[{"description":"ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/costreport.v1beta1.GetClusterUnscheduledPodsResponse"}}},"description":"A successful response."}},"summary":"Gets unscheduled pods in the cluster.","tags":["ClusterReportAPI"]}},"/v1/kubernetes/clusters/{clusterId}/workloads":{"get":{"description":"Gets all cluster workloads.","operationId":"AutoscalerAPIGetClusterWorkloads","parameters":[{"description":"ID of the cluster that is being rebalanced.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.autoscaler.v1beta1.GetClusterWorkloadsResponse"}}},"description":"A successful response."}},"summary":"Get cluster workloads","tags":["AutoscalerAPI"]}},"/v1/kubernetes/external-clusters":{"get":{"operationId":"ExternalClusterAPIListClusters","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.ListClustersResponse"}}},"description":"A successful response."}},"summary":"Lists clusters for current user's organization.","tags":["ExternalClusterAPI"]},"post":{"operationId":"ExternalClusterAPIRegisterCluster","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.RegisterClusterRequest"}}},"description":"RegisterClusterRequest registers cluster.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.Cluster"}}},"description":"Registered cluster."}},"summary":"Registers new external cluster.","tags":["ExternalClusterAPI"],"x-codegen-request-body-name":"body"}},"/v1/kubernetes/external-clusters/operations/{id}":{"get":{"operationId":"OperationsAPIGetOperation","parameters":[{"description":"ID of the operation.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.operations.v1beta1.Operation"}}},"description":"Operation object."}},"summary":"GetOperation returns the operation object by ID.","tags":["OperationsAPI"]}},"/v1/kubernetes/external-clusters/{clusterId}":{"delete":{"description":"Cluster can be removed only if it was disconnected or is in failed state.","operationId":"ExternalClusterAPIDeleteCluster","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"The resource has been deleted."}},"summary":"Deletes the cluster from CAST console. It won't delete the actual cluster from cloud provider's console.","tags":["ExternalClusterAPI"]},"get":{"operationId":"ExternalClusterAPIGetCluster","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.Cluster"}}},"description":""}},"summary":"Gets the details of a specific cluster.","tags":["ExternalClusterAPI"]},"post":{"operationId":"ExternalClusterAPIUpdateCluster","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.ClusterUpdate"}}},"description":"Cluster update configuration.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.Cluster"}}},"description":""}},"summary":"Updates configuration of a specific cluster.","tags":["ExternalClusterAPI"],"x-codegen-request-body-name":"update"}},"/v1/kubernetes/external-clusters/{clusterId}/assume-role-principal":{"delete":{"operationId":"ExternalClusterAPIDeleteAssumeRolePrincipal","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.DeleteAssumeRolePrincipalResponse"}}},"description":"A successful response."}},"summary":"Delete AWS cross role user for assume role.","tags":["ExternalClusterAPI"]},"get":{"operationId":"ExternalClusterAPIGetAssumeRolePrincipal","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.GetAssumeRolePrincipalResponse"}}},"description":"A successful response."}},"summary":"Return AWS cross role user for assume role.","tags":["ExternalClusterAPI"]},"post":{"operationId":"ExternalClusterAPICreateAssumeRolePrincipal","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.CreateAssumeRolePrincipalResponse"}}},"description":"A successful response."}},"summary":"Create AWS cross role user for assume role.","tags":["ExternalClusterAPI"]}},"/v1/kubernetes/external-clusters/{clusterId}/assume-role-user":{"get":{"operationId":"ExternalClusterAPIGetAssumeRoleUser","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.GetAssumeRoleUserResponse"}}},"description":"A successful response."}},"summary":"Returns AWS user arn used for assume role.","tags":["ExternalClusterAPI"]}},"/v1/kubernetes/external-clusters/{clusterId}/cleanup-script":{"get":{"operationId":"ExternalClusterAPIGetCleanupScript","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.GetCleanupScriptResponse"}}},"description":"A successful response."}},"summary":"Returns single command for external cluster cleanup script","tags":["ExternalClusterAPI"]}},"/v1/kubernetes/external-clusters/{clusterId}/credentials-script":{"get":{"operationId":"ExternalClusterAPIGetCredentialsScript","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Whether an AWS CrossRole should be used for authentication.","in":"query","name":"crossRole","schema":{"type":"boolean"}},{"description":"Whether NVIDIA device plugin DaemonSet should be installed during Phase 2 on-boarding.","in":"query","name":"nvidiaDevicePlugin","schema":{"type":"boolean"}},{"description":"Whether CAST AI Security Insights agent should be installed","in":"query","name":"installSecurityAgent","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.GetCredentialsScriptResponse"}}},"description":"A successful response."}},"summary":"Returns single command for external cluster credentials onboarding.","tags":["ExternalClusterAPI"]}},"/v1/kubernetes/external-clusters/{clusterId}/disconnect":{"post":{"description":"CAST provisioned nodes are deleted only when `deleteProvisionedNodes` flag is set.\nCloud resources used by CAST provisioned nodes are deleted only if nodes are deleted.","operationId":"ExternalClusterAPIDisconnectCluster","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.DisconnectConfig"}}},"description":"Disconnect cluster configuration.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.Cluster"}}},"description":""}},"summary":"Disconnects cluster by removing all CAST dependencies from cloud provider's account.","tags":["ExternalClusterAPI"],"x-codegen-request-body-name":"config"}},"/v1/kubernetes/external-clusters/{clusterId}/events":{"post":{"operationId":"ExternalClusterAPIHandleCloudEvent","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.CloudEvent"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.HandleCloudEventResponse"}}},"description":"A successful response."}},"summary":"Handles cloud spot interruption events for a cluster.","tags":["ExternalClusterAPI"],"x-codegen-request-body-name":"event"}},"/v1/kubernetes/external-clusters/{clusterId}/nodes":{"get":{"operationId":"ExternalClusterAPIListNodes","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.ListNodesResponse"}}},"description":"A successful response."}},"summary":"Lists the nodes for a cluster.","tags":["ExternalClusterAPI"]},"post":{"operationId":"ExternalClusterAPIAddNode","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.NodeConfig"}}},"description":"New node configuration.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.AddNodeResponse"}}},"description":"A successful response."}},"summary":"Adds a node to the cluster.","tags":["ExternalClusterAPI"],"x-codegen-request-body-name":"config"}},"/v1/kubernetes/external-clusters/{clusterId}/nodes/{nodeId}":{"delete":{"operationId":"ExternalClusterAPIDeleteNode","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"The ID of the node.","in":"path","name":"nodeId","required":true,"schema":{"type":"string"}},{"description":"Node drain timeout in seconds. Defaults to 600s if not set.","in":"query","name":"drainTimeout","schema":{"format":"int64","type":"string"}},{"description":"If set to true, node will be deleted even if node fails to be drained gracefully.","in":"query","name":"forceDelete","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.DeleteNodeResponse"}}},"description":"A successful response."}},"summary":"Deletes the specified cluster node.","tags":["ExternalClusterAPI"]},"get":{"operationId":"ExternalClusterAPIGetNode","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"in":"path","name":"nodeId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.Node"}}},"description":""}},"summary":"Gets a single node by ID.","tags":["ExternalClusterAPI"]}},"/v1/kubernetes/external-clusters/{clusterId}/nodes/{nodeId}/drain":{"post":{"operationId":"ExternalClusterAPIDrainNode","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"The ID of the node.","in":"path","name":"nodeId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.DrainConfig"}}},"description":"Node drain configuration.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.DrainNodeResponse"}}},"description":"A successful response."}},"summary":"Drains the specified cluster node.","tags":["ExternalClusterAPI"],"x-codegen-request-body-name":"config"}},"/v1/kubernetes/external-clusters/{clusterId}/reconcile":{"post":{"operationId":"ExternalClusterAPIReconcileCluster","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.ReconcileClusterResponse"}}},"description":"A successful response."}},"summary":"Reconciles cluster.","tags":["ExternalClusterAPI"]}},"/v1/kubernetes/external-clusters/{clusterId}/tags":{"post":{"operationId":"ExternalClusterAPIUpdateClusterTags","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object"}}},"description":"New cluster tags","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.UpdateClusterTagsResponse"}}},"description":"A successful response."}},"summary":"Updates tags of a specific cluster.","tags":["ExternalClusterAPI"],"x-codegen-request-body-name":"tags"}},"/v1/kubernetes/external-clusters/{clusterId}/token":{"post":{"operationId":"ExternalClusterAPICreateClusterToken","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/externalcluster.v1.CreateClusterTokenResponse"}}},"description":"A successful response."}},"summary":"Returns cluster token that is used for agent and cluster controller.","tags":["ExternalClusterAPI"]}},"/v1/llm/openai/chat-completions/report/api-keys-savings":{"get":{"operationId":"OpenAILLMOptimizationAPIGetChatCompletionsAPIKeysSavingsReport","parameters":[{"in":"query","name":"fromTime","schema":{"format":"date-time","type":"string"}},{"in":"query","name":"toTime","schema":{"format":"date-time","type":"string"}},{"in":"query","name":"categoryId","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/llmoptimization.v1.GetChatCompletionsAPIKeysSavingsReportResponse"}}},"description":"A successful response."}},"summary":"Returns a savings report for the API keys used in chat completions.","tags":["OpenAILLMOptimizationAPI"]}},"/v1/llm/openai/chat-completions/report/api-keys/{apiKeyId}/recommendations":{"get":{"operationId":"OpenAILLMOptimizationAPIGetChatCompletionsAPIKeysRecommendationsReport","parameters":[{"in":"path","name":"apiKeyId","required":true,"schema":{"type":"string"}},{"in":"query","name":"fromTime","schema":{"format":"date-time","type":"string"}},{"in":"query","name":"toTime","schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/llmoptimization.v1.GetChatCompletionsRecommendationsReportResponse"}}},"description":"A successful response."}},"summary":"Returns a recommendations report for the API keys used in chat completions.","tags":["OpenAILLMOptimizationAPI"]}},"/v1/llm/openai/chat-completions/report/api-keys/{apiKeyId}/usage":{"get":{"operationId":"OpenAILLMOptimizationAPIGetChatCompletionsAPIKeyUsageReport","parameters":[{"in":"path","name":"apiKeyId","required":true,"schema":{"type":"string"}},{"in":"query","name":"fromTime","schema":{"format":"date-time","type":"string"}},{"in":"query","name":"toTime","schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/llmoptimization.v1.GetChatCompletionsAPIKeyUsageReportResponse"}}},"description":"A successful response."}},"summary":"Returns a report of chat completions usage data for a specific api key.","tags":["OpenAILLMOptimizationAPI"]}},"/v1/llm/openai/chat-completions/report/categories/{categoryId}/recommendations":{"get":{"operationId":"OpenAILLMOptimizationAPIGetChatCompletionsCategoryRecommendationsReport","parameters":[{"in":"path","name":"categoryId","required":true,"schema":{"type":"string"}},{"in":"query","name":"fromTime","schema":{"format":"date-time","type":"string"}},{"in":"query","name":"toTime","schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/llmoptimization.v1.GetChatCompletionsCategoryRecommendationsReportResponse"}}},"description":"A successful response."}},"summary":"Returns a recommendations report for the category used in chat completions.","tags":["OpenAILLMOptimizationAPI"]}},"/v1/llm/openai/chat-completions/report/categories/{categoryId}/usage":{"get":{"operationId":"OpenAILLMOptimizationAPIGetChatCompletionsCategoryUsageReport","parameters":[{"in":"path","name":"categoryId","required":true,"schema":{"type":"string"}},{"in":"query","name":"fromTime","schema":{"format":"date-time","type":"string"}},{"in":"query","name":"toTime","schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/llmoptimization.v1.GetChatCompletionsCategoryUsageReportResponse"}}},"description":"A successful response."}},"summary":"Returns a report of chat completions usage data for a specific category.","tags":["OpenAILLMOptimizationAPI"]}},"/v1/llm/openai/chat-completions/report/recommendations":{"get":{"operationId":"OpenAILLMOptimizationAPIGetChatCompletionsRecommendationsReport","parameters":[{"in":"query","name":"fromTime","schema":{"format":"date-time","type":"string"}},{"in":"query","name":"toTime","schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/llmoptimization.v1.GetChatCompletionsRecommendationsReportResponse"}}},"description":"A successful response."}},"summary":"Returns a recommendations report of chat completions data.","tags":["OpenAILLMOptimizationAPI"]}},"/v1/llm/openai/chat-completions/report/usage":{"get":{"operationId":"OpenAILLMOptimizationAPIGetChatCompletionsUsageReport","parameters":[{"in":"query","name":"fromTime","schema":{"format":"date-time","type":"string"}},{"in":"query","name":"toTime","schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/llmoptimization.v1.GetChatCompletionsUsageReportResponse"}}},"description":"A successful response."}},"summary":"Returns a report of chat completions usage data.","tags":["OpenAILLMOptimizationAPI"]}},"/v1/llm/settings":{"get":{"operationId":"LLMSettingsAPIGetSettings","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/llmoptimization.v1.GetSettingsResponse"}}},"description":"A successful response."}},"summary":"Returns the settings of the LLM Optimizer.","tags":["LLMSettingsAPI"]},"put":{"operationId":"LLMSettingsAPIUpsertSettings","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/llmoptimization.v1.UpsertSettingsRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/llmoptimization.v1.UpsertSettingsResponse"}}},"description":"A successful response."}},"summary":"Updates the settings of the LLM Optimizer.","tags":["LLMSettingsAPI"],"x-codegen-request-body-name":"body"}},"/v1/me":{"get":{"operationId":"UsersAPICurrentUserProfile","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.users.v1beta1.CurrentUserProfileResponse"}}},"description":"A successful response."}},"summary":"Get profile for current user.","tags":["UsersAPI"]},"post":{"operationId":"UsersAPIUpdateCurrentUserProfile","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.users.v1beta1.User"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.users.v1beta1.User"}}},"description":""}},"summary":"Update profile for current user.","tags":["UsersAPI"],"x-codegen-request-body-name":"item"}},"/v1/metrics/clusters/{clusterId}/node-templates":{"get":{"operationId":"ReportMetricsAPIGetNodeTemplatePromMetrics","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"text/plain":{"schema":{"format":"string","type":"string"}}},"description":"A successful response."}},"summary":"Returns scrapable node-templates metrics in Prometheus format.","tags":["ReportMetricsAPI"]}},"/v1/metrics/clusters/{clusterId}/workload-costs":{"get":{"operationId":"ReportMetricsAPIGetWorkloadPromMetrics","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"If specified, these additional labels will be included in the results to the already\nreturned [cluster_id,workload_name,workload_type,namespace].","explode":true,"in":"query","name":"additionalLabels","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"text/plain":{"schema":{"format":"string","type":"string"}}},"description":"A successful response."}},"summary":"Returns scrapable workload metrics in Prometheus format.","tags":["ReportMetricsAPI"]}},"/v1/metrics/prom":{"get":{"operationId":"ReportMetricsAPIGetPromMetrics","responses":{"200":{"content":{"text/plain":{"schema":{"format":"string","type":"string"}}},"description":"A successful response."}},"summary":"Returns scrapable metrics in Prometheus format.","tags":["ReportMetricsAPI"]}},"/v1/notifications":{"get":{"operationId":"NotificationAPIListNotifications","parameters":[{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}},{"description":"The severities you want to filter","explode":true,"in":"query","name":"filter.severities","schema":{"items":{"enum":["UNSPECIFIED","CRITICAL","ERROR","WARNING","INFO","SUCCESS"],"type":"string"},"type":"array"},"style":"form"},{"description":"Filters to return acknowledged or not acknowledged notifications.","in":"query","name":"filter.isAcked","schema":{"type":"boolean"}},{"description":"The id of the Notification","in":"query","name":"filter.notificationId","schema":{"type":"string"}},{"description":"The name of the Notification","in":"query","name":"filter.notificationName","schema":{"type":"string"}},{"description":"The id of the Cluster included in the ClusterMetadata","in":"query","name":"filter.clusterId","schema":{"type":"string"}},{"description":"The name of the Cluster included in the ClusterMetadata","in":"query","name":"filter.clusterName","schema":{"type":"string"}},{"description":"The id of the Operation included in the OperationMetadata","in":"query","name":"filter.operationId","schema":{"type":"string"}},{"description":"The type of the Operation included in the OperationMetadata","in":"query","name":"filter.operationType","schema":{"type":"string"}},{"description":"The project the cluster belongs in the ClusterMetadata","in":"query","name":"filter.project","schema":{"type":"string"}},{"description":"Filters to return expired or not expired notifications.","in":"query","name":"filter.isExpired","schema":{"type":"boolean"}},{"description":"Name of the field you want to sort","in":"query","name":"sort.field","schema":{"type":"string"}},{"description":"The sort order, possible values ASC or DESC, if not provided asc is the default\n\n - ASC: ASC\n - asc: desc\n - DESC: ASC\n - desc: desc","in":"query","name":"sort.order","schema":{"default":"ASC","enum":["ASC","asc","DESC","desc"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.notifications.v1beta1.ListNotificationsResponse"}}},"description":"A successful response."}},"summary":"ListNotifications returns notification entries for given organization.","tags":["NotificationAPI"]}},"/v1/notifications/ack":{"post":{"operationId":"NotificationAPIAckNotifications","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.notifications.v1beta1.AckNotificationsRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.notifications.v1beta1.AckNotificationsResponse"}}},"description":"A successful response."}},"summary":"AckNotifications acknowledges multiple notifications for the given organization","tags":["NotificationAPI"],"x-codegen-request-body-name":"body"}},"/v1/notifications/webhook-categories":{"get":{"operationId":"NotificationAPIListWebhookCategories","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.notifications.v1beta1.ListWebhookCategoriesResponse"}}},"description":"A successful response."}},"summary":"ListWebhookConfig returns all available webhook categories and subcategories","tags":["NotificationAPI"]}},"/v1/notifications/webhook-configurations":{"get":{"operationId":"NotificationAPIListWebhookConfigs","parameters":[{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}},{"description":"The severities to be applied for filtering","explode":true,"in":"query","name":"filter.severities","schema":{"items":{"enum":["UNSPECIFIED","CRITICAL","ERROR","WARNING","INFO","SUCCESS"],"type":"string"},"type":"array"},"style":"form"},{"description":"The status to be applied for filtering","in":"query","name":"filter.status","schema":{"type":"string"}},{"description":"The categories to be applied for filtering. For all leave it (as well as subcategories) empty.","explode":true,"in":"query","name":"filter.categories","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"The subcategories to be applied for filtering.","explode":true,"in":"query","name":"filter.subcategories","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"Name of the field you want to sort","in":"query","name":"sort.field","schema":{"type":"string"}},{"description":"The sort order, possible values ASC or DESC, if not provided asc is the default\n\n - ASC: ASC\n - asc: desc\n - DESC: ASC\n - desc: desc","in":"query","name":"sort.order","schema":{"default":"ASC","enum":["ASC","asc","DESC","desc"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.notifications.v1beta1.ListWebhookConfigsResponse"}}},"description":"A successful response."}},"summary":"ListWebhookConfig returns all existing webhook configurations for the given organization","tags":["NotificationAPI"]},"post":{"operationId":"NotificationAPICreateWebhookConfig","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.notifications.v1beta1.AddWebhookConfig"}}},"description":"The Webhook configuration data","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.notifications.v1beta1.WebhookConfig"}}},"description":"The Webhook configuration data"}},"summary":"CreateWebhookConfig creates a new webhook configuration for the given organization","tags":["NotificationAPI"],"x-codegen-request-body-name":"config"}},"/v1/notifications/webhook-configurations/{id}":{"delete":{"operationId":"NotificationAPIDeleteWebhookConfig","parameters":[{"description":"The UUID of the Webhook configuration being deleted","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.notifications.v1beta1.DeleteWebhookConfigResponse"}}},"description":"A successful response."}},"summary":"DeleteWebhookConfig an existing webhook configuration","tags":["NotificationAPI"]},"get":{"operationId":"NotificationAPIGetWebhookConfig","parameters":[{"description":"The UUID of the Webhook configuration being deleted","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.notifications.v1beta1.WebhookConfig"}}},"description":"The Webhook configuration data"}},"summary":"GetWebhookConfig an existing webhook configuration for the given organization","tags":["NotificationAPI"]},"put":{"operationId":"NotificationAPIUpdateWebhookConfig","parameters":[{"description":"The UUID of the Webhook configuration being deleted","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.notifications.v1beta1.UpdateWebhookConfig"}}},"description":"The Webhook configuration data","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.notifications.v1beta1.WebhookConfig"}}},"description":"The Webhook configuration data"}},"summary":"UpdateWebhookConfig an existing webhook configuration for the given organization","tags":["NotificationAPI"],"x-codegen-request-body-name":"config"}},"/v1/notifications/{id}":{"get":{"operationId":"NotificationAPIGetNotification","parameters":[{"description":"The UUID of the Notification","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.notifications.v1beta1.Notification"}}},"description":"The Notification configuration data"}},"summary":"GetNotification returns an existing notification for the given organization","tags":["NotificationAPI"]}},"/v1/organizations":{"get":{"operationId":"UsersAPIListOrganizations","parameters":[{"description":"Filter organizations by user id.","in":"query","name":"userId","schema":{"type":"string"}},{"description":"Filter organizations by username.","in":"query","name":"username","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.users.v1beta1.ListOrganizationsResponse"}}},"description":"A successful response."}},"summary":"List user organizations. If all arguments are empty, lists organizations for caller user.\nOrganizations are sorted based on the date user joined the org, so first organization will always be the default one.","tags":["UsersAPI"]},"post":{"operationId":"UsersAPICreateOrganization","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.users.v1beta1.Organization"}}},"description":"Organization to create.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.users.v1beta1.Organization"}}},"description":"The created organization."}},"summary":"Creates an organization.","tags":["UsersAPI"],"x-codegen-request-body-name":"organization"}},"/v1/organizations/reservations/balance":{"get":{"operationId":"InventoryAPIGetOrganizationReservationsBalance","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GetOrganizationReservationsBalanceResponse"}}},"description":"A successful response."}},"summary":"Get reservations balance for the currently authenticated organization","tags":["InventoryAPI"]}},"/v1/organizations/resource-usage":{"get":{"operationId":"InventoryAPIGetOrganizationResourceUsage","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GetOrganizationResourceUsageResponse"}}},"description":"A successful response."}},"summary":"Get used resources for the currently authenticated organization","tags":["InventoryAPI"]}},"/v1/organizations/{id}":{"delete":{"operationId":"UsersAPIDeleteOrganization","parameters":[{"description":"Delete an organization by id.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.users.v1beta1.DeleteOrganizationResponse"}}},"description":"A successful response."}},"summary":"Delete an organization by id.","tags":["UsersAPI"]},"get":{"operationId":"UsersAPIGetOrganization","parameters":[{"description":"Get organization by id.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.users.v1beta1.Organization"}}},"description":"Organization data."}},"summary":"Get an organization by id.","tags":["UsersAPI"]},"post":{"operationId":"UsersAPIEditOrganization","parameters":[{"description":"Get organization by id.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.users.v1beta1.Organization"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.users.v1beta1.Organization"}}},"description":"Organization data."}},"summary":"Edit an organization by id.","tags":["UsersAPI"],"x-codegen-request-body-name":"organization"}},"/v1/organizations/{organizationId}/clusters/{clusterId}/sync-resource-usage":{"post":{"operationId":"InventoryAPISyncClusterResources","parameters":[{"description":"The organization ID.","in":"path","name":"organizationId","required":true,"schema":{"type":"string"}},{"description":"The cluster ID.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"A successful response."}},"summary":"Sync cluster resources","tags":["InventoryAPI"]}},"/v1/organizations/{organizationId}/reservations":{"get":{"operationId":"InventoryAPIGetReservations","parameters":[{"description":"The organization ID.","in":"path","name":"organizationId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GetReservationsResponse"}}},"description":"A successful response."}},"summary":"Get reservations","tags":["InventoryAPI"]},"post":{"operationId":"InventoryAPIAddReservation","parameters":[{"description":"The organization ID.","in":"path","name":"organizationId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GenericReservation"}}},"description":"Reservation","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.inventory.v1beta1.AddReservationResponse"}}},"description":"A successful response."}},"summary":"Add or update reservation","tags":["InventoryAPI"],"x-codegen-request-body-name":"reservation"}},"/v1/organizations/{organizationId}/reservations/balance":{"get":{"operationId":"InventoryAPIGetReservationsBalance","parameters":[{"description":"The organization ID.","in":"path","name":"organizationId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GetReservationsBalanceResponse"}}},"description":"A successful response."}},"summary":"Get reservations balance","tags":["InventoryAPI"]}},"/v1/organizations/{organizationId}/reservations/overwrite":{"post":{"operationId":"InventoryAPIOverwriteReservations","parameters":[{"description":"The organization ID.","in":"path","name":"organizationId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GenericReservationsList"}}},"description":"Reservations","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.inventory.v1beta1.OverwriteReservationsResponse"}}},"description":"A successful response."}},"summary":"OverwriteReservations","tags":["InventoryAPI"],"x-codegen-request-body-name":"reservations"}},"/v1/organizations/{organizationId}/reservations/{reservationId}":{"delete":{"operationId":"InventoryAPIDeleteReservation","parameters":[{"description":"The organization ID.","in":"path","name":"organizationId","required":true,"schema":{"type":"string"}},{"description":"Reservation ID","in":"path","name":"reservationId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"A successful response."}},"summary":"Delete reservation","tags":["InventoryAPI"]}},"/v1/organizations/{organizationId}/users":{"get":{"operationId":"UsersAPIListOrganizationUsers","parameters":[{"description":"Get organization users by organization id.","in":"path","name":"organizationId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.users.v1beta1.ListOrganizationUsersResponse"}}},"description":"A successful response."}},"summary":"Gets all users which are members of the organization.","tags":["UsersAPI"]},"post":{"operationId":"UsersAPIAddUserToOrganization","parameters":[{"description":"Organization id which should take the user in.","in":"path","name":"organizationId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.users.v1beta1.NewMembership"}}},"description":"Membership to add to an organization.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.users.v1beta1.AddUserToOrganizationResponse"}}},"description":"A successful response."}},"summary":"Makes the user a member of the organization.","tags":["UsersAPI"],"x-codegen-request-body-name":"membership"}},"/v1/organizations/{organizationId}/users/{userId}":{"delete":{"operationId":"UsersAPIRemoveUserFromOrganization","parameters":[{"description":"Organization id which should no longer contain the user.","in":"path","name":"organizationId","required":true,"schema":{"type":"string"}},{"description":"User id to remove.","in":"path","name":"userId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.users.v1beta1.RemoveUserFromOrganizationResponse"}}},"description":"A successful response."}},"summary":"Removes the user from organization members.","tags":["UsersAPI"]},"put":{"operationId":"UsersAPIUpdateOrganizationUser","parameters":[{"in":"path","name":"organizationId","required":true,"schema":{"type":"string"}},{"in":"path","name":"userId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsersAPI_UpdateOrganizationUser_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.users.v1beta1.Membership"}}},"description":""}},"summary":"Updates user in the organization.","tags":["UsersAPI"],"x-codegen-request-body-name":"body"}},"/v1/partners/{partnerOrganizationId}/organizations":{"get":{"operationId":"PartnersAPIListOrganizations","parameters":[{"description":"Id is a partner organization id.","in":"path","name":"partnerOrganizationId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.partners.v1beta1.ListOrganizationsResponse"}}},"description":"A successful response."}},"summary":"List partner child organizations.\nOrganizations are sorted based on the date organizations were created, so first organization will always be the latest.","tags":["PartnersAPI"]},"post":{"operationId":"PartnersAPICreateOrganization","parameters":[{"description":"PartnerOrganizationId is a partner organization id.","in":"path","name":"partnerOrganizationId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.partners.v1beta1.CreateOrganization"}}},"description":"Organization is a partner child organization request object.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.users.v1beta1.Organization"}}},"description":""}},"summary":"Create partner child organization.","tags":["PartnersAPI"],"x-codegen-request-body-name":"organization"}},"/v1/partners/{partnerOrganizationId}/organizations/{childOrganizationId}/tokens":{"post":{"operationId":"PartnersAPICreateToken","parameters":[{"description":"PartnerOrganizationId is a partner organization id.","in":"path","name":"partnerOrganizationId","required":true,"schema":{"type":"string"}},{"description":"ChildOrganizationId is a partner child organization id.","in":"path","name":"childOrganizationId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.partners.v1beta1.CreateToken"}}},"description":"Token is a token creation request object.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.authtoken.v1beta1.AuthToken"}}},"description":""}},"summary":"Returns token to access partner child organization.","tags":["PartnersAPI"],"x-codegen-request-body-name":"token"}},"/v1/partners/{partnerOrganizationId}/organizations/{childOrganizationId}/tokens/{id}":{"delete":{"operationId":"PartnersAPIDeleteToken","parameters":[{"description":"PartnerOrganizationId is a partner organization id.","in":"path","name":"partnerOrganizationId","required":true,"schema":{"type":"string"}},{"description":"ChildOrganizationId is a partner child organization id.","in":"path","name":"childOrganizationId","required":true,"schema":{"type":"string"}},{"description":"Id is a child organization access token id.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.partners.v1beta1.DeleteTokenResponse"}}},"description":"A successful response."}},"summary":"Deletes token which is used to access partner child organization.","tags":["PartnersAPI"]}},"/v1/pricing/clusters/{clusterId}/nodes":{"get":{"operationId":"PricingAPIGetPricingForClusterNodes","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"The node ids","explode":true,"in":"query","name":"nodeIds","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GetPricingForClusterNodesResponse"}}},"description":"A successful response."}},"summary":"Get pricing for cluster nodes by node ids or all nodes if ids are not provided","tags":["PricingAPI"]}},"/v1/pricing/clusters/{clusterId}/nodes/{nodeId}":{"get":{"operationId":"PricingAPIGetPricingForClusterNode","parameters":[{"description":"The ID of the cluster.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"The node id","in":"path","name":"nodeId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GetPricingForClusterNodeResponse"}}},"description":"A successful response."}},"summary":"Get pricing for single cluster node","tags":["PricingAPI"]}},"/v1/pricing/nodes":{"get":{"operationId":"PricingAPIGetPricingForOrganizationNodes","parameters":[{"description":"The node ids","explode":true,"in":"query","name":"nodeIds","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GetPricingForOrganizationNodesResponse"}}},"description":"A successful response."}},"summary":"Get the pricing of organization nodes by ids or all nodes if ids are not provided","tags":["PricingAPI"]}},"/v1/pricing/sync/gcp/billing-api":{"post":{"operationId":"PricingAPISyncGCPBillingAPIData","parameters":[{"description":"GCP cluster ID.","in":"query","name":"clusterId","schema":{"type":"string"}},{"description":"GCP billing account ID.","in":"query","name":"billingAccountId","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.inventory.v1beta1.SyncGCPBillingAPIDataResponse"}}},"description":"A successful response."}},"summary":"Sync GCP billing pricing API data","tags":["PricingAPI"]}},"/v1/rebalancing-schedules":{"get":{"description":"Lists rebalancing schedules for the organization.","operationId":"ScheduledRebalancingAPIListRebalancingSchedules","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/scheduledrebalancing.v1.ListRebalancingSchedulesResponse"}}},"description":"A successful response."}},"summary":"List rebalancing schedules","tags":["ScheduledRebalancingAPI"]},"post":{"description":"Creates an organization-wide rebalancing schedule that can be used on multiple rebalancing jobs.","operationId":"ScheduledRebalancingAPICreateRebalancingSchedule","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/scheduledrebalancing.v1.RebalancingSchedule"}}},"description":"RebalancingSchedule to create","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/scheduledrebalancing.v1.RebalancingSchedule"}}},"description":"Created schedule"}},"summary":"Create rebalancing schedule","tags":["ScheduledRebalancingAPI"],"x-codegen-request-body-name":"schedule"},"put":{"description":"Updates configuration of rebalancing schedule.","operationId":"ScheduledRebalancingAPIUpdateRebalancingSchedule","parameters":[{"in":"query","name":"id","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/scheduledrebalancing.v1.RebalancingScheduleUpdate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/scheduledrebalancing.v1.RebalancingSchedule"}}},"description":""}},"summary":"Edit rebalancing schedule","tags":["ScheduledRebalancingAPI"],"x-codegen-request-body-name":"schedule"}},"/v1/rebalancing-schedules/{id}":{"delete":{"description":"Deletes a rebalancing schedule.","operationId":"ScheduledRebalancingAPIDeleteRebalancingSchedule","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/scheduledrebalancing.v1.DeleteRebalancingScheduleResponse"}}},"description":"A successful response."}},"summary":"Delete rebalancing schedule","tags":["ScheduledRebalancingAPI"]},"get":{"description":"Gets a rebalancing schedule by it's ID","operationId":"ScheduledRebalancingAPIGetRebalancingSchedule","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/scheduledrebalancing.v1.RebalancingSchedule"}}},"description":""}},"summary":"Get rebalancing schedule","tags":["ScheduledRebalancingAPI"]}},"/v1/report/usage/daily":{"get":{"operationId":"UsageAPIGetUsageReport","parameters":[{"description":"Start time of resource usage period.","in":"query","name":"filter.period.from","schema":{"format":"date-time","type":"string"}},{"description":"End time of resource usage period.","in":"query","name":"filter.period.to","schema":{"format":"date-time","type":"string"}},{"description":"Optional cluster id for usage filtering","in":"query","name":"filter.clusterId","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.usage.v1beta1.GetUsageReportResponse"}}},"description":"A successful response."}},"summary":"GetUsageReport returns resource usage report.","tags":["UsageAPI"]}},"/v1/report/usage/summary":{"get":{"operationId":"UsageAPIGetUsageSummary","parameters":[{"description":"Start time of resource usage period.","in":"query","name":"period.from","schema":{"format":"date-time","type":"string"}},{"description":"End time of resource usage period.","in":"query","name":"period.to","schema":{"format":"date-time","type":"string"}},{"description":"Optional cluster id for which avg would be calculated.","in":"query","name":"clusterId","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.usage.v1beta1.GetUsageSummaryResponse"}}},"description":"A successful response."}},"summary":"GetUsageSummary returns resource usage summary for given period.\nIf no parameters specified the summary will be calculated for previous 3 months","tags":["UsageAPI"]}},"/v1/savings/assignments":{"get":{"operationId":"CommitmentsAPIGetCommitmentsAssignments","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GetCommitmentsAssignmentsResponse"}}},"description":"A successful response."}},"summary":"Get all commitments assignments","tags":["CommitmentsAPI"]},"post":{"operationId":"CommitmentsAPICreateCommitmentAssignment","parameters":[{"description":"Cluster ID","in":"query","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Commitment ID","in":"query","name":"commitmentId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"A successful response."}},"summary":"Assign commitment to a cluster","tags":["CommitmentsAPI"]}},"/v1/savings/assignments/{assignmentId}":{"delete":{"operationId":"CommitmentsAPIDeleteCommitmentAssignment","parameters":[{"description":"Assignment ID","in":"path","name":"assignmentId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"A successful response."}},"summary":"Remove commitment assignment","tags":["CommitmentsAPI"]}},"/v1/savings/commitments":{"get":{"operationId":"CommitmentsAPIGetCommitments","parameters":[{"description":"indicated if commitment usage should be included in a response","in":"query","name":"includeUsage","schema":{"type":"boolean"}},{"description":"get commitments that are assigned to a cluster","in":"query","name":"clusterId","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GetCommitmentsResponse"}}},"description":"A successful response."}},"summary":"Get commitments","tags":["CommitmentsAPI"]}},"/v1/savings/commitments/import/azure/reservation":{"post":{"operationId":"CommitmentsAPIImportAzureReservations","parameters":[{"description":"Behaviour\n\n - OVERWRITE: Overwrite all existing commitments","in":"query","name":"behaviour","schema":{"default":"OVERWRITE","enum":["OVERWRITE"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.AzureReservationImport"},"type":"array"}}},"description":"Import Azure reservation commitments","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"A successful response."}},"summary":"Import Azure commitments (reservations)","tags":["CommitmentsAPI"],"x-codegen-request-body-name":"azureReservationImports"}},"/v1/savings/commitments/import/gcp/cud":{"post":{"operationId":"CommitmentsAPIImportGCPCommitments","parameters":[{"description":"Behaviour\n\n - OVERWRITE: Overwrite all existing commitments","in":"query","name":"behaviour","schema":{"default":"OVERWRITE","enum":["OVERWRITE"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GCPCommitmentImport"},"type":"array"}}},"description":"Import GCPCommitments","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"A successful response."}},"summary":"Import GCP commitments (CUDs)","tags":["CommitmentsAPI"],"x-codegen-request-body-name":"gcpCommitmentImports"}},"/v1/savings/commitments/import/gcp/cud/script":{"get":{"operationId":"CommitmentsAPIGetGCPCommitmentsImportScript","parameters":[{"description":"GCP Project ids","explode":true,"in":"query","name":"projects","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GetGCPCommitmentsImportScriptResponse"}}},"description":"A successful response."}},"summary":"Get GCP commitments (CUDs) import script","tags":["CommitmentsAPI"]}},"/v1/savings/commitments/{commitmentId}":{"delete":{"operationId":"CommitmentsAPIDeleteCommitment","parameters":[{"description":"Commitment ID","in":"path","name":"commitmentId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"A successful response."}},"summary":"Delete commitment","tags":["CommitmentsAPI"]},"put":{"operationId":"CommitmentsAPIUpdateCommitment","parameters":[{"in":"path","name":"commitmentId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.inventory.v1beta1.Commitment"}}},"description":"Commitments","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.inventory.v1beta1.UpdateCommitmentResponse"}}},"description":"A successful response."}},"summary":"Update commitment","tags":["CommitmentsAPI"],"x-codegen-request-body-name":"commitment"}},"/v1/savings/commitments/{commitmentId}/assignments":{"get":{"operationId":"CommitmentsAPIGetCommitmentAssignments","parameters":[{"in":"path","name":"commitmentId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.inventory.v1beta1.GetCommitmentAssignmentsResponse"}}},"description":"A successful response."}},"summary":"Get commitment assignments","tags":["CommitmentsAPI"]},"put":{"operationId":"CommitmentsAPIReplaceCommitmentAssignments","parameters":[{"in":"path","name":"commitmentId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array"}}},"description":"Cluster ids. The order of the ids corresponds to priorities if prioritization is enabled for the commitment. The first item in the array is the highest priority one.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.inventory.v1beta1.ReplaceCommitmentAssignmentsResponse"}}},"description":"A successful response."}},"summary":"Replace commitment assignments","tags":["CommitmentsAPI"],"x-codegen-request-body-name":"clusterIds"}},"/v1/scripts/commitments/gcp/cud/import.sh":{"get":{"operationId":"CommitmentsAPIGetGCPCommitmentsScriptTemplate","responses":{"200":{"content":{"text/plain":{"schema":{"format":"string","type":"string"}}},"description":""}},"summary":"Get a template containing GCP commitments (CUDs) import script","tags":["CommitmentsAPI"]}},"/v1/scripts/egressd/install.sh":{"get":{"operationId":"ReportConfigurationAPIGetEgressdScriptTemplate","responses":{"200":{"content":{"text/plain":{"schema":{"format":"string","type":"string"}}},"description":""}},"summary":"Returns egressd installation script template.","tags":["ReportConfigurationAPI"]}},"/v1/scripts/kvisord/install.sh":{"get":{"operationId":"RuntimeSecurityAPIGetKvisordScriptTemplate","responses":{"200":{"content":{"text/plain":{"schema":{"format":"string","type":"string"}}},"description":""}},"summary":"Get a template containing kvisord installation script","tags":["RuntimeSecurityAPI"]}},"/v1/scripts/workload-autoscaler-install":{"get":{"operationId":"WorkloadOptimizationAPIGetInstallCmd","parameters":[{"in":"query","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workloadoptimization.v1.GetInstallCmdResponse"}}},"description":"A successful response."}},"summary":"(ALPHA) Returns workload-autoscaler installation command.","tags":["WorkloadOptimizationAPI"]}},"/v1/scripts/workload-autoscaler-install.sh":{"get":{"operationId":"WorkloadOptimizationAPIGetInstallScript","responses":{"200":{"content":{"text/plain":{"schema":{"format":"string","type":"string"}}},"description":""}},"summary":"(ALPHA) Returns workload-autoscaler installation script.","tags":["WorkloadOptimizationAPI"]}},"/v1/scripts/{provider}/cleanup.sh":{"get":{"operationId":"ExternalClusterAPIGetCleanupScriptTemplate","parameters":[{"in":"path","name":"provider","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"text/plain":{"schema":{"format":"string","type":"string"}}},"description":""}},"summary":"Returns cleanup script for the specified provider.","tags":["ExternalClusterAPI"]}},"/v1/scripts/{provider}/onboarding.sh":{"get":{"operationId":"ExternalClusterAPIGetCredentialsScriptTemplate","parameters":[{"in":"path","name":"provider","required":true,"schema":{"type":"string"}},{"in":"query","name":"crossRole","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"text/plain":{"schema":{"format":"string","type":"string"}}},"description":""}},"summary":"Returns credentials onboarding script for the specified provider.","tags":["ExternalClusterAPI"]}},"/v1/security/insights/agents":{"post":{"operationId":"InsightsAPIGetAgentsStatus","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetAgentsStatusRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetAgentsStatusResponse"}}},"description":"A successful response."}},"summary":"Get status of security agents","tags":["InsightsAPI"],"x-codegen-request-body-name":"body"}},"/v1/security/insights/attack-paths":{"get":{"operationId":"InsightsAPIGetAttackPaths","parameters":[{"description":"(optional) cluster_id filter","explode":true,"in":"query","name":"clusterIds","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetAttackPathsResponse"}}},"description":"A successful response."}},"summary":"Get attack paths list.","tags":["InsightsAPI"]}},"/v1/security/insights/attack-paths/{id}":{"get":{"operationId":"InsightsAPIGetAttackPathDetails","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetAttackPathDetailsResponse"}}},"description":"A successful response."}},"summary":"Get attack path details including graph.","tags":["InsightsAPI"]}},"/v1/security/insights/best-practices":{"get":{"operationId":"InsightsAPIGetBestPracticesReport","parameters":[{"description":"(optional) cluster_id filter","explode":true,"in":"query","name":"clusterIds","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"(optional) namespace filter","explode":true,"in":"query","name":"namespaces","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"(optional) threat category filter","in":"query","name":"category","schema":{"type":"string"}},{"description":"(optional) labels filter","explode":true,"in":"query","name":"labels","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"(optional) severity filter","explode":true,"in":"query","name":"severityLevels","schema":{"items":{"enum":["any","none","low","medium","high","critical","notAvailable"],"type":"string"},"type":"array"},"style":"form"},{"description":"(optional) standard to display rules in\n\n - cast: default standard\n - cisAks12: cis aks 12\n - cisEks12: cis eks 12\n - cisGke13: cis gke 13\n - cisAks13: cis aks 13\n - cisEks13: cis eks 13\n - cisGke14: cis gke 14\n - cisAks14: cis aks 14","in":"query","name":"standard","schema":{"default":"cast","enum":["cast","cisAks12","cisEks12","cisGke13","cisAks13","cisEks13","cisGke14","cisAks14"],"type":"string"}},{"description":"display read only clusters","in":"query","name":"readonlyClusters","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetBestPracticesReportResponse"}}},"description":"A successful response."}},"summary":"Get latest best practices report.","tags":["InsightsAPI"]}},"/v1/security/insights/best-practices/checks/resources":{"post":{"operationId":"InsightsAPIGetChecksResources","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetChecksResourcesRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetChecksResourcesResponse"}}},"description":"A successful response."}},"summary":"Get resources for provided checks and filtering\nPOST due to possible amount of parameters","tags":["InsightsAPI"],"x-codegen-request-body-name":"body"}},"/v1/security/insights/best-practices/checks/{ruleId}":{"get":{"operationId":"InsightsAPIGetBestPracticesCheckDetails","parameters":[{"description":"(required) rule id","in":"path","name":"ruleId","required":true,"schema":{"type":"string"}},{"description":"(optional) standard to use\n\n - cast: default standard\n - cisAks12: cis aks 12\n - cisEks12: cis eks 12\n - cisGke13: cis gke 13\n - cisAks13: cis aks 13\n - cisEks13: cis eks 13\n - cisGke14: cis gke 14\n - cisAks14: cis aks 14","in":"query","name":"standard","schema":{"default":"cast","enum":["cast","cisAks12","cisEks12","cisGke13","cisAks13","cisEks13","cisGke14","cisAks14"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetBestPracticesCheckDetailsResponse"}}},"description":"A successful response."}},"summary":"Get single check information and objects that matched the rule in the last best practices report.","tags":["InsightsAPI"]}},"/v1/security/insights/best-practices/checks/{ruleId}/enforce":{"post":{"operationId":"InsightsAPIEnforceCheckPolicy","parameters":[{"description":"(required) rule id to enforce","in":"path","name":"ruleId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsightsAPI_EnforceCheckPolicy_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.EnforceCheckPolicyResponse"}}},"description":"A successful response."}},"summary":"Enforce linter rule as policy.","tags":["InsightsAPI"],"x-codegen-request-body-name":"body"}},"/v1/security/insights/best-practices/checks/{ruleId}/exceptions":{"get":{"operationId":"InsightsAPIGetCheckExceptions","parameters":[{"in":"path","name":"ruleId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetCheckExceptionsResponse"}}},"description":"A successful response."}},"summary":"Get active exceptions for selected rule","tags":["InsightsAPI"]},"post":{"operationId":"InsightsAPISaveCheckExceptions","parameters":[{"in":"path","name":"ruleId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.CheckExceptionsPayload"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.SaveCheckExceptionsResponse"}}},"description":"A successful response."}},"summary":"Send check exceptions.","tags":["InsightsAPI"],"x-codegen-request-body-name":"payload"}},"/v1/security/insights/best-practices/checks/{ruleId}/exceptions/preview":{"post":{"operationId":"InsightsAPIPreviewExceptionGroupsResources","parameters":[{"in":"path","name":"ruleId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.CheckExceptionsPayload"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.PreviewExceptionGroupsResourcesResponse"}}},"description":"A successful response."}},"summary":"Get a preview of resources that will be excepted with exception groups","tags":["InsightsAPI"],"x-codegen-request-body-name":"payload"}},"/v1/security/insights/best-practices/checks/{ruleId}/resources":{"post":{"operationId":"InsightsAPIGetCheckResources","parameters":[{"in":"path","name":"ruleId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsightsAPI_GetCheckResources_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetCheckResourcesResponse"}}},"description":"A successful response."}},"summary":"Get resources for provided check and filtering\nPOST due to possible amount of parameters","tags":["InsightsAPI"],"x-codegen-request-body-name":"body"}},"/v1/security/insights/best-practices/enforcements/{enforcementId}":{"delete":{"operationId":"InsightsAPIDeletePolicyEnforcement","parameters":[{"description":"(required) enforcement id","in":"path","name":"enforcementId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.DeletePolicyEnforcementResponse"}}},"description":"A successful response."}},"summary":"Delete policy enforcement.","tags":["InsightsAPI"]}},"/v1/security/insights/best-practices/filters":{"get":{"operationId":"InsightsAPIGetBestPracticesReportFilters","parameters":[{"description":"(optional) return filters available for specific clusters","explode":true,"in":"query","name":"clusterIds","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetBestPracticesReportFiltersResponse"}}},"description":"A successful response."}},"summary":"Retrieve a list of possible filters for best practices report.","tags":["InsightsAPI"]}},"/v1/security/insights/best-practices/schedule-scan":{"post":{"operationId":"InsightsAPIScheduleBestPracticesScan","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.ScheduleBestPracticesScanRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.ScheduleBestPracticesScanResponse"}}},"description":"A successful response."}},"summary":"Schedule best practices scan for cluster.","tags":["InsightsAPI"],"x-codegen-request-body-name":"body"}},"/v1/security/insights/best-practices/summary":{"get":{"operationId":"InsightsAPIGetBestPracticesReportSummary","parameters":[{"description":"(optional) cluster_id filter","in":"query","name":"clusterId","schema":{"type":"string"}},{"description":"(optional) severity filter","in":"query","name":"severityLevel","schema":{"default":"any","enum":["any","none","low","medium","high","critical","notAvailable"],"type":"string"}},{"description":"(optional) standard to pick rules by\n\n - cast: default standard\n - cisAks12: cis aks 12\n - cisEks12: cis eks 12\n - cisGke13: cis gke 13\n - cisAks13: cis aks 13\n - cisEks13: cis eks 13\n - cisGke14: cis gke 14\n - cisAks14: cis aks 14","in":"query","name":"standard","schema":{"default":"cast","enum":["cast","cisAks12","cisEks12","cisGke13","cisAks13","cisEks13","cisGke14","cisAks14"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetBestPracticesReportSummaryResponse"}}},"description":"A successful response."}},"summary":"Get latest best practices report summary.","tags":["InsightsAPI"]}},"/v1/security/insights/daily-summary/{date}":{"get":{"operationId":"InsightsAPIGetDailySummary","parameters":[{"in":"path","name":"date","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetDailySummaryResponse"}}},"description":"A successful response."}},"summary":"GetDailySummary returns the data of the daily vulnerability notification.","tags":["InsightsAPI"]}},"/v1/security/insights/exceptions/best-practices/checks":{"get":{"operationId":"InsightsAPIGetExceptedChecks","parameters":[{"description":"(optional) cluster_id filter","explode":true,"in":"query","name":"clusterIds","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"(optional) namespace filter","explode":true,"in":"query","name":"namespaces","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"(optional) threat category filter","in":"query","name":"category","schema":{"type":"string"}},{"description":"(optional) severity filter","explode":true,"in":"query","name":"severityLevels","schema":{"items":{"enum":["any","none","low","medium","high","critical","notAvailable"],"type":"string"},"type":"array"},"style":"form"},{"description":"(optional) standard to display rules in\n\n - cast: default standard\n - cisAks12: cis aks 12\n - cisEks12: cis eks 12\n - cisGke13: cis gke 13\n - cisAks13: cis aks 13\n - cisEks13: cis eks 13\n - cisGke14: cis gke 14\n - cisAks14: cis aks 14","in":"query","name":"standard","schema":{"default":"cast","enum":["cast","cisAks12","cisEks12","cisGke13","cisAks13","cisEks13","cisGke14","cisAks14"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetExceptedChecksResponse"}}},"description":"A successful response."}},"summary":"Get checks that have not passed but are excepted","tags":["InsightsAPI"]}},"/v1/security/insights/images":{"get":{"operationId":"InsightsAPIGetContainerImages","parameters":[{"description":"(optional) status filter","in":"query","name":"status","schema":{"type":"string"}},{"description":"(optional) cves filter","explode":true,"in":"query","name":"cves","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"(optional) packages filter","explode":true,"in":"query","name":"packages","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"(optional) namespaces filter","explode":true,"in":"query","name":"namespaces","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"(optional) clusters filter","explode":true,"in":"query","name":"clusterIds","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"(optional) labels filter","explode":true,"in":"query","name":"labels","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"(optional) exception filter\n\n - all: return all resources\n - active: return only not excepted resources\n - excepted: return only excepted resources","in":"query","name":"exceptionFilter","schema":{"default":"all","enum":["all","active","excepted"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetContainerImagesResponse"}}},"description":"A successful response."}},"summary":"Get a list of container images for organization","tags":["InsightsAPI"]}},"/v1/security/insights/images/delete":{"post":{"operationId":"InsightsAPIDeleteImages","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.DeleteImagesRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.DeleteImagesResponse"}}},"description":"A successful response."}},"summary":"DeleteImages should be used for deleting old images","tags":["InsightsAPI"],"x-codegen-request-body-name":"body"}},"/v1/security/insights/images/exceptions":{"post":{"operationId":"InsightsAPIImageExceptionChanges","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.ImageExceptionChangesRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.ImageExceptionChangesResponse"}}},"description":"A successful response."}},"summary":"Send a diff of changes (x exceptions added, y exceptions removed) for excepted images","tags":["InsightsAPI"],"x-codegen-request-body-name":"body"}},"/v1/security/insights/images/filters":{"get":{"operationId":"InsightsAPIGetContainerImagesFilters","parameters":[{"description":"(optional) return filters available for specific clusters","explode":true,"in":"query","name":"clusterIds","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetContainerImagesFiltersResponse"}}},"description":"A successful response."}},"summary":"Get a list of possible filters for images endpoint","tags":["InsightsAPI"]}},"/v1/security/insights/images/summary":{"get":{"operationId":"InsightsAPIGetContainerImagesSummary","parameters":[{"description":"(optional) ID of cluster","in":"query","name":"clusterId","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetContainerImagesSummaryResponse"}}},"description":"A successful response."}},"summary":"Get container image vulnerability summary for organization","tags":["InsightsAPI"]}},"/v1/security/insights/images/{tagId}/alternatives":{"get":{"operationId":"InsightsAPIGetPublicImageAlternatives","parameters":[{"in":"path","name":"tagId","required":true,"schema":{"type":"string"}},{"description":"(optional) return distroless recommendation for language","in":"query","name":"language","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetPublicImageAlternativesResponse"}}},"description":"A successful response."}},"summary":"Get alternative images for public image","tags":["InsightsAPI"]}},"/v1/security/insights/images/{tagId}/details":{"get":{"operationId":"InsightsAPIGetContainerImageDetails","parameters":[{"in":"path","name":"tagId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetContainerImageDetailsResponse"}}},"description":"A successful response."}},"summary":"Get details for container image by tag","tags":["InsightsAPI"]}},"/v1/security/insights/images/{tagId}/digests":{"get":{"operationId":"InsightsAPIGetContainerImageDigests","parameters":[{"in":"path","name":"tagId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetContainerImageDigestsResponse"}}},"description":"A successful response."}},"summary":"Get container image digests for organization by tag id","tags":["InsightsAPI"]}},"/v1/security/insights/images/{tagId}/packages":{"get":{"operationId":"InsightsAPIGetContainerImagePackages","parameters":[{"in":"path","name":"tagId","required":true,"schema":{"type":"string"}},{"description":" - all: return all resources\n - active: return only not excepted resources\n - excepted: return only excepted resources","in":"query","name":"exceptionFilter","schema":{"default":"all","enum":["all","active","excepted"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetContainerImagePackagesResponse"}}},"description":"A successful response."}},"summary":"Get a list of image packages","tags":["InsightsAPI"]}},"/v1/security/insights/images/{tagId}/resources":{"get":{"operationId":"InsightsAPIGetContainerImageResources","parameters":[{"in":"path","name":"tagId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetContainerImageResourcesResponse"}}},"description":"A successful response."}},"summary":"Get cluster resources for container image","tags":["InsightsAPI"]}},"/v1/security/insights/images/{tagId}/vulnerabilities":{"get":{"operationId":"InsightsAPIGetContainerImageVulnerabilities","parameters":[{"in":"path","name":"tagId","required":true,"schema":{"type":"string"}},{"description":"(optional) Filter by package ID.","in":"query","name":"pkgId","schema":{"type":"string"}},{"description":" - all: return all resources\n - active: return only not excepted resources\n - excepted: return only excepted resources","in":"query","name":"exceptionFilter","schema":{"default":"all","enum":["all","active","excepted"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetContainerImageVulnerabilitiesResponse"}}},"description":"A successful response."}},"summary":"Get a list of image vulnerabilities","tags":["InsightsAPI"]}},"/v1/security/insights/images/{tagId}/vulnerabilities/{pkgVulnId}/details":{"get":{"operationId":"InsightsAPIGetContainerImagePackageVulnerabilityDetails","parameters":[{"in":"path","name":"tagId","required":true,"schema":{"type":"string"}},{"in":"path","name":"pkgVulnId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetContainerImagePackageVulnerabilityDetailsResponse"}}},"description":"A successful response."}},"summary":"Get image vulnerability for a specific package","tags":["InsightsAPI"]}},"/v1/security/insights/overview/attack-paths":{"get":{"operationId":"InsightsAPIGetAttackPathsOverview","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetAttackPathsOverviewResponse"}}},"description":"A successful response."}},"summary":"GetAttackPathsOverview returns a high-level overview of attack paths.","tags":["InsightsAPI"]}},"/v1/security/insights/overview/best-practices":{"get":{"operationId":"InsightsAPIGetBestPracticesOverview","parameters":[{"description":" - cast: default standard\n - cisAks12: cis aks 12\n - cisEks12: cis eks 12\n - cisGke13: cis gke 13\n - cisAks13: cis aks 13\n - cisEks13: cis eks 13\n - cisGke14: cis gke 14\n - cisAks14: cis aks 14","in":"query","name":"standard","schema":{"default":"cast","enum":["cast","cisAks12","cisEks12","cisGke13","cisAks13","cisEks13","cisGke14","cisAks14"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetBestPracticesOverviewResponse"}}},"description":"A successful response."}},"summary":"GetBestPracticesOverview returns a high-level overview of best practices.","tags":["InsightsAPI"]}},"/v1/security/insights/overview/image-security":{"get":{"operationId":"InsightsAPIGetImageSecurityOverview","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetImageSecurityOverviewResponse"}}},"description":"A successful response."}},"summary":"GetImageSecurityOverview returns a high-level overview of image security.","tags":["InsightsAPI"]}},"/v1/security/insights/overview/nodes":{"get":{"operationId":"InsightsAPIGetNodesOverview","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetNodesOverviewResponse"}}},"description":"A successful response."}},"summary":"GetManagedNodesOverview returns a high-level overview of managed nodes.","tags":["InsightsAPI"]}},"/v1/security/insights/resources/{id}":{"get":{"operationId":"InsightsAPIGetResourceDetails","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":" - cast: default standard\n - cisAks12: cis aks 12\n - cisEks12: cis eks 12\n - cisGke13: cis gke 13\n - cisAks13: cis aks 13\n - cisEks13: cis eks 13\n - cisGke14: cis gke 14\n - cisAks14: cis aks 14","in":"query","name":"standard","required":true,"schema":{"default":"cast","enum":["cast","cisAks12","cisEks12","cisGke13","cisAks13","cisEks13","cisGke14","cisAks14"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetResourceDetailsResponse"}}},"description":"A successful response."}},"summary":"GetResourceDetails for display in attack path nodes","tags":["InsightsAPI"]}},"/v1/security/insights/{clusterId}/agent":{"get":{"operationId":"InsightsAPIGetAgentStatus","parameters":[{"description":"(required) cluster id","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetAgentStatusResponse"}}},"description":"A successful response."}},"summary":"Get status of security agent","tags":["InsightsAPI"]}},"/v1/security/insights/{clusterId}/log":{"post":{"operationId":"InsightsAPIIngestAgentLog","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.LogEvent"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.IngestAgentLogResponse"}}},"description":"A successful response."}},"summary":"Ingest log sent by Security Agent","tags":["InsightsAPI"],"x-codegen-request-body-name":"log"}},"/v1/security/insights/{clusterId}/sync-state":{"post":{"operationId":"InsightsAPIGetAgentSyncState","parameters":[{"description":"(required) cluster id","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.AgentSyncStateFilter"}}},"description":"(required) sync state filter","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetAgentSyncStateResponse"}}},"description":"A successful response."}},"summary":"Agent calls this endpoint to sync state for scanned images.","tags":["InsightsAPI"],"x-codegen-request-body-name":"filter"}},"/v1/security/insights/{clusterId}/telemetry":{"post":{"operationId":"InsightsAPIPostAgentTelemetry","parameters":[{"description":"(required) cluster id","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsightsAPI_PostAgentTelemetry_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.PostAgentTelemetryResponse"}}},"description":"A successful response."}},"summary":"Agent posts telemetry data to this endpoint.","tags":["InsightsAPI"],"x-codegen-request-body-name":"body"}},"/v1/security/integrations":{"get":{"operationId":"InsightsAPIListIntegrations","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.ListIntegrationsResponse"}}},"description":"A successful response."}},"summary":"Get list of integrations.","tags":["InsightsAPI"]},"post":{"operationId":"InsightsAPICreateIntegration","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.CreateIntegrationRequest.Payload"}}},"description":"(required) integration payload","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.CreateIntegrationResponse"}}},"description":"A successful response."}},"summary":"Create integration.","tags":["InsightsAPI"],"x-codegen-request-body-name":"payload"}},"/v1/security/integrations/{id}":{"delete":{"operationId":"InsightsAPIDeleteIntegration","parameters":[{"description":"(required) integration id","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.DeleteIntegrationResponse"}}},"description":"A successful response."}},"summary":"Delete integration.","tags":["InsightsAPI"]},"get":{"operationId":"InsightsAPIGetIntegration","parameters":[{"description":"(required) integration id","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.GetIntegrationResponse"}}},"description":"A successful response."}},"summary":"Get integration.","tags":["InsightsAPI"]},"patch":{"operationId":"InsightsAPIUpdateIntegration","parameters":[{"description":"(required) integration id","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.UpdateIntegrationRequest.Payload"}}},"description":"(required) integration payload","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.UpdateIntegrationResponse"}}},"description":"A successful response."}},"summary":"Update integration.","tags":["InsightsAPI"],"x-codegen-request-body-name":"payload"}},"/v1/security/integrations/{id}/ticket":{"post":{"operationId":"InsightsAPICreateTicket","parameters":[{"description":"integration id","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsightsAPI_CreateTicket_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.CreateTicketResponse"}}},"description":"A successful response."}},"summary":"CreateTicket in the ticketing system setup through integrations.","tags":["InsightsAPI"],"x-codegen-request-body-name":"body"}},"/v1/security/runtime/anomalies":{"get":{"operationId":"RuntimeSecurityAPIGetAnomalies","parameters":[{"explode":true,"in":"query","name":"clusterIds","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"explode":true,"in":"query","name":"namespaces","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"in":"query","name":"status","schema":{"default":"ANOMALY_STATUS_FILTER_UNSPECIFIED","enum":["ANOMALY_STATUS_FILTER_UNSPECIFIED","ANOMALY_STATUS_FILTER_OPEN","ANOMALY_STATUS_FILTER_UNACKED","ANOMALY_STATUS_FILTER_CLOSED"],"type":"string"}},{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}},{"description":"Name of the field you want to sort","in":"query","name":"sort.field","schema":{"type":"string"}},{"description":"The sort order, possible values ASC or DESC, if not provided asc is the default\n\n - ASC: ASC\n - asc: desc\n - DESC: ASC\n - desc: desc","in":"query","name":"sort.order","schema":{"default":"ASC","enum":["ASC","asc","DESC","desc"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/runtime.v1.GetAnomaliesResponse"}}},"description":"A successful response."}},"tags":["RuntimeSecurityAPI"]}},"/v1/security/runtime/anomalies/ack":{"post":{"operationId":"RuntimeSecurityAPIAckAnomalies","parameters":[{"explode":true,"in":"query","name":"ids","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/runtime.v1.AckAnomaliesResponse"}}},"description":"A successful response."}},"tags":["RuntimeSecurityAPI"]}},"/v1/security/runtime/anomalies/close":{"post":{"operationId":"RuntimeSecurityAPICloseAnomalies","parameters":[{"explode":true,"in":"query","name":"ids","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"in":"query","name":"reason","schema":{"default":"CLOSE_REASON_UNSPECIFIED","enum":["CLOSE_REASON_UNSPECIFIED","CLOSE_REASON_FALSE_POSITIVE","CLOSE_REASON_RESOLVED","CLOSE_REASON_OTHER"],"type":"string"}},{"in":"query","name":"reasonDescription","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/runtime.v1.CloseAnomaliesResponse"}}},"description":"A successful response."}},"tags":["RuntimeSecurityAPI"]}},"/v1/security/runtime/anomalies/{id}":{"get":{"operationId":"RuntimeSecurityAPIGetAnomaly","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/runtime.v1.GetAnomalyResponse"}}},"description":"A successful response."}},"tags":["RuntimeSecurityAPI"]}},"/v1/security/runtime/overview/anomalies":{"get":{"operationId":"RuntimeSecurityAPIGetAnomaliesOverview","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/runtime.v1.GetAnomaliesOverviewResponse"}}},"description":"A successful response."}},"summary":"GetAnomaliesOverview returns an overview of anomalies for all nodes and workloads.","tags":["RuntimeSecurityAPI"]}},"/v1/security/runtime/{clusterId}/kvisord-script":{"get":{"operationId":"RuntimeSecurityAPIGetKvisordScript","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/runtime.v1.GetKvisordScriptResponse"}}},"description":"A successful response."}},"summary":"Get kvisord installation script","tags":["RuntimeSecurityAPI"]}},"/v1/security/settings/clusters/{id}":{"post":{"operationId":"InsightsAPIConfigureClusterSecuritySettings","parameters":[{"description":"The ID of the cluster to configure","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsightsAPI_ConfigureClusterSecuritySettings_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/insights.v1.ConfigureClusterSecuritySettingsResponse"}}},"description":"A successful response."}},"summary":"ConfigureClusterSecuritySettings allows to configure security settings on a cluster.","tags":["InsightsAPI"],"x-codegen-request-body-name":"body"}},"/v1/sso-connections":{"get":{"operationId":"SSOAPIListSSOConnections","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.sso.v1beta1.ListSSOConnectionsResponse"}}},"description":"A successful response."}},"summary":"List organization SSO connections.","tags":["SSOAPI"]},"post":{"operationId":"SSOAPICreateSSOConnection","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.sso.v1beta1.CreateSSOConnection"}}},"description":"Connection to add to an organization.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.sso.v1beta1.SSOConnection"}}},"description":""}},"summary":"Create organization SSO connection.","tags":["SSOAPI"],"x-codegen-request-body-name":"connection"}},"/v1/sso-connections/{id}":{"delete":{"operationId":"SSOAPIDeleteSSOConnection","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.sso.v1beta1.DeleteSSOConnectionResponse"}}},"description":"A successful response."}},"summary":"Delete organization SSO connection.","tags":["SSOAPI"]},"get":{"operationId":"SSOAPIGetSSOConnection","parameters":[{"description":"SSO connection ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.sso.v1beta1.SSOConnection"}}},"description":""}},"summary":"Get organization SSO connection.","tags":["SSOAPI"]},"post":{"operationId":"SSOAPIUpdateSSOConnection","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.sso.v1beta1.UpdateSSOConnection"}}},"description":"Updated SSO connection object.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/castai.sso.v1beta1.SSOConnection"}}},"description":""}},"summary":"Update organization SSO connection.","tags":["SSOAPI"],"x-codegen-request-body-name":"connection"}},"/v1/time-zones":{"get":{"description":"List available time zones for rebalancing schedules.","operationId":"ScheduledRebalancingAPIListAvailableRebalancingTZ","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/scheduledrebalancing.v1.ListAvailableRebalancingTZResponse"}}},"description":"A successful response."}},"summary":"List available rebalancing Time Zones","tags":["ScheduledRebalancingAPI"]}},"/v1/workload-autoscaling/clusters/{clusterId}/components/workload-autoscaler":{"get":{"operationId":"WorkloadOptimizationAPIGetAgentStatus2","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workloadoptimization.v1.GetAgentStatusResponse"}}},"description":"A successful response."}},"summary":"(ALPHA) Returns status of workload-autoscaler agent.","tags":["WorkloadOptimizationAPI"]}},"/v1/workload-autoscaling/clusters/{clusterId}/policies":{"get":{"operationId":"WorkloadOptimizationAPIListWorkloadScalingPolicies","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workloadoptimization.v1.ListWorkloadScalingPoliciesResponse"}}},"description":"A successful response."}},"summary":"Returns a list of workload scaling policies for given cluster.","tags":["WorkloadOptimizationAPI"]},"post":{"operationId":"WorkloadOptimizationAPICreateWorkloadScalingPolicy","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workloadoptimization.v1.NewWorkloadScalingPolicy"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workloadoptimization.v1.WorkloadScalingPolicy"}}},"description":""}},"summary":"Creates a scaling policy that can be assigned to workloads at a later time.","tags":["WorkloadOptimizationAPI"],"x-codegen-request-body-name":"policy"}},"/v1/workload-autoscaling/clusters/{clusterId}/policies/{policyId}":{"delete":{"operationId":"WorkloadOptimizationAPIDeleteWorkloadScalingPolicy","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"in":"path","name":"policyId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workloadoptimization.v1.DeleteWorkloadScalingPolicyResponse"}}},"description":"A successful response."}},"summary":"Deletes a scaling policy.","tags":["WorkloadOptimizationAPI"]},"put":{"operationId":"WorkloadOptimizationAPIUpdateWorkloadScalingPolicy","parameters":[{"description":"Cluster ID associated with the scaling policy.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Policy ID associated with the scaling policy.","in":"path","name":"policyId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workloadoptimization.v1.UpdateWorkloadScalingPolicy"}}},"description":"The values to configure for the policy.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workloadoptimization.v1.WorkloadScalingPolicy"}}},"description":"The updated scaling policy"}},"summary":"Updates a scaling policy.","tags":["WorkloadOptimizationAPI"],"x-codegen-request-body-name":"policy"}},"/v1/workload-autoscaling/clusters/{clusterId}/policies/{policyId}/workloads":{"put":{"operationId":"WorkloadOptimizationAPIAssignScalingPolicyWorkloads","parameters":[{"description":"Cluster ID associated with the scaling policy.","in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"description":"Policy ID associated with the scaling policy.","in":"path","name":"policyId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkloadOptimizationAPI_AssignScalingPolicyWorkloads_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workloadoptimization.v1.AssignScalingPolicyWorkloadsResponse"}}},"description":"A successful response."}},"summary":"Assigns the provided list of workload IDs to the specified policy.","tags":["WorkloadOptimizationAPI"],"x-codegen-request-body-name":"body"}},"/v1/workload-autoscaling/clusters/{clusterId}/workload-events":{"get":{"operationId":"WorkloadOptimizationAPIListWorkloadEvents2","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"in":"query","name":"workloadId","schema":{"type":"string"}},{"in":"query","name":"page.limit","schema":{"format":"uint64","type":"string"}},{"description":"Cursor that defines token indicating where to start the next page.\nEmpty value indicates to start from beginning of the dataset.","in":"query","name":"page.cursor","schema":{"type":"string"}},{"in":"query","name":"fromDate","schema":{"format":"date-time","type":"string"}},{"in":"query","name":"toDate","schema":{"format":"date-time","type":"string"}},{"in":"query","name":"workloadName","schema":{"type":"string"}},{"explode":true,"in":"query","name":"type","schema":{"items":{"enum":["EVENT_TYPE_INVALID","EVENT_TYPE_CONFIGURATION_CHANGED","EVENT_TYPE_RECOMMENDATION_APPLIED","EVENT_TYPE_SURGE","EVENT_TYPE_OOM_KILL"],"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workloadoptimization.v1.ListWorkloadEventsResponse"}}},"description":"A successful response."}},"summary":"(ALPHA) Returns a list of workload events for given cluster.","tags":["WorkloadOptimizationAPI"]}},"/v1/workload-autoscaling/clusters/{clusterId}/workloads":{"get":{"operationId":"WorkloadOptimizationAPIListWorkloads2","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workloadoptimization.v1.ListWorkloadsResponse"}}},"description":"A successful response."}},"summary":"(ALPHA) Returns a list of workloads for the given cluster.","tags":["WorkloadOptimizationAPI"]}},"/v1/workload-autoscaling/clusters/{clusterId}/workloads/{workloadId}":{"get":{"operationId":"WorkloadOptimizationAPIGetWorkload2","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"in":"path","name":"workloadId","required":true,"schema":{"type":"string"}},{"in":"query","name":"includeMetrics","schema":{"type":"boolean"}},{"in":"query","name":"fromTime","schema":{"format":"date-time","type":"string"}},{"in":"query","name":"toTime","schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workloadoptimization.v1.GetWorkloadResponse"}}},"description":"A successful response."}},"summary":"(ALPHA) Returns a workload by a given id.","tags":["WorkloadOptimizationAPI"]},"put":{"operationId":"WorkloadOptimizationAPIUpdateWorkload2","parameters":[{"in":"path","name":"clusterId","required":true,"schema":{"type":"string"}},{"in":"path","name":"workloadId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workloadoptimization.v1.UpdateWorkload"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workloadoptimization.v1.UpdateWorkloadResponse"}}},"description":"A successful response."}},"summary":"(ALPHA) Updates a CAST AI managed workload.","tags":["WorkloadOptimizationAPI"],"x-codegen-request-body-name":"workload"}},"/v1/workload-autoscaling/scripts/workload-autoscaler-install":{"get":{"operationId":"WorkloadOptimizationAPIGetInstallCmd2","parameters":[{"in":"query","name":"clusterId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workloadoptimization.v1.GetInstallCmdResponse"}}},"description":"A successful response."}},"summary":"(ALPHA) Returns workload-autoscaler installation command.","tags":["WorkloadOptimizationAPI"]}},"/v1/workload-autoscaling/scripts/workload-autoscaler-install.sh":{"get":{"operationId":"WorkloadOptimizationAPIGetInstallScript2","responses":{"200":{"content":{"text/plain":{"schema":{"format":"string","type":"string"}}},"description":""}},"summary":"(ALPHA) Returns workload-autoscaler installation script.","tags":["WorkloadOptimizationAPI"]}}},"security":[{"BearerAuth":[]},{"ApiKeyAuth":[]}],"servers":[{"url":"https://api.cast.ai"}],"tags":[{"description":"User authentication","name":"AuthAPI"},{"description":"utility endpoints for billing integrations","name":"BillingAPI"},{"description":"Provides the API to collect and analyze algorithm stats","name":"AlgorithmStatsAPI"},{"name":"AuditAPI"},{"name":"AuthTokenAPI"},{"description":"Provides the API for CAST AI Autoscaler.","name":"AutoscalerAPI"},{"name":"BillingAPI"},{"name":"ClusterActionsAPI"},{"name":"ComponentsAPI"},{"name":"AllocationGroupAPI"},{"name":"ClusterReportAPI"},{"name":"ReportConfigurationAPI"},{"name":"NamespaceReportAPI"},{"name":"NodeReportAPI"},{"name":"ReportMetricsAPI"},{"name":"WorkloadReportAPI"},{"name":"DedicatedInstanceAPI"},{"description":"Handles interaction with cluster evictor","name":"EvictorAPI"},{"description":"Manages external cluster resources","name":"ExternalClusterAPI"},{"name":"FeaturesAPI"},{"name":"InsightsAPI"},{"description":"Handles interaction with cluster autoscaler blacklist","name":"InventoryBlacklistAPI"},{"name":"CommitmentsAPI"},{"name":"InventoryAPI"},{"name":"PricingAPI"},{"name":"OpenAILLMOptimizationAPI"},{"name":"ProxyConfigAPI"},{"name":"LLMSettingsAPI"},{"name":"MetricsAPI"},{"name":"NodeConfigurationAPI"},{"description":"Handles interaction with cluster node templates","name":"NodeTemplatesAPI"},{"name":"NotificationAPI"},{"name":"OperationsAPI"},{"name":"PartnersAPI"},{"description":"Handles interaction with cluster autoscaling policies","name":"PoliciesAPI"},{"name":"RbacServiceAPI"},{"name":"RuntimeSecurityAPI"},{"description":"Provides management of schedules and jobs for running scheduled rebalancing plans.","name":"ScheduledRebalancingAPI"},{"name":"SSOAPI"},{"name":"UsageAPI"},{"name":"UsersAPI"},{"name":"WorkloadOptimizationAPI"}]}