/** * This file was auto-generated by openapi-typescript. * Do not make direct changes to the file. */ export interface paths { "/scope": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List scopes * @description List scopes within an application. */ get: operations["scope:list"]; put?: never; /** * Create a scope * @description Create a new scope in an existing application. */ post: operations["scope:create"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/scope/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Read a scope * @description Read a specific scope. */ get: operations["scope:read"]; put?: never; post?: never; /** * Remove a scope * @description Remove a scope by ID. */ delete: operations["scope:delete"]; options?: never; head?: never; /** * Update a scope * @description Updates information for a scope. */ patch: operations["scope:update"]; trace?: never; }; "/scope/{scopeId}/dimension": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Assign a dimension * @description Assign a dimension to this scope. */ post: operations["scope_dimension:create"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/scope/{scopeId}/dimension/{slug}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; post?: never; /** * Remove a dimension * @description Remove a dimension from this scope. */ delete: operations["scope_dimension:delete"]; options?: never; head?: never; patch?: never; trace?: never; }; "/scope/{scopeId}/action": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Create a troubleshooting action * @description Submits an action to kill a specific instance or pod. */ post: operations["scope_troubleshooting_action:create"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/scope/{scopeId}/action/{actionId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** Read a troubleshooting action */ get: operations["scope_troubleshooting_action:read"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/scope_type": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List scope types * @description List your scope types for a given NRN. */ get: operations["scope-type:list"]; put?: never; /** * Create a scope type * @description Enable scope types for your applications. */ post: operations["scope-type:create"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/scope_type/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Read a scope type * @description Read a scope type. */ get: operations["scope-type:read"]; put?: never; post?: never; /** * Delete a scope type * @description Delete a scope type. */ delete: operations["scope-type:delete"]; options?: never; head?: never; /** * Update a scope type * @description Updates a scope type. */ patch: operations["scope-type:write"]; trace?: never; }; "/scope_domain": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List custom domains * @description List custom domains assigned to a scope. */ get: operations["scope_domain:list"]; put?: never; /** * Create a custom domain * @description Create a custom domain for a scope. */ post: operations["scope_domain:create"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/scope_domain/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Read a custom domain * @description Read a custom domain assigned to a scope. */ get: operations["scope_domain:read"]; put?: never; post?: never; /** * Delete a custom domain * @description Delete a custom domain from a scope. */ delete: operations["scope_domain:delete"]; options?: never; head?: never; /** * Update a custom domain * @description Updates a custom domain assigned to a scope. */ patch: operations["scope_domain:update"]; trace?: never; }; } export type webhooks = Record; export interface components { schemas: { scopeListResponse: { paging: { /** * @description The starting point for pagination. Defaults to 0 if not provided. * @example 0 */ offset: number; /** * @description The maximum number of results to return per page. The maximum allowed value is 200. * @example 200 */ limit: number; }; results: components["schemas"]["scope"][]; }; scope: { /** * @description A system-wide unique ID for the scope. * @example 1234 */ id: number; /** * @description The name of the scope. * @example Billing API */ name: string; /** * @description The name of the asset. * @example main-asset */ asset_name?: string; /** * @description Defines the scope type. * @example web_pool * @enum {string} */ type: "web_pool" | "scheduled_tasks" | "serverless"; status: components["schemas"]["scope:status"]; /** * @description An application-wide unique slug for the scope. * @example billing-api */ slug: string; /** * @description An application-wide unique domain for the scope. * @example billing-api-prod.nullapps.io */ domain: string; /** * @description The ID of the application that owns this scope. * @example 2345 */ application_id: number; requested_spec: components["schemas"]["scope:requested_spec"]; /** @description Defines optional features such as logging, auto scaling, and spot instances. See the [capabilities](/docs/scopes/capabilities) documentation for details. */ capabilities: Record; /** * @description Additional system messages related to the scope's status or configuration. * @example null */ messages?: Record; tier?: components["schemas"]["scope:tier"]; /** @description Indicates whether the scope was provisioned externally. `false` when provisioned by nullplatform, `true` if created externally (e.g., via Terraform). */ external_created?: boolean; /** * @description Tags associated with the scope. * @example [ * "requires_deployment", * "high_priority" * ] */ tags?: string[]; /** * @description NRN profiles that must be applied to this scope, independent of runtime configurations. * @example [ * "environment_production" * ] */ profiles?: string[]; /** * @description Defines runtime configuration dimensions, such as environment or region, that apply to this scope. * @example { * "environment": "production" * } */ dimensions?: Record; /** * @description Runtime configurations that apply to this scope based on its dimensions. * @example [ * 1234, * 2345 * ] */ runtime_configurations?: number[]; metadata?: components["schemas"]["MetadataComponent"]; }; "scope:create": { /** * @description The name of the scope. * @example Billing API */ name: string; /** * @description Defines the scope type. * @example web_pool * @enum {string} */ type: "web_pool" | "scheduled_tasks" | "serverless"; /** * @description The ID of the application that owns this scope. * @example 2345 */ application_id: number; requested_spec: components["schemas"]["scope:requested_spec"]; /** * @description Defines optional features such as logging, auto scaling, and spot instances. See the [capabilities](/docs/scopes/capabilities) documentation for details. * @example null */ capabilities?: Record; /** * @description Additional system messages related to the scope's status or configuration. * @example null */ messages?: Record; }; scope_update: { status?: components["schemas"]["scope:status"]; requested_spec?: components["schemas"]["scope:requested_spec"]; tier?: components["schemas"]["scope:tier"]; /** * @description Defines optional features such as logging, auto scaling, and spot instances. See the [capabilities](/docs/scopes/capabilities) documentation for details. * @example null */ capabilities?: Record; /** * @description The name of the asset. * @example main-asset */ asset_name?: string; /** * @description Additional system messages related to the scope's status or configuration. * @example null */ messages?: Record; /** * @description The ID of the instance to terminate. Applies only to the `instance_kill` action. * @example i-0a1234567890b1234 */ instance_id?: string; /** * @description An application-wide unique domain for the scope. * @example billing-api-prod.nullapps.io */ domain?: string; /** * @description Defines runtime configuration dimensions, such as environment or region, that apply to this scope. * @example { * "environment": "production" * } */ dimensions?: Record; }; /** * @description Defines the technical specifications for this scope (will be replaced by capabilities). * @example { * "memory_in_gb": 2, * "cpu_profile": "standard", * "local_storage_in_gb": 8 * } */ "scope:requested_spec": { /** * @description The amount of memory allocated to this scope, measured in gigabytes (GB). * @default 2 * @example 2 */ memory_in_gb: number; /** * @description Defines the CPU profile for this scope. * @example standard * @enum {string} */ cpu_profile?: "standard" | "intensive"; /** * @description The amount of local storage available to this scope, measured in gigabytes (GB). * @default 2 * @example 2 */ local_storage_in_gb: number; }; /** * @description The status of the scope. * @example active * @enum {string} */ "scope:status": | "pending" | "creating" | "active" | "updating" | "deleting" | "deleted" | "failed"; /** * @description Defines the tier type of the scope. * @example important * @enum {string} */ "scope:tier": "testing" | "non_critical" | "important" | "critical"; /** * @description Defines the parameters required for troubleshooting actions. * * > **Note**: Actions with the name `autoscaling_stop` and `autoscaling_start` do not require parameters. * @example { * "instance_id": "i-0a1234567890b1234" * } */ "scope:action:parameters": { /** * @description The ID of the instance to terminate. Applies only to the `instance_kill` action. * @example i-0a1234567890b1234 */ instance_id?: string; /** * @description The target number of instances. Applies only to the `autoscaling_fix` action. * @example 10 */ desired_instances?: number; /** * @description Indicates whether autoscaling should be enabled. Applies only to the `autoscaling_fix` action. * @example true */ autoscaling_enabled?: boolean; }; /** * @example { * "name": "instance_kill", * "parameters": { * "instance_id": "i-0a1234567890b1234" * } * } */ "scope:action:instance_kill:create": { /** * @description The name of the troubleshooting action * @example instance_kill * @enum {string} */ name: | "instance_kill" | "autoscaling_fix" | "autoscaling_stop" | "autoscaling_start"; parameters: components["schemas"]["scope:action:parameters"]; }; /** * @example { * "id": "5678", * "name": "instance_kill", * "parameters": { * "instance_id": "i-0a1234567890b1234" * } * } */ "scope:action": { /** * @description The ID of the troubleshooting action. * @example 5678 */ id?: string; /** * @description The name of the troubleshooting action. * @example instance_kill */ name?: string; /** * @description The status of the troubleshooting action. * @example pending * @enum {string} */ status?: | "pending" | "creating" | "active" | "updating" | "deleting" | "deleted" | "failed"; /** * @description The entity that the troubleshooting action is associated with. * @example scope */ entity?: string; /** * @description The ID of the entity that the troubleshooting action is associated with. * @example 1234 */ entity_id?: string; /** * @description The parameters for the troubleshooting action. * @example { * "instance_id": "i-0a1234567890b1234" * } */ parameters?: Record; /** * @description The messages for the troubleshooting action. * @example [ * "Instance i-0a1234567890b1234 not found" * ] */ messages?: string[]; /** * @description The NRN of the entity that the troubleshooting action is associated with. * @example organization=1:account=2:namespace=3:application=4:scope=1234 */ nrn?: string; /** * Format: date-time * @description The ISO-8601 UTC timestamp of when the troubleshooting action was created. * @example 2021-01-02T00:00:00Z */ created_at?: string; /** * Format: date-time * @description The ISO-8601 UTC timestamp of when the troubleshooting action was last updated. * @example 2021-01-02T00:00:00Z */ updated_at?: string | null; }; /** * @example { * "nrn": "organization=1:account=2:namespace=3:application=4", * "type": "custom", * "name": "EKS CronJob", * "status": "active", * "description": "Deploy periodic jobs in kubernetes", * "provider_type": "service", * "provider_id": "<>" * } */ ScopeTypeRequest: { /** * @description NRN (at or below) where the scope type applies. * @example organization=1:account=2:namespace=3:application=4 */ nrn?: string; /** * @description The type of scope type. * @example custom * @enum {string} */ type?: "custom"; /** * @description The display name shown to developers to identify the scope type. * @example EKS CronJob */ name?: string; /** * @description Short description of how the scope type works or what it does. * @example Deploy periodic jobs in kubernetes */ description?: string; /** * @description Whether this scope type is enabled to be used. * @example active * @enum {string} */ status?: "active" | "inactive"; /** * @description Defines the source entity that implements the scope type. * @example service * @enum {string} */ provider_type?: "service"; /** * @description The ID of the entity that implements the scope type. * @example <> */ provider_id?: string; }; /** * @example { * "id": 12345, * "nrn": "organization=1:account=2:namespace=3:application=4", * "type": "custom", * "name": "EKS CronJob", * "status": "active", * "description": "Deploy periodic jobs in kubernetes", * "provider_type": "service", * "provider_id": "<>" * } */ ScopeTypeResponse: { /** * @description The ID of the scope type. * @example 12345 */ id?: number; /** * @description NRN (at or below) where the the scope type applies. * @example organization=1:account=2:namespace=3:application=4 */ nrn?: string; /** * @description The type of scope type. * @example custom * @enum {string} */ type?: "custom"; /** * @description The name displayed to the developers to identify the type scope. * @example EKS CronJob */ name?: string; /** * @description Short description of how the scope type works or what it does. * @example Deploy periodic jobs in kubernetes */ description?: string; /** * @description Whether this scope type is enabled to be used. * @example active * @enum {string} */ status?: "active" | "inactive"; /** * @description Defines the source entity that implements the scope type. * @example service * @enum {string} */ provider_type?: "service"; /** * @description The ID of the entity that implements the scope type. * @example <> */ provider_id?: string; }; /** * @description The metadata loaded via the metadata catalog API. * @example { * "key": "value" * } */ MetadataComponent: { /** * @description The key of the metadata. * @example key */ key?: string; /** * @description The value of the metadata. * @example null */ value?: string; /** @description Additional metadata properties, including schemas and tags. */ additional_properties?: { /** @description The JSON schemas of the metadata. */ schemas?: Record[]; /** @description Tags associated with the metadata. */ tags?: { /** @example key */ key?: string; /** @example value */ value?: string; }[]; }; }; scopeDomainCreate: { /** * @description The scope ID that the custom domains is associated with.. * @example 1234 */ scope_id: string; /** * @description The name of the custom domain. * @example api.crypto-inc.com */ name: string; /** * @description The type of the domain. * @example scope * @enum {string} */ type: "scope"; }; scopeDomainResponse: { /** * @description The application-wide unique ID for the custom domain. * @example 1180cd02-1c36-4274-8e7a-4483b87e8f2e */ id: string; /** * @description The name of the custom domain. * @example api.crypto-inc.com */ name: string; /** * @description The type of the domain. * @example scope */ type: string; /** @description The selector for the custom domain. */ selector?: { /** * @description The organization ID. * @example 1" */ organization_id?: string; /** * @description The NRN of entity. * @example organization=1:account=2:namespace=3:application=4 */ nrn?: string; /** * @description The scope ID that the custom domains is associated with.. * @example 1234 */ scope_id?: string; }; /** * @description The status of the domain. * @example active * @enum {string} */ status?: "active" | "pending"; /** * Format: date-time * @description The ISO-8601 UTC timestamp of when the custom domain was created. * @example 2025-01-02T00:00:00Z */ created_at?: string; /** * Format: date-time * @description The ISO-8601 UTC timestamp of when the custom domain was last updated. * @example 2025-02-02T00:00:00Z */ updated_at?: string; }; scopeDomainListResponse: { paging: { /** * @description The starting point for pagination. Defaults to 0 if not provided. * @example 0 */ offset: number; /** * @description The maximum number of results to return per page. The maximum allowed value is 200. * @example 200 */ limit: number; }; results: components["schemas"]["scopeDomainResponse"][]; }; }; responses: never; parameters: { /** * @description Comma-separated properties that should be included in the metadata response. Available values: [schemas, tags]. * @example schemas,tags */ metadataIncludes: string; /** * @description Specifies whether it includes messages in the response. * @example true */ includeMessages: boolean; }; requestBodies: never; headers: never; pathItems: never; } export type $defs = Record; export interface operations { "scope:list": { parameters: { query: { /** * @description The ID of the application for the scopes being listed. Allows up to 10 comma-separated values." * @example 5678,1234 */ application_id: string; /** * @description Specifies whether it includes messages in the response. * @example true */ include_messages?: components["parameters"]["includeMessages"]; /** @description Status of the scope. */ status?: | "pending_approval" | "pending_hook" | "pending_approval_denied" | "pending" | "creating" | "active" | "updating" | "updating_approval" | "deleting" | "deleted" | "failed" | "stopping" | "stopped" | "cancelled"; /** @description Type of the scope. */ type?: | "web_pool" | "web_pool_k8s" | "scheduled_tasks" | "serverless" | "custom"; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description The list of scopes matching the query. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["scopeListResponse"]; }; }; }; }; "scope:create": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { "application/json": components["schemas"]["scope:create"]; }; }; responses: { /** @description The operation was successful. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["scope"]; }; }; }; }; "scope:read": { parameters: { query?: { /** * @description Comma-separated properties that should be included in the metadata response. Available values: [schemas, tags]. * @example schemas,tags */ metadata_include?: components["parameters"]["metadataIncludes"]; /** * @description Specifies whether it includes messages in the response. * @example true */ include_messages?: components["parameters"]["includeMessages"]; }; header?: never; path: { /** * @description The ID of the scope. * @example 1234 */ id: number; }; cookie?: never; }; requestBody?: never; responses: { /** @description An object representing the scope. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["scope"]; }; }; }; }; "scope:delete": { parameters: { query?: { /** * @description Force delete a scope if the regular delete fails. * * > ℹ️ **Preconditions** * > * > The "force delete" option becomes available only if a previous delete attempt was unsuccessful. * @example true */ force?: true; }; header?: never; path: { /** @description The unique ID for the scope. */ id: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description The operation was successful. */ 200: { headers: { [name: string]: unknown; }; content?: never; }; }; }; "scope:update": { parameters: { query?: never; header?: never; path: { /** * @description The ID of the scope. * @example 1234 */ id: number; }; cookie?: never; }; requestBody?: { content: { "application/json": components["schemas"]["scope_update"]; }; }; responses: { /** @description The operation was successful. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["scope"]; }; }; }; }; "scope_dimension:create": { parameters: { query?: never; header?: never; path: { /** * @description The unique ID for the scope. * @example 1234 */ scopeId: string; }; cookie?: never; }; requestBody?: { content: { "application/json": { [key: string]: string; }; }; }; responses: { /** @description The operation was successful. */ 204: { headers: { [name: string]: unknown; }; content?: never; }; }; }; "scope_dimension:delete": { parameters: { query?: never; header?: never; path: { /** * @description The unique ID for the scope. * @example 1234 */ scopeId: string; /** @description The dimension slug. */ slug: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description The operation was successful */ 204: { headers: { [name: string]: unknown; }; content?: never; }; }; }; "scope_troubleshooting_action:create": { parameters: { query?: never; header?: never; path: { /** @description The ID of the scope. */ scopeId: string; }; cookie?: never; }; requestBody: { content: { "application/json": components["schemas"]["scope:action:instance_kill:create"]; }; }; responses: { /** @description The operation was successful. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["scope:action"]; }; }; }; }; "scope_troubleshooting_action:read": { parameters: { query?: never; header?: never; path: { /** @description The ID of the scope. */ scopeId: string; /** @description The ID of the troubleshooting action. */ actionId: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description The operation was successful. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["scope:action"]; }; }; }; }; "scope-type:list": { parameters: { query: { /** * @description Filter scope type that match or are more specific than the provided NRN. Format: organization=1:account=2:namespace=3:application=4:scope=5 (trailing levels optional). Read one from an entity's nrn field, e.g. 'np application read --id --query .nrn'. * @example organization=1:account=2:namespace=3:application=4 */ nrn: string; /** @description Status of the scope type. */ status?: "active" | "inactive"; /** @description Type of the scope type. */ type?: "custom"; /** @description Provider type of the scope type. */ provider_type?: "service"; /** * @description Provider ID of the scope type. * @example <> */ provider_id?: string; /** * @description The name displayed to the developers to identify the scope type. * @example EKS CronJob */ name?: string; /** * @description Includes additional data from the provider definition. * @example capabilities */ include?: "capabilities"; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description The operation was successful. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ScopeTypeResponse"]; }; }; }; }; "scope-type:create": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { "application/json": components["schemas"]["ScopeTypeRequest"]; }; }; responses: { /** @description The operation was successful. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ScopeTypeResponse"]; }; }; }; }; "scope-type:read": { parameters: { query?: never; header?: never; path: { /** * @description The ID of the scope type. * @example 12345 */ id: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description The operation was successful. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ScopeTypeResponse"]; }; }; }; }; "scope-type:delete": { parameters: { query?: never; header?: never; path: { /** * @description The ID of the scope type. * @example 12345 */ id: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description The operation was successful. */ 200: { headers: { [name: string]: unknown; }; content?: never; }; }; }; "scope-type:write": { parameters: { query?: never; header?: never; path: { /** * @description The ID of the scope type. * @example 12345 */ id: string; }; cookie?: never; }; requestBody?: { content: { "application/json": components["schemas"]["ScopeTypeRequest"]; }; }; responses: { /** @description The operation was successful. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ScopeTypeResponse"]; }; }; }; }; "scope_domain:list": { parameters: { query: { /** * @description The ID of the organization. * @example 1 */ organization_id: string; /** * @description The ID of the scope. * @example 1234 */ scope_id?: string; /** @description The status of the domain. */ status?: "active" | "pending"; /** @description The name of the domain. */ name?: string; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description The operation was successful. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["scopeDomainListResponse"]; }; }; }; }; "scope_domain:create": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { "application/json": components["schemas"]["scopeDomainCreate"]; }; }; responses: { /** @description The operation was successful. */ 204: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["scopeDomainResponse"]; }; }; }; }; "scope_domain:read": { parameters: { query?: never; header?: never; path: { /** * @description The unique ID for the custom domain. * @example 1180cd02-1c36-4274-8e7a-4483b87e8f2e */ id: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description The operation was successful. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["scopeDomainResponse"]; }; }; }; }; "scope_domain:delete": { parameters: { query?: never; header?: never; path: { /** * @description The unique ID for the custom domain. * @example 1180cd02-1c36-4274-8e7a-4483b87e8f2e */ id: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description The operation was successful. */ 204: { headers: { [name: string]: unknown; }; content?: never; }; }; }; "scope_domain:update": { parameters: { query?: never; header?: never; path: { /** * @description The unique ID for the custom domain. * @example 1180cd02-1c36-4274-8e7a-4483b87e8f2e */ id: string; }; cookie?: never; }; requestBody?: { content: { "application/json": { /** * @description The name of the custom domain to update. * @example api.crypto-inc.com */ name: string; }; }; }; responses: { /** @description The operation was successful. */ 204: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["scopeDomainResponse"]; }; }; }; }; }