Skip to content

Releases: G-Core/gcore-python

v0.35.0

24 Feb 15:54

Choose a tag to compare

We're excited to announce version 0.35.0!

Cloud

  • GPU Bare Metal

    • Fixed create_and_poll() extracting cluster ID from wrong task field — now correctly reads from created_resources.clusters instead of created_resources.ai_clusters
  • Regions

    • Added display_name parameter to regions.list() — filter regions by display name with case-insensitive exact match

0.35.0 (2026-02-24)

Full Changelog: v0.34.0...v0.35.0

Features

  • add /release skill (90db06d)
  • api: aggregated API specs update (46ef334)

Bug Fixes

  • cloud: get cluster_id from task created_resources.clusters (b0d1b0d)

v0.34.0

24 Feb 08:08

Choose a tag to compare

We're excited to announce version 0.34.0!

CDN

  • IP Ranges

    • ⚠ BREAKING CHANGE: Moved ip_ranges.list_ips() to ips.list() — use client.cdn.ips.list() instead of client.cdn.ip_ranges.list_ips()
  • Rules

    • Renamed RuleListResponse type to CDNResourceRuleList — return type of cdn_resources.rules.list() is now CDNResourceRuleList

Cloud

  • Security Groups
    • ⚠ BREAKING CHANGE: Migrated security_groups.rules.create() to v2 API endpoint — now returns TaskIDList instead of SecurityGroupRule
    • ⚠ BREAKING CHANGE: Migrated security_groups.rules.delete() to v2 API endpoint — now requires group_id parameter and returns TaskIDList instead of None
    • Added create_and_poll() method to security_groups.rules — creates a rule and waits for the operation to complete, returns SecurityGroupRule
    • Added delete_and_poll() method to security_groups.rules — deletes a rule and waits for the operation to complete

IAM

  • Users
    • ⚠ BREAKING CHANGE: Renamed UserDetailed to Userusers.get() and users.update() now return User instead of UserDetailed / UserUpdated
    • ⚠ BREAKING CHANGE: Renamed UserInvite to UserInvitedusers.invite() now returns UserInvited
    • ⚠ BREAKING CHANGE: Renamed UserRole param to UserGroupParamusers.invite() user_role parameter now uses UserGroupParam type
    • Extracted AuthType, UserLanguage, UserGroup, and UserType as standalone types — previously inline Literal values

Object Storage

  • ⚠ BREAKING CHANGE: Storage.type changed from Literal["sftp", "s3"] to Literal["sftp", "s3_compatible"] — S3 storage type value is now "s3_compatible" in both responses and create params
  • Deprecated storage.create(), storage.update(), storage.delete()
  • Deprecated storage.buckets.create(), storage.buckets.list(), storage.buckets.delete()
  • Deprecated storage.buckets.cors, storage.buckets.lifecycle, and storage.buckets.policy methods
  • Deprecated storage.credentials.recreate()

Streaming

  • Playlists

    • ⚠ BREAKING CHANGE: Moved playlists.list_videos() to playlists.videos.list() — use client.streaming.playlists.videos.list() instead
  • Streams

    • ⚠ BREAKING CHANGE: Moved streams.create_clip() and streams.list_clips() to streams.clips.create() and streams.clips.list() — use client.streaming.streams.clips subresource instead

WAAP

  • API Discovery

    • ⚠ BREAKING CHANGE: Split domains.api_discovery methods into subresources — list_scan_results() moved to domains.api_discovery.scan_results.list(), upload_openapi() moved to domains.api_discovery.openapi.upload(), get_settings()/update_settings() moved to domains.api_discovery.settings
  • Domains

    • ⚠ BREAKING CHANGE: Moved domains.toggle_policy() to domains.policies.toggle() — use client.waap.domains.policies.toggle() instead

Other

  • Fixed count field in offset pagination changed from Optional[int] to required int — affects SyncOffsetPage, AsyncOffsetPage, and related pagination types

0.34.0 (2026-02-23)

Full Changelog: v0.33.0...v0.34.0

