Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.18.0"
".": "0.19.0"
}
6 changes: 3 additions & 3 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 618
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-1089f2c131ebee7df82e158c4210c07f019b47549d84fe6ea7f022117c83a008.yml
openapi_spec_hash: 9758acbadc1ee1bc0d826d4657e1ad4a
config_hash: 79098512b2ff15053f2813524c207add
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-29e2cc8d4eccb3e6657d61c17d200583cc2bd5bd90494b331881256e362d5873.yml
openapi_spec_hash: de6249d14f251ef0a008dd506e0e99ef
config_hash: db560bc3873a6441828babf34ae5f184
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# Changelog

## 0.19.0 (2025-11-07)

Full Changelog: [v0.18.0...v0.19.0](https://github.com/G-Core/gcore-python/compare/v0.18.0...v0.19.0)

### Features

* **api:** aggregated API specs update ([7c0231a](https://github.com/G-Core/gcore-python/commit/7c0231aa3836ea9ab69769c2c06fe3fb70ca4a7b))
* **api:** aggregated API specs update ([00be2a9](https://github.com/G-Core/gcore-python/commit/00be2a9da75503640bb2ce1383162c48170ef819))
* **api:** aggregated API specs update ([8469462](https://github.com/G-Core/gcore-python/commit/846946265537791605e00dd260d5bd1a8eb7bddf))
* **api:** aggregated API specs update ([2c780f3](https://github.com/G-Core/gcore-python/commit/2c780f329064bcabb64492d7a237f9865feffd14))

## 0.18.0 (2025-11-04)

Full Changelog: [v0.17.0...v0.18.0](https://github.com/G-Core/gcore-python/compare/v0.17.0...v0.18.0)
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "gcore"
version = "0.18.0"
version = "0.19.0"
description = "The official Python library for the gcore API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion src/gcore/_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

__title__ = "gcore"
__version__ = "0.18.0" # x-release-please-version
__version__ = "0.19.0" # x-release-please-version
4 changes: 0 additions & 4 deletions src/gcore/resources/security/bgp_announces.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ def list(
self,
*,
announced: Optional[bool] | Omit = omit,
client_id: Optional[int] | Omit = omit,
origin: Optional[Literal["STATIC", "DYNAMIC"]] | Omit = omit,
site: Optional[str] | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
Expand Down Expand Up @@ -83,7 +82,6 @@ def list(
query=maybe_transform(
{
"announced": announced,
"client_id": client_id,
"origin": origin,
"site": site,
},
Expand Down Expand Up @@ -165,7 +163,6 @@ async def list(
self,
*,
announced: Optional[bool] | Omit = omit,
client_id: Optional[int] | Omit = omit,
origin: Optional[Literal["STATIC", "DYNAMIC"]] | Omit = omit,
site: Optional[str] | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
Expand Down Expand Up @@ -200,7 +197,6 @@ async def list(
query=await async_maybe_transform(
{
"announced": announced,
"client_id": client_id,
"origin": origin,
"site": site,
},
Expand Down
38 changes: 31 additions & 7 deletions src/gcore/resources/security/profiles.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from __future__ import annotations

from typing import Iterable, Optional
from typing import Iterable

import httpx

Expand Down Expand Up @@ -55,7 +55,7 @@ def create(
fields: Iterable[profile_create_params.Field],
profile_template: int,
site: str,
ip_address: Optional[str] | Omit = omit,
ip_address: str | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
Expand All @@ -69,6 +69,10 @@ def create(
created

Args:
site: Region where the protection profiles will be deployed

ip_address: Required for Universal template only. Optional for all others.

extra_headers: Send extra headers

extra_query: Add additional query parameters to the request
Expand Down Expand Up @@ -212,7 +216,7 @@ def recreate(
*,
fields: Iterable[profile_recreate_params.Field],
profile_template: int,
ip_address: Optional[str] | Omit = omit,
ip_address: str | Omit = omit,
site: str | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
Expand All @@ -225,6 +229,10 @@ def recreate(
Recreate profile with another profile template (for other cases use detail API)

Args:
ip_address: Required for Universal template only. Optional for all others.

site: Region where the protection profiles will be deployed

extra_headers: Send extra headers

extra_query: Add additional query parameters to the request
Expand Down Expand Up @@ -256,7 +264,7 @@ def replace(
*,
fields: Iterable[profile_replace_params.Field],
profile_template: int,
ip_address: Optional[str] | Omit = omit,
ip_address: str | Omit = omit,
site: str | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
Expand All @@ -271,6 +279,10 @@ def replace(
updated

Args:
ip_address: Required for Universal template only. Optional for all others.

site: Region where the protection profiles will be deployed

extra_headers: Send extra headers

extra_query: Add additional query parameters to the request
Expand Down Expand Up @@ -323,7 +335,7 @@ async def create(
fields: Iterable[profile_create_params.Field],
profile_template: int,
site: str,
ip_address: Optional[str] | Omit = omit,
ip_address: str | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
Expand All @@ -337,6 +349,10 @@ async def create(
created

Args:
site: Region where the protection profiles will be deployed

ip_address: Required for Universal template only. Optional for all others.

extra_headers: Send extra headers

extra_query: Add additional query parameters to the request
Expand Down Expand Up @@ -480,7 +496,7 @@ async def recreate(
*,
fields: Iterable[profile_recreate_params.Field],
profile_template: int,
ip_address: Optional[str] | Omit = omit,
ip_address: str | Omit = omit,
site: str | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
Expand All @@ -493,6 +509,10 @@ async def recreate(
Recreate profile with another profile template (for other cases use detail API)

Args:
ip_address: Required for Universal template only. Optional for all others.

site: Region where the protection profiles will be deployed

extra_headers: Send extra headers

extra_query: Add additional query parameters to the request
Expand Down Expand Up @@ -524,7 +544,7 @@ async def replace(
*,
fields: Iterable[profile_replace_params.Field],
profile_template: int,
ip_address: Optional[str] | Omit = omit,
ip_address: str | Omit = omit,
site: str | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
Expand All @@ -539,6 +559,10 @@ async def replace(
updated

Args:
ip_address: Required for Universal template only. Optional for all others.

site: Region where the protection profiles will be deployed

extra_headers: Send extra headers

extra_query: Add additional query parameters to the request
Expand Down
28 changes: 0 additions & 28 deletions src/gcore/resources/storage/credentials.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,20 +62,6 @@ def recreate(
password for SFTP storage).

Args:
delete_sftp_password: Remove the SFTP password, disabling password authentication. Only applicable to
SFTP storage type.

generate_s3_keys: Generate new S3 access and secret keys for S3 storage. Only applicable to S3
storage type.

generate_sftp_password: Generate a new random password for SFTP access. Only applicable to SFTP storage
type.

reset_sftp_keys: Reset/remove all SSH keys associated with the SFTP storage. Only applicable to
SFTP storage type.

sftp_password: Set a custom password for SFTP access. Only applicable to SFTP storage type.

extra_headers: Send extra headers

extra_query: Add additional query parameters to the request
Expand Down Expand Up @@ -144,20 +130,6 @@ async def recreate(
password for SFTP storage).

Args:
delete_sftp_password: Remove the SFTP password, disabling password authentication. Only applicable to
SFTP storage type.

generate_s3_keys: Generate new S3 access and secret keys for S3 storage. Only applicable to S3
storage type.

generate_sftp_password: Generate a new random password for SFTP access. Only applicable to SFTP storage
type.

reset_sftp_keys: Reset/remove all SSH keys associated with the SFTP storage. Only applicable to
SFTP storage type.

sftp_password: Set a custom password for SFTP access. Only applicable to SFTP storage type.

extra_headers: Send extra headers

extra_query: Add additional query parameters to the request
Expand Down
4 changes: 2 additions & 2 deletions src/gcore/resources/storage/storage.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ def with_streaming_response(self) -> StorageResourceWithStreamingResponse:
def create(
self,
*,
location: Literal["s-ed1", "s-drc2", "s-sgc1", "s-nhn2", "s-darz", "s-ws1", "ams", "sin", "fra", "mia"],
location: str,
name: str,
type: Literal["sftp", "s3"],
generate_sftp_password: bool | Omit = omit,
Expand Down Expand Up @@ -499,7 +499,7 @@ def with_streaming_response(self) -> AsyncStorageResourceWithStreamingResponse:
async def create(
self,
*,
location: Literal["s-ed1", "s-drc2", "s-sgc1", "s-nhn2", "s-darz", "s-ws1", "ams", "sin", "fra", "mia"],
location: str,
name: str,
type: Literal["sftp", "s3"],
generate_sftp_password: bool | Omit = omit,
Expand Down
7 changes: 5 additions & 2 deletions src/gcore/types/cloud/gpu_baremetal_cluster.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,11 @@ class ServersSettingsInterfaceAnySubnetInterfaceOutputSerializer(BaseModel):


class ServersSettingsSecurityGroup(BaseModel):
id: str
"""Security group ID"""

name: str
"""Name."""
"""Security group name"""


class ServersSettings(BaseModel):
Expand All @@ -105,7 +108,7 @@ class ServersSettings(BaseModel):
interfaces: List[ServersSettingsInterface]

security_groups: List[ServersSettingsSecurityGroup]
"""Security groups names"""
"""Security groups"""

ssh_key_name: Optional[str] = None
"""SSH key name"""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,11 @@


class SecurityGroup(BaseModel):
id: str
"""Security group ID"""

name: str
"""Name."""
"""Security group name"""


class GPUBaremetalClusterServer(BaseModel):
Expand All @@ -35,7 +38,7 @@ class GPUBaremetalClusterServer(BaseModel):
"""Server's name generated using cluster's name"""

security_groups: List[SecurityGroup]
"""Security groups names"""
"""Security groups"""

ssh_key_name: Optional[str] = None
"""SSH key pair assigned to the server"""
Expand Down
9 changes: 9 additions & 0 deletions src/gcore/types/cloud/gpu_image.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,15 @@ class GPUImage(BaseModel):
architecture: Optional[str] = None
"""Image architecture type"""

gpu_driver: Optional[str] = None
"""Name of the GPU driver vendor"""

gpu_driver_type: Optional[str] = None
"""Type of the GPU driver"""

gpu_driver_version: Optional[str] = None
"""Version of the installed GPU driver"""

os_distro: Optional[str] = None
"""OS Distribution"""

Expand Down
9 changes: 9 additions & 0 deletions src/gcore/types/cloud/image.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,15 @@ class Image(BaseModel):

display_order: Optional[int] = None

gpu_driver: Optional[str] = None
"""Name of the GPU driver vendor"""

gpu_driver_type: Optional[str] = None
"""Type of the GPU driver"""

gpu_driver_version: Optional[str] = None
"""Version of the installed GPU driver"""

hw_firmware_type: Optional[Literal["bios", "uefi"]] = None
"""Specifies the type of firmware with which to boot the guest."""

Expand Down
2 changes: 0 additions & 2 deletions src/gcore/types/security/bgp_announce_list_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@
class BgpAnnounceListParams(TypedDict, total=False):
announced: Optional[bool]

client_id: Optional[int]

origin: Optional[Literal["STATIC", "DYNAMIC"]]

site: Optional[str]
1 change: 1 addition & 0 deletions src/gcore/types/security/client_profile.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ class ClientProfile(BaseModel):
protocols: List[Dict[str, object]]

site: str
"""Region where the protection profiles will be deployed"""

status: Dict[str, object]

Expand Down
6 changes: 4 additions & 2 deletions src/gcore/types/security/profile_create_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from __future__ import annotations

from typing import Iterable, Optional
from typing import Iterable
from typing_extensions import Required, TypedDict

__all__ = ["ProfileCreateParams", "Field"]
Expand All @@ -14,8 +14,10 @@ class ProfileCreateParams(TypedDict, total=False):
profile_template: Required[int]

site: Required[str]
"""Region where the protection profiles will be deployed"""

ip_address: Optional[str]
ip_address: str
"""Required for Universal template only. Optional for all others."""


class Field(TypedDict, total=False):
Expand Down
Loading
Loading