Releases: G-Core/gcore-python
v0.35.0
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 fromcreated_resources.clustersinstead ofcreated_resources.ai_clusters
- Fixed
-
Regions
- Added
display_nameparameter toregions.list()— filter regions by display name with case-insensitive exact match
- Added
0.35.0 (2026-02-24)
Full Changelog: v0.34.0...v0.35.0
Features
Bug Fixes
- cloud: get cluster_id from task created_resources.clusters (b0d1b0d)
v0.34.0
We're excited to announce version 0.34.0!
CDN
-
IP Ranges
- ⚠ BREAKING CHANGE: Moved
ip_ranges.list_ips()toips.list()— useclient.cdn.ips.list()instead ofclient.cdn.ip_ranges.list_ips()
- ⚠ BREAKING CHANGE: Moved
-
Rules
- Renamed
RuleListResponsetype toCDNResourceRuleList— return type ofcdn_resources.rules.list()is nowCDNResourceRuleList
- Renamed
Cloud
- Security Groups
- ⚠ BREAKING CHANGE: Migrated
security_groups.rules.create()to v2 API endpoint — now returnsTaskIDListinstead ofSecurityGroupRule - ⚠ BREAKING CHANGE: Migrated
security_groups.rules.delete()to v2 API endpoint — now requiresgroup_idparameter and returnsTaskIDListinstead ofNone - Added
create_and_poll()method tosecurity_groups.rules— creates a rule and waits for the operation to complete, returnsSecurityGroupRule - Added
delete_and_poll()method tosecurity_groups.rules— deletes a rule and waits for the operation to complete
- ⚠ BREAKING CHANGE: Migrated
IAM
- Users
- ⚠ BREAKING CHANGE: Renamed
UserDetailedtoUser—users.get()andusers.update()now returnUserinstead ofUserDetailed/UserUpdated - ⚠ BREAKING CHANGE: Renamed
UserInvitetoUserInvited—users.invite()now returnsUserInvited - ⚠ BREAKING CHANGE: Renamed
UserRoleparam toUserGroupParam—users.invite()user_roleparameter now usesUserGroupParamtype - Extracted
AuthType,UserLanguage,UserGroup, andUserTypeas standalone types — previously inlineLiteralvalues
- ⚠ BREAKING CHANGE: Renamed
Object Storage
- ⚠ BREAKING CHANGE:
Storage.typechanged fromLiteral["sftp", "s3"]toLiteral["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, andstorage.buckets.policymethods - Deprecated
storage.credentials.recreate()
Streaming
-
Playlists
- ⚠ BREAKING CHANGE: Moved
playlists.list_videos()toplaylists.videos.list()— useclient.streaming.playlists.videos.list()instead
- ⚠ BREAKING CHANGE: Moved
-
Streams
- ⚠ BREAKING CHANGE: Moved
streams.create_clip()andstreams.list_clips()tostreams.clips.create()andstreams.clips.list()— useclient.streaming.streams.clipssubresource instead
- ⚠ BREAKING CHANGE: Moved
WAAP
-
API Discovery
- ⚠ BREAKING CHANGE: Split
domains.api_discoverymethods into subresources —list_scan_results()moved todomains.api_discovery.scan_results.list(),upload_openapi()moved todomains.api_discovery.openapi.upload(),get_settings()/update_settings()moved todomains.api_discovery.settings
- ⚠ BREAKING CHANGE: Split
-
Domains
- ⚠ BREAKING CHANGE: Moved
domains.toggle_policy()todomains.policies.toggle()— useclient.waap.domains.policies.toggle()instead
- ⚠ BREAKING CHANGE: Moved
Other
- Fixed
countfield in offset pagination changed fromOptional[int]to requiredint— affectsSyncOffsetPage,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_variablesmore 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
We're excited to announce version 0.33.0!
CDN
- Logs Uploader
- Added
log_sample_ratefield toLogsUploaderPolicyand related params — controls the fraction of log entries collected (value between 0 and 1)
- Added
Cloud
-
Bare Metal
- Added
reserved_capacityfield toBaremetalFlavor— number of available instances from reservations
- Added
-
GPU Bare Metal
- Added
reserved_capacityfield toGPUBaremetalFlavortypes — number of available instances from reservations
- Added
-
Tasks
- Added
create_security_group_ruleanddelete_security_group_ruletask types toTaskListParams - Added
security_group_rulesfield toTask.CreatedResources
- Added
WAAP
-
Advanced Rules / Custom Rules / Firewall Rules
- Action fields (
allow,captcha,handshake,monitor) tightened fromobjecttoDict[str, object]inWaapAdvancedRule,WaapCustomRule,WaapFirewallRuleand their corresponding params
- Action fields (
-
Analytics
- Added
session_idfield toWaapRequestDetailsandWaapRequestSummary
- Added
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
v0.32.0
We're excited to announce version 0.32.0!
Cloud
-
Kubernetes
- Added
include_capacityparam toK8sFlavorListParamsfor flavor capacity info - Added
CLUSTER_REBUILDandCLUSTER_SERVER_REBUILDtask states - ⚠ BREAKING CHANGE:
K8sClusterKubeconfig.created_atandexpires_atchanged from nullable to required
- Added
-
Load Balancers
- Added
admin_state_upfield across all load balancer, listener, pool, and health monitor response and param types - ⚠ BREAKING CHANGE:
secret_idin listener create params changed type for correct enum handling - Fixed
secret_idtype mismatch inlisteners.create_and_poll()— aligned toLiteral[""]to matchcreate()signature
- Added
CDN
-
CDN Resources
- ⚠ BREAKING CHANGE:
origininCDNResourceCreateParamschanged from requiredstrto optional — exactly one oforiginororigin_groupmust be provided - ⚠ BREAKING CHANGE:
origin_groupinCDNResourceCreateParamschanged from requiredintto optional
- ⚠ BREAKING CHANGE:
-
Logs Uploader
- Added
endpointfield to S3 OSS config — custom S3 endpoint now supported inLogsUploaderTargetand related params
- Added
FastEdge
- ⚠ BREAKING CHANGE:
App.storestype changed fromDict[str, int]toDict[str, AppStore]— stores now carryid,name, andcomment - ⚠ BREAKING CHANGE:
KvStoreresponse restructured —idfield removed,nameis now primary identifier,updatedrenamed toupdated_at, addedrevisionandsizefields - ⚠ BREAKING CHANGE:
kv_stores.new()return type changed fromKvStoretoKvStoreCreateResponse - ⚠ BREAKING CHANGE:
kv_stores.get()return type changed fromKvStoreGetResponsetoKvStore - ⚠ BREAKING CHANGE: Removed
KvStoreStatsandKvStoreGetResponsetypes - ⚠ BREAKING CHANGE: Removed
app_limit,daily_limit,hourly_limitfields fromClienttype - Renamed "KV Storage" to "Edge Storage" across all endpoints
- Added
storeas newTemplateParameterDataTypeenum value
WAAP
- Domain Statistics
- Added
decisionandoptional_actionfields toWaapRequestDetailsandWaapRequestSummary - Added
domain_idfield toWaapRequestSummary - Deprecated
domain_statistics.get_traffic_series()— useGET /v1/analytics/trafficinstead
- Added
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
v0.31.0
We're excited to announce version 0.31.0!
CDN
-
API Naming
- ⚠ BREAKING CHANGE: Renamed all
Cdn*types toCDN*for consistent Python naming conventions -CdnResourceis nowCDNResource,CdnAccountis nowCDNAccount,CdnAccountLimitsis nowCDNAccountLimits, etc. - ⚠ BREAKING CHANGE: Renamed
resourcesservice tocdn_resources- access CDN resources viaclient.cdn.cdn_resourcesinstead ofclient.cdn.resources
- ⚠ BREAKING CHANGE: Renamed all
-
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
- Added regex pattern support - you can now use regular expressions in User-Agent ACL rules with
WAAP
- Domain Statistics
- Deprecated
get_requests_series()method - use the new/v1/analytics/requestsendpoint instead - Updated action filter values - changed from "block", "captcha", "handshake", "monitor" to "allow", "block", "captcha", "handshake"
- Deprecated
SDK
- JSON Encoding
- Added custom JSON encoder for extended type support - automatically handles
datetimeobjects andpydantic.BaseModelinstances when serializing request bodies
- Added custom JSON encoder for extended type support - automatically handles
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
v0.30.0
We're excited to announce version 0.30.0!
Cloud
-
Security Groups
- ⚠ BREAKING CHANGE: Migrated to v2 API endpoints -
create()andupdate()methods now use/v2/security_groups/endpoints and returnTaskIDListinstead ofSecurityGroup - ⚠ BREAKING CHANGE: Simplified
create()parameters -name,description,rules, andtagsare now top-level parameters; removed nestedsecurity_groupwrapper - ⚠ BREAKING CHANGE: Removed
instancesparameter fromcreate()- use dedicated instance methods to assign security groups to instances - ⚠ BREAKING CHANGE: Changed
update()to use declarative rules -changed_rulesreplaced withrulesparameter; specify the complete desired state instead of create/delete actions - ⚠ BREAKING CHANGE: Added
descriptionparameter toupdate()- can now update security group description - Added
create_and_poll()method - creates a security group and waits for the operation to complete, returnsSecurityGroup - Added
update_and_poll()method - updates a security group and waits for the operation to complete, returnsSecurityGroup
- ⚠ BREAKING CHANGE: Migrated to v2 API endpoints -
-
Floating IPs
- ⚠ BREAKING CHANGE: Migrated
update()to v2 API endpoint - now uses/v2/floatingips/and returnsTaskIDListinstead ofFloatingIP - ⚠ BREAKING CHANGE: Added
port_idandfixed_ip_addressparameters toupdate()- use these for assignment operations instead of the deprecatedassign()method - Added
update_and_poll()method - updates a floating IP and waits for the operation to complete, returnsFloatingIP
- ⚠ BREAKING CHANGE: Migrated
-
Tasks
- Added
update_floating_ipandupdate_routertask types totask_typefilter - filter tasks by these new operation types inlist()method
- Added
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
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 withlist(),retrieve(), andupdate()methods onvolume_snapshotsresource
- Added volume snapshot support - create point-in-time snapshots of volumes with
-
Instances
- ⚠ BREAKING CHANGE: Renamed instance flavor response types -
FlavorListResponseis nowInstanceFlavorList, andFlavorListResponseResultis nowInstanceFlavorDetailedfor thelist()method
- ⚠ BREAKING CHANGE: Renamed instance flavor response types -
-
Load Balancers
- Fixed collection model types -
list()methods now return properly typed collection models withcountandresultsfields (affects load balancers, flavors, metrics, and statuses) - Added
order_byenum - properly typed sorting parameter with specific values like"created_at.asc","name.desc","provisioning_status.asc", etc. inlist()method - Improved parameter documentation - added clearer descriptions for
project_id,region_id,limit, andoffsetparameters - Added deprecation notices to listener timeout parameters -
timeout_member_connectandtimeout_member_datain listener create and update methods now recommend using pool-level timeout settings (pool.timeout_member_connectandpool.timeout_member_data) instead - Added
default_pool_idfield support - attach listeners to existing pools during creation
- Fixed collection model types -
-
Floating IPs
- Deprecated v1 API methods -
update(),assign(), andunassign()methods are now deprecated in favor of v2 PATCH endpoint (/v2/floatingips/<project_id>/<region_id>/<floating_ip_id>)
- Deprecated v1 API methods -
-
Kubernetes
- Fixed collection model types -
list()methods for clusters and cluster pools now return properly typed collection models withcountandresultsfields
- Fixed collection model types -
-
Security Groups
- Deprecated v1 API methods -
create()andupdate()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 thenameparameter
- Deprecated v1 API methods -
-
Networks
- Fixed collection model types -
list()methods for subnets and routers now return properly typed collection models
- Fixed collection model types -
-
Reserved Fixed IPs
- Fixed collection model types -
list()methods for VIP candidate ports and connected ports now return properly typed collection models
- Fixed collection model types -
-
Placement Groups
- Fixed collection model types -
list()methods now return properly typed collection models
- Fixed collection model types -
-
Quota Requests
- Added date range filtering - filter quota requests by creation date using
created_fromandcreated_toparameters - Added request ID filtering - filter by specific request IDs using the
request_idsparameter
- Added date range filtering - filter quota requests by creation date using
-
Audit Logs
- Updated audit log entry type definitions for improved type safety
- Added
task_idfilter parameter tolist()- filter audit logs by task ID
-
Tasks
- Updated task type definitions for better type safety
- Added
task_idfilter parameter tolist()- filter tasks by task ID
IAM
- Users
- ⚠ BREAKING CHANGE: Updated
update()method parameters -name,phone,auth_types,email, andlangfields are now required in user update calls - ⚠ BREAKING CHANGE: Removed
groupsparameter - group assignments can no longer be updated via theupdate()method, use dedicated group management endpoints instead - Removed
companyfield - no longer supported in user updates - Added
client_and_rolesfield to User type - lists all clients the user can access with their respective roles - Added
is_activefield 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)
- ⚠ BREAKING CHANGE: Updated
DNS
-
Zones
- Added
enabledfield to zone responses - indicates whether a DNS zone is enabled or disabled in zone list and get responses - Improved
metafield type safety - changed fromobjecttoDict[str, object]for better type checking when working with zone metadata - Simplified zone get response structure - removed nested
zonewrapper inZoneGetResponse, zone data is now at the top level for easier access - Removed
client_idfield fromZoneGetResponse- use zone-level properties instead
- Added
-
Resource Record Sets
- Updated RRSet type definitions for improved type safety
CDN
- Logs Uploader Policies
- Added
escape_special_charactersfield toLogsUploaderPolicy- enable automatic sanitization of special characters in log values (control characters, quotation marks, non-ASCII characters) for safer transport and processing - Added
format_typeenum - properly typed format type field withLiteral["json", ""]containing supported values:"json"for JSON lines output and""(empty) to use policy format configurations
- Added
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/checkoutversion (a407b00)
v0.28.0
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
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_clusterstogpu_baremetal.clusters(e.g.,client.cloud.gpu_baremetal_clusters.create()is nowclient.cloud.gpu_baremetal.clusters.create(), and all sub-resources likeinterfaces,servers,flavors, andimagesare now nested undergpu_baremetal.clusters)
- ⚠ BREAKING CHANGE: Restructured GPU baremetal clusters API - all methods have been moved from
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
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_clusterstogpu_virtual.clustersinterfaces, servers, volumes) - ⚠ BREAKING CHANGE: Moved GPU baremetal cluster interface attach/detach methods -
attach_interface()anddetach_interface()have been moved fromgpu_baremetal_clusters.serverstogpu_baremetal_clusters.interfaces - Added
image_idfield toGPUBaremetalCluster- now includes the image ID used by the cluster
- ⚠ BREAKING CHANGE: Restructured GPU virtual clusters API - all methods have been moved from
-
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
- Added
-
Load Balancers
- Enhanced load balancer listener creation - added
default_pool_idparameter to attach listener to an existing pool during creation
- Enhanced load balancer listener creation - added
DNS
- Network Mappings
- Improved type safety - changed
cidr4andcidr6fields fromList[object]toList[str]inDNSMappingEntryandDNSMappingEntryParam - ⚠ BREAKING CHANGE: Updated
replace()method signature - changed frompath_idandbody_idparameters to a singleidpath parameter - Removed
idfield fromNetworkMappingCreateParams(read-only field should not be in request parameters)
- Improved type safety - changed
Client
- Fixed
async_to_httpx_filesusage 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)