⚠ BREAKING CHANGES

  • iam: rename models and update examples
  • iam: rename models and update examples
  • waap: move domains.toggle_policy to domains.policies.toggle
  • waap: split api_discovery methods into scan_results, openapi, and settings subresources
  • streaming: move streams clip methods to streams.clips
  • streaming: move playlists.list_videos to playlists.videos.list
  • cdn: move ip_ranges.list_ips to ips.list

Features

  • api: aggregated API specs update (39acbb8)
  • api: aggregated API specs update (ebf5798)
  • api: aggregated API specs update (0deadd1)
  • api: aggregated API specs update (507f04d)
  • api: aggregated API specs update (dc25cc7)
  • api: aggregated API specs update (34d65c1)
  • api: aggregated API specs update (079e24c)
  • api: aggregated API specs update (9255354)
  • api: manual updates (15d9e1a)
  • cdn: enable terraform generation for cdn rules (4724ee3)
  • cloud: add create_and_poll/delete_and_poll for security group rules (#151) (b0934b4)
  • cloud: enable terraform for security group rules (v2) (9cd0f53)

Bug Fixes

  • api: revert unnecessary changes to additionalProperties (fd60fa5)
  • client: mark count in offset pagination as required (889d7fd)
  • cloud: keep v1 replace method for security group rules (6611ee4)
  • cloud: unset correct envs in scripts/test (7443a58)
  • storage: update storage type and ignore deprecation in examples (df7fbed)
  • waap: split api_discovery methods into scan_results, openapi, and settings subresources (b1c884f)

Chores

  • internal: add request options to SSE classes (7c4bdc6)
  • internal: make test_proxy_environment_variables more resilient (9e8214f)
  • streaming: skip Clip tests (da190a9)
  • update mock server docs (4e4a1f8)

Refactors

  • cdn: move ip_ranges.list_ips to ips.list (d86c213)
  • iam: rename models and update examples (2da7f85)
  • iam: rename models and update examples (9dce180)
  • streaming: move playlists.list_videos to playlists.videos.list (c156758)
  • streaming: move streams clip methods to streams.clips (3618fc7)
  • waap: move domains.toggle_policy to domains.policies.toggle (e17429a)

v0.33.0

16 Feb 18:19

Choose a tag to compare

We're excited to announce version 0.33.0!

CDN

  • Logs Uploader
    • Added log_sample_rate field to LogsUploaderPolicy and related params — controls the fraction of log entries collected (value between 0 and 1)

Cloud

  • Bare Metal

    • Added reserved_capacity field to BaremetalFlavor — number of available instances from reservations
  • GPU Bare Metal

    • Added reserved_capacity field to GPUBaremetalFlavor types — number of available instances from reservations
  • Tasks

    • Added create_security_group_rule and delete_security_group_rule task types to TaskListParams
    • Added security_group_rules field to Task.CreatedResources

WAAP

  • Advanced Rules / Custom Rules / Firewall Rules

    • Action fields (allow, captcha, handshake, monitor) tightened from object to Dict[str, object] in WaapAdvancedRule, WaapCustomRule, WaapFirewallRule and their corresponding params
  • Analytics

    • Added session_id field to WaapRequestDetails and WaapRequestSummary

0.33.0 (2026-02-16)

Full Changelog: v0.32.0...v0.33.0

Features

  • api: aggregated API specs update (13374b4)
  • api: aggregated API specs update (55f0747)
  • api: aggregated API specs update (d6b782c)
  • api: revert(cdn): remove client_config subresource (#207) (6bc418a)
  • cdn: add client_config subresource for terraform (5359417)

Chores

  • cloud: suppress deprecation warnings for security group rules (d263a2e)
  • format all api.md files (6f7ec77)

v0.32.0

11 Feb 14:43

Choose a tag to compare

We're excited to announce version 0.32.0!

Cloud

  • Kubernetes

    • Added include_capacity param to K8sFlavorListParams for flavor capacity info
    • Added CLUSTER_REBUILD and CLUSTER_SERVER_REBUILD task states
    • ⚠ BREAKING CHANGE: K8sClusterKubeconfig.created_at and expires_at changed from nullable to required
  • Load Balancers

    • Added admin_state_up field across all load balancer, listener, pool, and health monitor response and param types
    • ⚠ BREAKING CHANGE: secret_id in listener create params changed type for correct enum handling
    • Fixed secret_id type mismatch in listeners.create_and_poll() — aligned to Literal[""] to match create() signature

CDN

  • CDN Resources

    • ⚠ BREAKING CHANGE: origin in CDNResourceCreateParams changed from required str to optional — exactly one of origin or origin_group must be provided
    • ⚠ BREAKING CHANGE: origin_group in CDNResourceCreateParams changed from required int to optional
  • Logs Uploader

    • Added endpoint field to S3 OSS config — custom S3 endpoint now supported in LogsUploaderTarget and related params

FastEdge

  • ⚠ BREAKING CHANGE: App.stores type changed from Dict[str, int] to Dict[str, AppStore] — stores now carry id, name, and comment
  • ⚠ BREAKING CHANGE: KvStore response restructured — id field removed, name is now primary identifier, updated renamed to updated_at, added revision and size fields
  • ⚠ BREAKING CHANGE: kv_stores.new() return type changed from KvStore to KvStoreCreateResponse
  • ⚠ BREAKING CHANGE: kv_stores.get() return type changed from KvStoreGetResponse to KvStore
  • ⚠ BREAKING CHANGE: Removed KvStoreStats and KvStoreGetResponse types
  • ⚠ BREAKING CHANGE: Removed app_limit, daily_limit, hourly_limit fields from Client type
  • Renamed "KV Storage" to "Edge Storage" across all endpoints
  • Added store as new TemplateParameterDataType enum value

WAAP

  • Domain Statistics
    • Added decision and optional_action fields to WaapRequestDetails and WaapRequestSummary
    • Added domain_id field to WaapRequestSummary
    • Deprecated domain_statistics.get_traffic_series() — use GET /v1/analytics/traffic instead

SDK

  • Fixed lint compatibility with Python 3.14

0.32.0 (2026-02-11)

Full Changelog: v0.31.0...v0.32.0

Features

  • api: aggregated API specs update (a87437e)
  • api: aggregated API specs update (c9079e1)
  • api: aggregated API specs update (d0391a2)
  • api: aggregated API specs update (65973ea)
  • api: aggregated API specs update (732e36f)
  • api: aggregated API specs update (3b5292a)
  • api: aggregated API specs update (9bf5580)

Bug Fixes

  • cloud: fix type in create_and_poll signature of load balancer listeners (#146) (f99858a)
  • fastedge: remove readOnly name from app_store required fields (b373e1a)
  • types: correctly define false enum (d5b033c)

v0.31.0

30 Jan 16:50

Choose a tag to compare

We're excited to announce version 0.31.0!

CDN

  • API Naming

    • ⚠ BREAKING CHANGE: Renamed all Cdn* types to CDN* for consistent Python naming conventions - CdnResource is now CDNResource, CdnAccount is now CDNAccount, CdnAccountLimits is now CDNAccountLimits, etc.
    • ⚠ BREAKING CHANGE: Renamed resources service to cdn_resources - access CDN resources via client.cdn.cdn_resources instead of client.cdn.resources
  • User-Agent ACL

    • Added regex pattern support - you can now use regular expressions in User-Agent ACL rules with ~ (case-sensitive) or ~* (case-insensitive) prefix

WAAP

  • Domain Statistics
    • Deprecated get_requests_series() method - use the new /v1/analytics/requests endpoint instead
    • Updated action filter values - changed from "block", "captcha", "handshake", "monitor" to "allow", "block", "captcha", "handshake"

SDK

  • JSON Encoding
    • Added custom JSON encoder for extended type support - automatically handles datetime objects and pydantic.BaseModel instances when serializing request bodies

0.31.0 (2026-01-30)

Full Changelog: v0.30.0...v0.31.0

⚠ BREAKING CHANGES

  • cdn: rename resource to cdn_resource
  • api: change type casing from Cdn* to CDN*

Features

  • api: aggregated API specs update (cd35cbf)
  • api: aggregated API specs update (a7076d0)
  • api: manual upload of aggregated API specs (47734d2)
  • client: add custom JSON encoder for extended type support (b0c58f9)

Bug Fixes

  • client: internal references to CDN types (13f5d35)

Chores

  • ci: upgrade actions/github-script (a2328c0)

Refactors

  • cdn: rename resource to cdn_resource (aff2220)
  • cdn: change type casing from Cdn* to CDN* (4ea3f5c)

v0.30.0

22 Jan 15:37

Choose a tag to compare

We're excited to announce version 0.30.0!

Cloud

  • Security Groups

    • ⚠ BREAKING CHANGE: Migrated to v2 API endpoints - create() and update() methods now use /v2/security_groups/ endpoints and return TaskIDList instead of SecurityGroup
    • ⚠ BREAKING CHANGE: Simplified create() parameters - name, description, rules, and tags are now top-level parameters; removed nested security_group wrapper
    • ⚠ BREAKING CHANGE: Removed instances parameter from create() - use dedicated instance methods to assign security groups to instances
    • ⚠ BREAKING CHANGE: Changed update() to use declarative rules - changed_rules replaced with rules parameter; specify the complete desired state instead of create/delete actions
    • ⚠ BREAKING CHANGE: Added description parameter to update() - can now update security group description
    • Added create_and_poll() method - creates a security group and waits for the operation to complete, returns SecurityGroup
    • Added update_and_poll() method - updates a security group and waits for the operation to complete, returns SecurityGroup
  • Floating IPs

    • ⚠ BREAKING CHANGE: Migrated update() to v2 API endpoint - now uses /v2/floatingips/ and returns TaskIDList instead of FloatingIP
    • ⚠ BREAKING CHANGE: Added port_id and fixed_ip_address parameters to update() - use these for assignment operations instead of the deprecated assign() method
    • Added update_and_poll() method - updates a floating IP and waits for the operation to complete, returns FloatingIP
  • Tasks

    • Added update_floating_ip and update_router task types to task_type filter - filter tasks by these new operation types in list() method

0.30.0 (2026-01-22)

Full Changelog: v0.29.0...v0.30.0

⚠ BREAKING CHANGES

  • cloud: use create and update v2 endpoints for security groups
  • cloud: use v2 endpoint for floating IPs updates

Features

  • api: aggregated API specs update (fa26406)
  • cloud: add create_and_poll and update_and_poll methods for security groups (a0f8a75)
  • cloud: add update_and_poll method for floating IPs (26bfe18)
  • cloud: use create and update v2 endpoints for security groups (31501d3)
  • cloud: use v2 endpoint for floating IPs updates (31ef098)

v0.29.0

19 Jan 18:49

Choose a tag to compare

We're excited to announce version 0.29.0!

Cloud

  • Volumes

    • Added volume snapshot support - create point-in-time snapshots of volumes with create(), manage them with list(), retrieve(), and update() methods on volume_snapshots resource
  • Instances

    • ⚠ BREAKING CHANGE: Renamed instance flavor response types - FlavorListResponse is now InstanceFlavorList, and FlavorListResponseResult is now InstanceFlavorDetailed for the list() method
  • Load Balancers

    • Fixed collection model types - list() methods now return properly typed collection models with count and results fields (affects load balancers, flavors, metrics, and statuses)
    • Added order_by enum - properly typed sorting parameter with specific values like "created_at.asc", "name.desc", "provisioning_status.asc", etc. in list() method
    • Improved parameter documentation - added clearer descriptions for project_id, region_id, limit, and offset parameters
    • Added deprecation notices to listener timeout parameters - timeout_member_connect and timeout_member_data in listener create and update methods now recommend using pool-level timeout settings (pool.timeout_member_connect and pool.timeout_member_data) instead
    • Added default_pool_id field support - attach listeners to existing pools during creation
  • Floating IPs

    • Deprecated v1 API methods - update(), assign(), and unassign() methods are now deprecated in favor of v2 PATCH endpoint (/v2/floatingips/<project_id>/<region_id>/<floating_ip_id>)
  • Kubernetes

    • Fixed collection model types - list() methods for clusters and cluster pools now return properly typed collection models with count and results fields
  • Security Groups

    • Deprecated v1 API methods - create() and update() methods are now deprecated in favor of v2 endpoints (/v2/security_groups/<project_id>/<region_id>)
    • Added name filtering to list() - filter security groups by exact name match using the name parameter
  • Networks

    • Fixed collection model types - list() methods for subnets and routers now return properly typed collection models
  • Reserved Fixed IPs

    • Fixed collection model types - list() methods for VIP candidate ports and connected ports now return properly typed collection models
  • Placement Groups

    • Fixed collection model types - list() methods now return properly typed collection models
  • Quota Requests

    • Added date range filtering - filter quota requests by creation date using created_from and created_to parameters
    • Added request ID filtering - filter by specific request IDs using the request_ids parameter
  • Audit Logs

    • Updated audit log entry type definitions for improved type safety
    • Added task_id filter parameter to list() - filter audit logs by task ID
  • Tasks

    • Updated task type definitions for better type safety
    • Added task_id filter parameter to list() - filter tasks by task ID

IAM

  • Users
    • ⚠ BREAKING CHANGE: Updated update() method parameters - name, phone, auth_types, email, and lang fields are now required in user update calls
    • ⚠ BREAKING CHANGE: Removed groups parameter - group assignments can no longer be updated via the update() method, use dedicated group management endpoints instead
    • Removed company field - no longer supported in user updates
    • Added client_and_roles field to User type - lists all clients the user can access with their respective roles
    • Added is_active field to User type - indicates user activity status
    • Improved User type field requirements - changed multiple optional fields to required for better type safety (id, activated, auth_types, client, company, deleted, email, groups, lang)

DNS

  • Zones

    • Added enabled field to zone responses - indicates whether a DNS zone is enabled or disabled in zone list and get responses
    • Improved meta field type safety - changed from object to Dict[str, object] for better type checking when working with zone metadata
    • Simplified zone get response structure - removed nested zone wrapper in ZoneGetResponse, zone data is now at the top level for easier access
    • Removed client_id field from ZoneGetResponse - use zone-level properties instead
  • Resource Record Sets

    • Updated RRSet type definitions for improved type safety

CDN

  • Logs Uploader Policies
    • Added escape_special_characters field to LogsUploaderPolicy - enable automatic sanitization of special characters in log values (control characters, quotation marks, non-ASCII characters) for safer transport and processing
    • Added format_type enum - properly typed format type field with Literal["json", ""] containing supported values: "json" for JSON lines output and "" (empty) to use policy format configurations

0.29.0 (2026-01-19)

Full Changelog: v0.28.0...v0.29.0

⚠ BREAKING CHANGES

  • cloud: rename instance flavor model

Features

  • api: aggregated API specs update (02468c1)
  • api: aggregated API specs update (34ed205)
  • api: aggregated API specs update (5e0ea7b)
  • api: aggregated API specs update (3350bb9)
  • api: aggregated API specs update (d2e76de)
  • api: aggregated API specs update (667f129)
  • api: aggregated API specs update (e4f64fd)
  • api: aggregated API specs update (9f567f9)
  • api: aggregated API specs update (43225eb)
  • api: aggregated API specs update (3dc71fe)
  • api: aggregated API specs update (3c15807)
  • client: add support for binary request streaming (e5a58a3)
  • client: add support for binary request streaming (780229b)
  • cloud: add support for volume snapshots (19103d9)

Bug Fixes

  • cloud: rename instance flavor model (3374f91)
  • cloud: update type for instance flavor in examples (fabf3fb)
  • examples: ignore deprecated warnings for floating IPs (9101b4f)
  • examples: ignore deprecated warnings for security groups (823f421)
  • use correct collection models (31379f2)

Chores

  • internal: update actions/checkout version (a407b00)

v0.28.0

30 Dec 12:21

Choose a tag to compare

We're excited to announce version 0.28.0!

IAM

  • API Tokens
    • ⚠ BREAKING CHANGE: Response type renamed from APITokenCreate to APITokenCreated for the create() method
  • Users
    • ⚠ BREAKING CHANGE: Response type renamed from UserUpdate to UserUpdated for the update() method

Cloud

  • SSH Keys
    • ⚠ BREAKING CHANGE: Response type renamed from SSHKeyCreate to SSHKeyCreated for the create() method
    • Fixed SSH keys example code to use correct type names
  • User Role Assignments
    • ⚠ BREAKING CHANGE: Response type renamed from RoleAssignmentUpdateDelete to RoleAssignmentUpdatedDeleted for the update() and delete() methods
  • Inference API Keys
    • ⚠ BREAKING CHANGE: Response type renamed from InferenceAPIKeyCreate to InferenceAPIKeyCreated for the create() method
  • Registry Users
    • ⚠ BREAKING CHANGE: Response type renamed from RegistryUserCreate to RegistryUserCreated for the create() and create_multiple() methods

Streaming

  • Playlists
    • ⚠ BREAKING CHANGE: Response type renamed from PlaylistCreate to PlaylistCreated for the create() method

0.28.0 (2025-12-30)

Full Changelog: v0.27.0...v0.28.0

⚠ BREAKING CHANGES

  • change naming for POST, PUT, PATCH, DELETE models

Bug Fixes

  • cloud: fix SSH keys examples (4e79f57)

Chores

  • change naming for POST, PUT, PATCH, DELETE models (ae21e7c)

v0.27.0

30 Dec 10:23

Choose a tag to compare

We're excited to announce version 0.27.0!

Cloud

  • GPU Cloud
    • ⚠ BREAKING CHANGE: Restructured GPU baremetal clusters API - all methods have been moved from gpu_baremetal_clusters to gpu_baremetal.clusters (e.g., client.cloud.gpu_baremetal_clusters.create() is now client.cloud.gpu_baremetal.clusters.create(), and all sub-resources like interfaces, servers, flavors, and images are now nested under gpu_baremetal.clusters)

0.27.0 (2025-12-30)

Full Changelog: v0.26.0...v0.27.0

⚠ BREAKING CHANGES

  • cloud: restructure to be gpu_baremetal.clusters

Features

  • cloud: restructure to be gpu_baremetal.clusters (e6fec4e)

v0.26.0

23 Dec 12:06

Choose a tag to compare

v0.26.0

We're excited to announce version 0.26.0!

Cloud

  • GPU Cloud

    • ⚠ BREAKING CHANGE: Restructured GPU virtual clusters API - all methods have been moved from gpu_virtual_clusters to gpu_virtual.clustersinterfaces, servers, volumes)
    • ⚠ BREAKING CHANGE: Moved GPU baremetal cluster interface attach/detach methods - attach_interface() and detach_interface() have been moved from gpu_baremetal_clusters.servers to gpu_baremetal_clusters.interfaces
    • Added image_id field to GPUBaremetalCluster - now includes the image ID used by the cluster
  • Kubernetes

    • Added check_quota() method to k8s cluster pools - calculate quota requirements for a new cluster pool before creation, returns exceeded quotas if regional limits would be violated
  • Load Balancers

    • Enhanced load balancer listener creation - added default_pool_id parameter to attach listener to an existing pool during creation

DNS

  • Network Mappings
    • Improved type safety - changed cidr4 and cidr6 fields from List[object] to List[str] in DNSMappingEntry and DNSMappingEntryParam
    • ⚠ BREAKING CHANGE: Updated replace() method signature - changed from path_id and body_id parameters to a single id path parameter
    • Removed id field from NetworkMappingCreateParams (read-only field should not be in request parameters)

Client

  • Fixed async_to_httpx_files usage in PATCH method for proper file handling

0.26.0 (2025-12-23)

Full Changelog: v0.25.0...v0.26.0

⚠ BREAKING CHANGES

  • cloud: move methods to gpu_baremetal_clusters.interfaces.attach()/detach()
  • cloud: restructure to be gpu_virtual.clusters

Features

  • api: aggregated API specs update (3a272e8)
  • api: aggregated API specs update (789277a)
  • cloud: add k8s cluster pools check quotas method (326786c)

Bug Fixes

  • cloud: move methods to gpu_baremetal_clusters.interfaces.attach()/detach() (053ebcf)
  • cloud: restructure to be gpu_virtual.clusters (36b7b63)
  • examples: make code consistent with comment (85a0331)
  • use async_to_httpx_files in patch method (88c4050)

Chores

  • internal: add missing files argument to base client (7d81efb)
  • internal: codegen related update (3c38f42)
  • speedup initial import (ff1db23)