Skip to content
Open
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
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
timeout-minutes: 10
name: lint
runs-on: ${{ github.repository == 'stainless-sdks/gcore-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata')
steps:
- uses: actions/checkout@v6

Expand All @@ -38,7 +38,7 @@ jobs:
run: ./scripts/lint

build:
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata')
timeout-minutes: 10
name: build
permissions:
Expand Down
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.39.0"
".": "0.40.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: 655
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-c4c09a01a5791ea1d7c33e3c7ae09130b461848a881644003c4f0d7aaabef8b6.yml
openapi_spec_hash: 01f8b65e87e0dd05dec110fa43c4553f
config_hash: 85e457318a30eaef6f8360fe795eec52
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-1f57a1cf50c68ba6dc2d77a192a18497fac3892e6bb6f21cee74ea3382a22ead.yml
openapi_spec_hash: e9a65c4d11c292b5755109138a184880
config_hash: 028ddbe5e97b3ec6a74358d4aaaf7b8a
18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,23 @@
# Changelog

## 0.40.0 (2026-03-25)

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

### Features

* **api:** aggregated API specs update ([07228a2](https://github.com/G-Core/gcore-python/commit/07228a2d29b1fb8f4c2b1a41c0369f944ba503ed))
* **cdn:** enable terraform support for cdn_rule_template ([e6e4283](https://github.com/G-Core/gcore-python/commit/e6e428388751914c243d937c152cd28ea19d8320))
* **fastedge:** enable fastedge_template for Terraform ([5e9dab6](https://github.com/G-Core/gcore-python/commit/5e9dab60da36beb8438b295fabbef4e2ad2e220e))


### Chores

* **ci:** skip lint on metadata-only changes ([5277f95](https://github.com/G-Core/gcore-python/commit/5277f95a3de9c67fa39dc5e611d8315a624bae45))
* **tests:** bump steady to v0.19.6 ([ba47f6b](https://github.com/G-Core/gcore-python/commit/ba47f6be3548421482c401a94c2f8ea481ffcb0d))
* **tests:** bump steady to v0.19.7 ([7767e13](https://github.com/G-Core/gcore-python/commit/7767e1315ca81c246fa32663455731f9191a5d12))
* **tests:** skip tests failing due to OpenAPI spec issues ([0e83fd1](https://github.com/G-Core/gcore-python/commit/0e83fd19bb738c95d4f563257d2d29bba560c26e))

## 0.39.0 (2026-03-23)

Full Changelog: [v0.38.0...v0.39.0](https://github.com/G-Core/gcore-python/compare/v0.38.0...v0.39.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.39.0"
version = "0.40.0"
description = "The official Python library for the gcore API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
6 changes: 3 additions & 3 deletions scripts/mock
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ echo "==> Starting mock server with URL ${URL}"
# Run steady mock on the given spec
if [ "$1" == "--daemon" ]; then
# Pre-install the package so the download doesn't eat into the startup timeout
npm exec --package=@stdy/cli@0.19.5 -- steady --version
npm exec --package=@stdy/cli@0.19.7 -- steady --version

npm exec --package=@stdy/cli@0.19.5 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=repeat --validator-query-array-format=repeat --validator-form-object-format=dots --validator-query-object-format=dots "$URL" &> .stdy.log &
npm exec --package=@stdy/cli@0.19.7 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=repeat --validator-query-array-format=repeat --validator-form-object-format=dots --validator-query-object-format=dots "$URL" &> .stdy.log &

# Wait for server to come online via health endpoint (max 30s)
echo -n "Waiting for server"
Expand All @@ -48,5 +48,5 @@ if [ "$1" == "--daemon" ]; then

echo
else
npm exec --package=@stdy/cli@0.19.5 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=repeat --validator-query-array-format=repeat --validator-form-object-format=dots --validator-query-object-format=dots "$URL"
npm exec --package=@stdy/cli@0.19.7 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=repeat --validator-query-array-format=repeat --validator-form-object-format=dots --validator-query-object-format=dots "$URL"
fi
2 changes: 1 addition & 1 deletion scripts/test
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ elif ! steady_is_running ; then
echo -e "To run the server, pass in the path or url of your OpenAPI"
echo -e "spec to the steady command:"
echo
echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.19.5 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-form-array-format=repeat --validator-query-array-format=repeat --validator-form-object-format=dots --validator-query-object-format=dots${NC}"
echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.19.7 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-form-array-format=repeat --validator-query-array-format=repeat --validator-form-object-format=dots --validator-query-object-format=dots${NC}"
echo

exit 1
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.39.0" # x-release-please-version
__version__ = "0.40.0" # x-release-please-version
18 changes: 18 additions & 0 deletions src/gcore/resources/cdn/cdn.py
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,9 @@ def origin_groups(self) -> OriginGroupsResource:

@cached_property
def rule_templates(self) -> RuleTemplatesResource:
"""
CDN rule templates define reusable rule configurations that can be applied across multiple CDN resources for consistent caching, delivery, and security policies.
"""
return RuleTemplatesResource(self._client)

@cached_property
Expand Down Expand Up @@ -498,6 +501,9 @@ def origin_groups(self) -> AsyncOriginGroupsResource:

@cached_property
def rule_templates(self) -> AsyncRuleTemplatesResource:
"""
CDN rule templates define reusable rule configurations that can be applied across multiple CDN resources for consistent caching, delivery, and security policies.
"""
return AsyncRuleTemplatesResource(self._client)

@cached_property
Expand Down Expand Up @@ -865,6 +871,9 @@ def origin_groups(self) -> OriginGroupsResourceWithRawResponse:

@cached_property
def rule_templates(self) -> RuleTemplatesResourceWithRawResponse:
"""
CDN rule templates define reusable rule configurations that can be applied across multiple CDN resources for consistent caching, delivery, and security policies.
"""
return RuleTemplatesResourceWithRawResponse(self._cdn.rule_templates)

@cached_property
Expand Down Expand Up @@ -985,6 +994,9 @@ def origin_groups(self) -> AsyncOriginGroupsResourceWithRawResponse:

@cached_property
def rule_templates(self) -> AsyncRuleTemplatesResourceWithRawResponse:
"""
CDN rule templates define reusable rule configurations that can be applied across multiple CDN resources for consistent caching, delivery, and security policies.
"""
return AsyncRuleTemplatesResourceWithRawResponse(self._cdn.rule_templates)

@cached_property
Expand Down Expand Up @@ -1105,6 +1117,9 @@ def origin_groups(self) -> OriginGroupsResourceWithStreamingResponse:

@cached_property
def rule_templates(self) -> RuleTemplatesResourceWithStreamingResponse:
"""
CDN rule templates define reusable rule configurations that can be applied across multiple CDN resources for consistent caching, delivery, and security policies.
"""
return RuleTemplatesResourceWithStreamingResponse(self._cdn.rule_templates)

@cached_property
Expand Down Expand Up @@ -1225,6 +1240,9 @@ def origin_groups(self) -> AsyncOriginGroupsResourceWithStreamingResponse:

@cached_property
def rule_templates(self) -> AsyncRuleTemplatesResourceWithStreamingResponse:
"""
CDN rule templates define reusable rule configurations that can be applied across multiple CDN resources for consistent caching, delivery, and security policies.
"""
return AsyncRuleTemplatesResourceWithStreamingResponse(self._cdn.rule_templates)

@cached_property
Expand Down
8 changes: 8 additions & 0 deletions src/gcore/resources/cdn/rule_templates.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@


class RuleTemplatesResource(SyncAPIResource):
"""
CDN rule templates define reusable rule configurations that can be applied across multiple CDN resources for consistent caching, delivery, and security policies.
"""

@cached_property
def with_raw_response(self) -> RuleTemplatesResourceWithRawResponse:
"""
Expand Down Expand Up @@ -395,6 +399,10 @@ def replace(


class AsyncRuleTemplatesResource(AsyncAPIResource):
"""
CDN rule templates define reusable rule configurations that can be applied across multiple CDN resources for consistent caching, delivery, and security policies.
"""

@cached_property
def with_raw_response(self) -> AsyncRuleTemplatesResourceWithRawResponse:
"""
Expand Down
24 changes: 18 additions & 6 deletions src/gcore/resources/fastedge/fastedge.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,9 @@ class FastedgeResource(SyncAPIResource):

@cached_property
def templates(self) -> TemplatesResource:
"""Application templates"""
"""
FastEdge templates encapsulate reusable configurations for FastEdge applications, including a WebAssembly binary reference and configurable parameters.
"""
return TemplatesResource(self._client)

@cached_property
Expand Down Expand Up @@ -153,7 +155,9 @@ class AsyncFastedgeResource(AsyncAPIResource):

@cached_property
def templates(self) -> AsyncTemplatesResource:
"""Application templates"""
"""
FastEdge templates encapsulate reusable configurations for FastEdge applications, including a WebAssembly binary reference and configurable parameters.
"""
return AsyncTemplatesResource(self._client)

@cached_property
Expand Down Expand Up @@ -239,7 +243,9 @@ def __init__(self, fastedge: FastedgeResource) -> None:

@cached_property
def templates(self) -> TemplatesResourceWithRawResponse:
"""Application templates"""
"""
FastEdge templates encapsulate reusable configurations for FastEdge applications, including a WebAssembly binary reference and configurable parameters.
"""
return TemplatesResourceWithRawResponse(self._fastedge.templates)

@cached_property
Expand Down Expand Up @@ -284,7 +290,9 @@ def __init__(self, fastedge: AsyncFastedgeResource) -> None:

@cached_property
def templates(self) -> AsyncTemplatesResourceWithRawResponse:
"""Application templates"""
"""
FastEdge templates encapsulate reusable configurations for FastEdge applications, including a WebAssembly binary reference and configurable parameters.
"""
return AsyncTemplatesResourceWithRawResponse(self._fastedge.templates)

@cached_property
Expand Down Expand Up @@ -329,7 +337,9 @@ def __init__(self, fastedge: FastedgeResource) -> None:

@cached_property
def templates(self) -> TemplatesResourceWithStreamingResponse:
"""Application templates"""
"""
FastEdge templates encapsulate reusable configurations for FastEdge applications, including a WebAssembly binary reference and configurable parameters.
"""
return TemplatesResourceWithStreamingResponse(self._fastedge.templates)

@cached_property
Expand Down Expand Up @@ -374,7 +384,9 @@ def __init__(self, fastedge: AsyncFastedgeResource) -> None:

@cached_property
def templates(self) -> AsyncTemplatesResourceWithStreamingResponse:
"""Application templates"""
"""
FastEdge templates encapsulate reusable configurations for FastEdge applications, including a WebAssembly binary reference and configurable parameters.
"""
return AsyncTemplatesResourceWithStreamingResponse(self._fastedge.templates)

@cached_property
Expand Down
8 changes: 6 additions & 2 deletions src/gcore/resources/fastedge/templates.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@


class TemplatesResource(SyncAPIResource):
"""Application templates"""
"""
FastEdge templates encapsulate reusable configurations for FastEdge applications, including a WebAssembly binary reference and configurable parameters.
"""

@cached_property
def with_raw_response(self) -> TemplatesResourceWithRawResponse:
Expand Down Expand Up @@ -314,7 +316,9 @@ def replace(


class AsyncTemplatesResource(AsyncAPIResource):
"""Application templates"""
"""
FastEdge templates encapsulate reusable configurations for FastEdge applications, including a WebAssembly binary reference and configurable parameters.
"""

@cached_property
def with_raw_response(self) -> AsyncTemplatesResourceWithRawResponse:
Expand Down
6 changes: 3 additions & 3 deletions src/gcore/types/cloud/networks/router_create_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,10 @@ class Interface(TypedDict, total=False):

class Route(TypedDict, total=False):
destination: Required[str]
"""CIDR of destination IPv4 subnet."""
"""CIDR of destination IPv4 or IPv6 subnet."""

nexthop: Required[str]
"""
IPv4 address to forward traffic to if it's destination IP matches 'destination'
CIDR.
IPv4 or IPv6 address to forward traffic to if it's destination IP matches
'destination' CIDR.
"""
6 changes: 3 additions & 3 deletions src/gcore/types/cloud/networks/router_update_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@ class ExternalGatewayInfo(TypedDict, total=False):

class Route(TypedDict, total=False):
destination: Required[str]
"""CIDR of destination IPv4 subnet."""
"""CIDR of destination IPv4 or IPv6 subnet."""

nexthop: Required[str]
"""
IPv4 address to forward traffic to if it's destination IP matches 'destination'
CIDR.
IPv4 or IPv6 address to forward traffic to if it's destination IP matches
'destination' CIDR.
"""
6 changes: 3 additions & 3 deletions src/gcore/types/cloud/networks/subnet_create_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,10 @@ class SubnetCreateParams(TypedDict, total=False):

class HostRoute(TypedDict, total=False):
destination: Required[str]
"""CIDR of destination IPv4 subnet."""
"""CIDR of destination IPv4 or IPv6 subnet."""

nexthop: Required[str]
"""
IPv4 address to forward traffic to if it's destination IP matches 'destination'
CIDR.
IPv4 or IPv6 address to forward traffic to if it's destination IP matches
'destination' CIDR.
"""
6 changes: 3 additions & 3 deletions src/gcore/types/cloud/networks/subnet_update_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,10 @@ class SubnetUpdateParams(TypedDict, total=False):

class HostRoute(TypedDict, total=False):
destination: Required[str]
"""CIDR of destination IPv4 subnet."""
"""CIDR of destination IPv4 or IPv6 subnet."""

nexthop: Required[str]
"""
IPv4 address to forward traffic to if it's destination IP matches 'destination'
CIDR.
IPv4 or IPv6 address to forward traffic to if it's destination IP matches
'destination' CIDR.
"""
6 changes: 3 additions & 3 deletions src/gcore/types/cloud/route.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@

class Route(BaseModel):
destination: str
"""CIDR of destination IPv4 subnet."""
"""CIDR of destination IPv4 or IPv6 subnet."""

nexthop: str
"""
IPv4 address to forward traffic to if it's destination IP matches 'destination'
CIDR.
IPv4 or IPv6 address to forward traffic to if it's destination IP matches
'destination' CIDR.
"""
Loading
Loading