Files
neon-api-python/neon_client/schema.py
T

764 lines
15 KiB
Python

# generated by datamodel-codegen:
# filename: v2.json
# timestamp: 2024-01-31T14:58:13+00:00
from __future__ import annotations
from dataclasses import dataclass
from datetime import datetime
from enum import Enum
from typing import Optional
from pydantic.dataclasses import dataclass
class Provisioner(Enum):
k8s_pod = 'k8s-pod'
k8s_neonvm = 'k8s-neonvm'
@dataclass
class Pagination:
cursor: str
@dataclass
class EmptyResponse:
pass
@dataclass
class ApiKeyCreateRequest:
key_name: str
@dataclass
class ApiKeyCreateResponse:
id: int
key: str
name: str
created_at: str
@dataclass
class ApiKeyRevokeResponse:
id: int
name: str
revoked: bool
last_used_from_addr: str
last_used_at: Optional[str] = None
@dataclass
class ApiKeysListResponseItem:
id: int
name: str
created_at: str
last_used_from_addr: str
last_used_at: Optional[str] = None
class OperationAction(Enum):
create_compute = 'create_compute'
create_timeline = 'create_timeline'
start_compute = 'start_compute'
suspend_compute = 'suspend_compute'
apply_config = 'apply_config'
check_availability = 'check_availability'
delete_timeline = 'delete_timeline'
create_branch = 'create_branch'
tenant_ignore = 'tenant_ignore'
tenant_attach = 'tenant_attach'
tenant_detach = 'tenant_detach'
tenant_reattach = 'tenant_reattach'
replace_safekeeper = 'replace_safekeeper'
disable_maintenance = 'disable_maintenance'
apply_storage_config = 'apply_storage_config'
class OperationStatus(Enum):
running = 'running'
finished = 'finished'
failed = 'failed'
scheduling = 'scheduling'
@dataclass
class Branch:
name: Optional[str] = None
role_name: Optional[str] = None
database_name: Optional[str] = None
@dataclass
class ProjectPermission:
id: str
granted_to_email: str
granted_at: str
revoked_at: Optional[str] = None
@dataclass
class ProjectPermissions:
project_permissions: list[ProjectPermission]
@dataclass
class GrantPermissionToProjectRequest:
email: str
@dataclass
class ProjectConsumption:
project_id: str
period_id: str
data_storage_bytes_hour: int
synthetic_storage_size: int
data_transfer_bytes: int
written_data_bytes: int
compute_time_seconds: int
active_time_seconds: int
updated_at: str
period_start: str
period_end: str
previous_period_id: str
data_storage_bytes_hour_updated_at: Optional[str] = None
synthetic_storage_size_updated_at: Optional[str] = None
data_transfer_bytes_updated_at: Optional[str] = None
written_data_bytes_updated_at: Optional[str] = None
compute_time_seconds_updated_at: Optional[str] = None
active_time_seconds_updated_at: Optional[str] = None
@dataclass
class Limits:
active_time: int
max_projects: int
max_branches: int
max_autoscaling_cu: float
cpu_seconds: int
max_active_endpoints: int
max_read_only_endpoints: int
max_allowed_ips: int
@dataclass
class ProjectLimits:
limits: Limits
class BranchState(Enum):
init = 'init'
ready = 'ready'
@dataclass
class Branch2:
parent_id: Optional[str] = None
name: Optional[str] = None
parent_lsn: Optional[str] = None
parent_timestamp: Optional[str] = None
@dataclass
class Branch3:
name: Optional[str] = None
@dataclass
class BranchUpdateRequest:
branch: Branch3
@dataclass
class ConnectionParameters:
database: str
password: str
role: str
host: str
pooler_host: str
@dataclass
class ConnectionDetails:
connection_uri: str
connection_parameters: ConnectionParameters
class EndpointState(Enum):
init = 'init'
active = 'active'
idle = 'idle'
class EndpointType(Enum):
read_only = 'read_only'
read_write = 'read_write'
class EndpointPoolerMode(Enum):
transaction = 'transaction'
@dataclass
class AllowedIps:
primary_branch_only: bool
ips: Optional[list[str]] = None
@dataclass
class ConnectionURIsResponse:
connection_uris: list[ConnectionDetails]
@dataclass
class ConnectionURIsOptionalResponse:
connection_uris: Optional[list[ConnectionDetails]] = None
@dataclass
class EndpointPasswordlessSessionAuthRequest:
session_id: str
Duration = int
@dataclass
class StatementData:
truncated: bool
fields: Optional[list[str]] = None
rows: Optional[list[list[str]]] = None
@dataclass
class ExplainData:
QUERY_PLAN: str
@dataclass
class Role:
branch_id: str
name: str
created_at: str
updated_at: str
password: Optional[str] = None
protected: Optional[bool] = None
@dataclass
class Role1:
name: str
@dataclass
class RoleCreateRequest:
role: Role1
@dataclass
class RoleResponse:
role: Role
@dataclass
class RolesResponse:
roles: list[Role]
@dataclass
class RolePasswordResponse:
password: str
class Brand(Enum):
amex = 'amex'
diners = 'diners'
discover = 'discover'
jcb = 'jcb'
mastercard = 'mastercard'
unionpay = 'unionpay'
unknown = 'unknown'
visa = 'visa'
@dataclass
class PaymentSourceBankCard:
last4: str
brand: Optional[Brand] = None
exp_month: Optional[int] = None
exp_year: Optional[int] = None
@dataclass
class PaymentSource:
type: str
card: Optional[PaymentSourceBankCard] = None
@dataclass
class BillingAccount1:
email: Optional[str] = None
@dataclass
class BillingAccountUpdateRequest:
billing_account: BillingAccount1
class BillingSubscriptionType(Enum):
UNKNOWN = 'UNKNOWN'
free = 'free'
pro = 'pro'
direct_sales = 'direct_sales'
aws_marketplace = 'aws_marketplace'
free_v2 = 'free_v2'
launch = 'launch'
scale = 'scale'
@dataclass
class Database:
id: int
branch_id: str
name: str
owner_name: str
created_at: str
updated_at: str
@dataclass
class Database1:
name: str
owner_name: str
@dataclass
class DatabaseCreateRequest:
database: Database1
@dataclass
class Database2:
name: Optional[str] = None
owner_name: Optional[str] = None
@dataclass
class DatabaseUpdateRequest:
database: Database2
@dataclass
class DatabaseResponse:
database: Database
@dataclass
class DatabasesResponse:
databases: list[Database]
@dataclass
class CurrentUserAuthAccount:
email: str
image: str
login: str
name: str
provider: str
@dataclass
class UpdateUserInfoRequest:
email: str
id: str
image: Optional[str] = None
first_name: Optional[str] = None
last_name: Optional[str] = None
@dataclass
class ProjectQuota:
active_time_seconds: Optional[int] = None
compute_time_seconds: Optional[int] = None
written_data_bytes: Optional[int] = None
data_transfer_bytes: Optional[int] = None
logical_size_bytes: Optional[int] = None
@dataclass
class HealthCheck:
status: str
@dataclass
class ProjectOwnerData:
email: str
branches_limit: int
subscription_type: BillingSubscriptionType
class SupportTicketSeverity(Enum):
low = 'low'
normal = 'normal'
high = 'high'
critical = 'critical'
@dataclass
class PaginationResponse:
pagination: Optional[Pagination] = None
@dataclass
class Operation:
id: str
project_id: str
action: OperationAction
status: OperationStatus
failures_count: int
created_at: str
updated_at: str
total_duration_ms: int
branch_id: Optional[str] = None
endpoint_id: Optional[str] = None
error: Optional[str] = None
retry_at: Optional[str] = None
@dataclass
class OperationResponse:
operation: Operation
@dataclass
class OperationsResponse:
operations: list[Operation]
@dataclass
class ProjectSettingsData:
quota: Optional[ProjectQuota] = None
allowed_ips: Optional[AllowedIps] = None
enable_logical_replication: Optional[bool] = None
@dataclass
class ProjectsConsumptionResponse:
projects: list[ProjectConsumption]
periods_in_response: int
@dataclass
class Branch1:
id: str
project_id: str
name: str
current_state: BranchState
creation_source: str
primary: bool
cpu_used_sec: int
compute_time_seconds: int
active_time_seconds: int
written_data_bytes: int
data_transfer_bytes: int
created_at: str
updated_at: str
parent_id: Optional[str] = None
parent_lsn: Optional[str] = None
parent_timestamp: Optional[str] = None
pending_state: Optional[BranchState] = None
logical_size: Optional[int] = None
last_reset_at: Optional[str] = None
@dataclass
class BranchCreateRequestEndpointOptions:
type: EndpointType
autoscaling_limit_min_cu: Optional[float] = None
autoscaling_limit_max_cu: Optional[float] = None
provisioner: Optional[Provisioner] = None
suspend_timeout_seconds: Optional[int] = None
@dataclass
class BranchCreateRequest:
endpoints: Optional[list[BranchCreateRequestEndpointOptions]] = None
branch: Optional[Branch2] = None
@dataclass
class BranchResponse:
branch: Branch1
@dataclass
class BranchesResponse:
branches: list[Branch1]
@dataclass
class StatementResult:
query: str
data: Optional[StatementData] = None
error: Optional[str] = None
explain_data: Optional[list[ExplainData]] = None
@dataclass
class BillingAccount:
payment_source: PaymentSource
subscription_type: BillingSubscriptionType
quota_reset_at_last: str
email: str
address_city: str
address_country: str
address_line1: str
address_line2: str
address_postal_code: str
address_state: str
orb_portal_url: Optional[str] = None
@dataclass
class BillingAccountResponse:
billing_account: BillingAccount
@dataclass
class CurrentUserInfoResponse:
active_seconds_limit: int
billing_account: BillingAccount
auth_accounts: list[CurrentUserAuthAccount]
email: str
id: str
image: str
login: str
name: str
last_name: str
projects_limit: int
branches_limit: int
max_autoscaling_limit: float
plan: str
compute_seconds_limit: Optional[int] = None
@dataclass
class EndpointSettingsData:
pg_settings: Optional[dict[str, str]] = None
pgbouncer_settings: Optional[dict[str, str]] = None
@dataclass
class DefaultEndpointSettings:
pg_settings: Optional[dict[str, str]] = None
pgbouncer_settings: Optional[dict[str, str]] = None
autoscaling_limit_min_cu: Optional[float] = None
autoscaling_limit_max_cu: Optional[float] = None
suspend_timeout_seconds: Optional[int] = None
@dataclass
class GeneralError:
code: str
message: str
@dataclass
class BranchOperations(BranchResponse, OperationsResponse):
pass
@dataclass
class DatabaseOperations(DatabaseResponse, OperationsResponse):
pass
@dataclass
class RoleOperations(RoleResponse, OperationsResponse):
pass
@dataclass
class ProjectListItem:
id: str
platform_id: str
region_id: str
name: str
provisioner: Provisioner
pg_version: int
proxy_host: str
branch_logical_size_limit: int
branch_logical_size_limit_bytes: int
store_passwords: bool
active_time: int
cpu_used_sec: int
creation_source: str
created_at: str
updated_at: str
owner_id: str
default_endpoint_settings: Optional[DefaultEndpointSettings] = None
settings: Optional[ProjectSettingsData] = None
maintenance_starts_at: Optional[str] = None
synthetic_storage_size: Optional[int] = None
quota_reset_at: Optional[str] = None
compute_last_active_at: Optional[str] = None
@dataclass
class Project:
data_storage_bytes_hour: int
data_transfer_bytes: int
written_data_bytes: int
compute_time_seconds: int
active_time_seconds: int
cpu_used_sec: int
id: str
platform_id: str
region_id: str
name: str
provisioner: Provisioner
pg_version: int
proxy_host: str
branch_logical_size_limit: int
branch_logical_size_limit_bytes: int
store_passwords: bool
creation_source: str
history_retention_seconds: int
created_at: str
updated_at: str
consumption_period_start: str
consumption_period_end: str
owner_id: str
default_endpoint_settings: Optional[DefaultEndpointSettings] = None
settings: Optional[ProjectSettingsData] = None
maintenance_starts_at: Optional[str] = None
synthetic_storage_size: Optional[int] = None
quota_reset_at: Optional[str] = None
owner: Optional[ProjectOwnerData] = None
compute_last_active_at: Optional[str] = None
@dataclass
class Project1:
settings: Optional[ProjectSettingsData] = None
name: Optional[str] = None
branch: Optional[Branch] = None
autoscaling_limit_min_cu: Optional[float] = None
autoscaling_limit_max_cu: Optional[float] = None
provisioner: Optional[Provisioner] = None
region_id: Optional[str] = None
default_endpoint_settings: Optional[DefaultEndpointSettings] = None
pg_version: Optional[int] = None
store_passwords: Optional[bool] = None
history_retention_seconds: Optional[int] = None
@dataclass
class ProjectCreateRequest:
project: Project1
@dataclass
class Project2:
settings: Optional[ProjectSettingsData] = None
name: Optional[str] = None
default_endpoint_settings: Optional[DefaultEndpointSettings] = None
history_retention_seconds: Optional[int] = None
@dataclass
class ProjectUpdateRequest:
project: Project2
@dataclass
class ProjectResponse:
project: Project
@dataclass
class ProjectsResponse:
projects: list[ProjectListItem]
@dataclass
class Endpoint:
host: str
id: str
project_id: str
branch_id: str
autoscaling_limit_min_cu: float
autoscaling_limit_max_cu: float
region_id: str
type: EndpointType
current_state: EndpointState
settings: EndpointSettingsData
pooler_enabled: bool
pooler_mode: EndpointPoolerMode
disabled: bool
passwordless_access: bool
creation_source: str
created_at: str
updated_at: str
proxy_host: str
suspend_timeout_seconds: int
provisioner: Provisioner
pending_state: Optional[EndpointState] = None
last_active: Optional[str] = None
@dataclass
class Endpoint1:
branch_id: str
type: EndpointType
region_id: Optional[str] = None
settings: Optional[EndpointSettingsData] = None
autoscaling_limit_min_cu: Optional[float] = None
autoscaling_limit_max_cu: Optional[float] = None
provisioner: Optional[Provisioner] = None
pooler_enabled: Optional[bool] = None
pooler_mode: Optional[EndpointPoolerMode] = None
disabled: Optional[bool] = None
passwordless_access: Optional[bool] = None
suspend_timeout_seconds: Optional[int] = None
@dataclass
class EndpointCreateRequest:
endpoint: Endpoint1
@dataclass
class Endpoint2:
branch_id: Optional[str] = None
autoscaling_limit_min_cu: Optional[float] = None
autoscaling_limit_max_cu: Optional[float] = None
provisioner: Optional[Provisioner] = None
settings: Optional[EndpointSettingsData] = None
pooler_enabled: Optional[bool] = None
pooler_mode: Optional[EndpointPoolerMode] = None
disabled: Optional[bool] = None
passwordless_access: Optional[bool] = None
suspend_timeout_seconds: Optional[int] = None
@dataclass
class EndpointUpdateRequest:
endpoint: Endpoint2
@dataclass
class EndpointResponse:
endpoint: Endpoint
@dataclass
class EndpointsResponse:
endpoints: list[Endpoint]
@dataclass
class EndpointOperations(EndpointResponse, OperationsResponse):
pass