mirror of
https://github.com/hanzoai/python-sdk.git
synced 2026-10-23 20:23:00 +00:00
pkg/hanzoai/cloud goes +2186 -2126 ~175: 1700 paths / 2354 operations / 2186 schemas, 182 api modules and 2172 model modules, against the 239/1116 it carried from hanzo.yaml. The document is hanzoai/cloud's own emission now, pinned in a new .spec-lock by commit and sha256, and generate.py reaches it by value — --skip-validate-spec means the 1012 missing-`responses` errors no longer write zero files, so a client can be cut from the authority instead of a projection of it. Two renamings come with that, and both are the fix rather than the damage. IAM's types are namespace-qualified (iam.Role, iam.Application, 95 of them) because a bare `Role` was two unrelated shapes wearing one name. And the <svc>_ prefix is gone from every operationId, so every generated method lost it. The prefix is what broke the examples, and the gate saw only two thirds of it. Four flows failed on their imports; `money` and `tools` PASSED while every call in them named a method that no longer existed — an import resolves the names in the `from … import` line and a method is looked up at call time. All five flows now name operations that exist, checked by resolving each one as an attribute, and hanzo.yml records that ceiling so the next reader does not trust the gate for more than it says. `chat` is removed, which is a measurement and not a preference: cloud declares POST /v1/chat/completions with no requestBody and no responses at all, so the generated method takes no body and returns None — the one call a chat example exists to make cannot be expressed. Inventing the type, or hand-rolling the HTTP inside a generated client, is the drift these SDKs exist to prevent; js-sdk dropped its own chat flow at 2.0.7 for exactly this. It returns the release cloud gives that route a body. Two smoke assertions were already red before this regeneration and are now true again: they pinned AIApi/APIKeysApi/MCPApi and AdminApi.plugin_admin_*, names from the retired lineage. The surface is all still there under AiApi/KeysApi/ McpApi and AdminApi.admin_plugins. tests/test_zap_transport.py still errors, exactly as it did before: it imports `Hanzo` from hanzoai, which the hand-written package does not define. That is not this document's business and is untouched. Minor rather than patch: every generated method changed name. Co-authored-by: Hanzo Dev <[email protected]>
1371 lines
64 KiB
Python
1371 lines
64 KiB
Python
# coding: utf-8
|
||
|
||
"""
|
||
Hanzo Cloud API
|
||
|
||
Composed from each subsystem's own projection of its router, in the fleet's mount order — every operation below is a route the subsystem that publishes it registered. Tagged by product: the first path segment after /v1/.
|
||
|
||
The version of the OpenAPI document: v1
|
||
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
||
|
||
Do not edit the class manually.
|
||
""" # noqa: E501
|
||
|
||
import warnings
|
||
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
||
from typing import Any, Dict, List, Optional, Tuple, Union
|
||
from typing_extensions import Annotated
|
||
|
||
from pydantic import Field, StrictStr
|
||
from typing_extensions import Annotated
|
||
from hanzoai.cloud.models.account_fold_view import AccountFoldView
|
||
from hanzoai.cloud.models.cloud_accounts_view import CloudAccountsView
|
||
from hanzoai.cloud.models.providers_view import ProvidersView
|
||
from hanzoai.cloud.models.unlinked_view import UnlinkedView
|
||
from hanzoai.cloud.models.venue_link_request import VenueLinkRequest
|
||
|
||
from hanzoai.cloud.api_client import ApiClient, RequestSerialized
|
||
from hanzoai.cloud.api_response import ApiResponse
|
||
from hanzoai.cloud.rest import RESTResponseType
|
||
|
||
|
||
class CloudApi:
|
||
"""NOTE: This class is auto generated by OpenAPI Generator
|
||
Ref: https://openapi-generator.tech
|
||
|
||
Do not edit the class manually.
|
||
"""
|
||
|
||
def __init__(self, api_client=None) -> None:
|
||
if api_client is None:
|
||
api_client = ApiClient.get_default()
|
||
self.api_client = api_client
|
||
|
||
|
||
@validate_call
|
||
def delete_v1_cloud_provider_accounts_label(
|
||
self,
|
||
provider: Annotated[StrictStr, Field(description="Provider is the cloud the account belongs to: digitalocean, aws, gcp or azure. An unknown provider is not found.")],
|
||
label: Annotated[StrictStr, Field(description="Label is the org-chosen name of the account within that provider. Empty means \"default\"; anything outside 1–64 of [A-Za-z0-9._-] is refused.")],
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> UnlinkedView:
|
||
"""Forgets one linked cloud account: it detaches every fleet cluster THIS account folded (its own names, in its own shard — a neighbour's cluster of the same name is untouched), deletes the sealed credential, and drops the index row.
|
||
|
||
Forgets one linked cloud account: it detaches every fleet cluster THIS account folded (its own names, in its own shard — a neighbour's cluster of the same name is untouched), deletes the sealed credential, and drops the index row. It is idempotent and deliberately not an existence oracle: an account this org does not hold answers exactly the same as one it just removed. A cluster that fails to detach is logged and the unlink continues, so a dead provider cannot strand a credential. Requires org admin.
|
||
|
||
:param provider: Provider is the cloud the account belongs to: digitalocean, aws, gcp or azure. An unknown provider is not found. (required)
|
||
:type provider: str
|
||
:param label: Label is the org-chosen name of the account within that provider. Empty means \"default\"; anything outside 1–64 of [A-Za-z0-9._-] is refused. (required)
|
||
:type label: str
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._delete_v1_cloud_provider_accounts_label_serialize(
|
||
provider=provider,
|
||
label=label,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'200': "UnlinkedView",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
response_data.read()
|
||
return self.api_client.response_deserialize(
|
||
response_data=response_data,
|
||
response_types_map=_response_types_map,
|
||
).data
|
||
|
||
|
||
@validate_call
|
||
def delete_v1_cloud_provider_accounts_label_with_http_info(
|
||
self,
|
||
provider: Annotated[StrictStr, Field(description="Provider is the cloud the account belongs to: digitalocean, aws, gcp or azure. An unknown provider is not found.")],
|
||
label: Annotated[StrictStr, Field(description="Label is the org-chosen name of the account within that provider. Empty means \"default\"; anything outside 1–64 of [A-Za-z0-9._-] is refused.")],
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> ApiResponse[UnlinkedView]:
|
||
"""Forgets one linked cloud account: it detaches every fleet cluster THIS account folded (its own names, in its own shard — a neighbour's cluster of the same name is untouched), deletes the sealed credential, and drops the index row.
|
||
|
||
Forgets one linked cloud account: it detaches every fleet cluster THIS account folded (its own names, in its own shard — a neighbour's cluster of the same name is untouched), deletes the sealed credential, and drops the index row. It is idempotent and deliberately not an existence oracle: an account this org does not hold answers exactly the same as one it just removed. A cluster that fails to detach is logged and the unlink continues, so a dead provider cannot strand a credential. Requires org admin.
|
||
|
||
:param provider: Provider is the cloud the account belongs to: digitalocean, aws, gcp or azure. An unknown provider is not found. (required)
|
||
:type provider: str
|
||
:param label: Label is the org-chosen name of the account within that provider. Empty means \"default\"; anything outside 1–64 of [A-Za-z0-9._-] is refused. (required)
|
||
:type label: str
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._delete_v1_cloud_provider_accounts_label_serialize(
|
||
provider=provider,
|
||
label=label,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'200': "UnlinkedView",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
response_data.read()
|
||
return self.api_client.response_deserialize(
|
||
response_data=response_data,
|
||
response_types_map=_response_types_map,
|
||
)
|
||
|
||
|
||
@validate_call
|
||
def delete_v1_cloud_provider_accounts_label_without_preload_content(
|
||
self,
|
||
provider: Annotated[StrictStr, Field(description="Provider is the cloud the account belongs to: digitalocean, aws, gcp or azure. An unknown provider is not found.")],
|
||
label: Annotated[StrictStr, Field(description="Label is the org-chosen name of the account within that provider. Empty means \"default\"; anything outside 1–64 of [A-Za-z0-9._-] is refused.")],
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> RESTResponseType:
|
||
"""Forgets one linked cloud account: it detaches every fleet cluster THIS account folded (its own names, in its own shard — a neighbour's cluster of the same name is untouched), deletes the sealed credential, and drops the index row.
|
||
|
||
Forgets one linked cloud account: it detaches every fleet cluster THIS account folded (its own names, in its own shard — a neighbour's cluster of the same name is untouched), deletes the sealed credential, and drops the index row. It is idempotent and deliberately not an existence oracle: an account this org does not hold answers exactly the same as one it just removed. A cluster that fails to detach is logged and the unlink continues, so a dead provider cannot strand a credential. Requires org admin.
|
||
|
||
:param provider: Provider is the cloud the account belongs to: digitalocean, aws, gcp or azure. An unknown provider is not found. (required)
|
||
:type provider: str
|
||
:param label: Label is the org-chosen name of the account within that provider. Empty means \"default\"; anything outside 1–64 of [A-Za-z0-9._-] is refused. (required)
|
||
:type label: str
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._delete_v1_cloud_provider_accounts_label_serialize(
|
||
provider=provider,
|
||
label=label,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'200': "UnlinkedView",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
return response_data.response
|
||
|
||
|
||
def _delete_v1_cloud_provider_accounts_label_serialize(
|
||
self,
|
||
provider,
|
||
label,
|
||
_request_auth,
|
||
_content_type,
|
||
_headers,
|
||
_host_index,
|
||
) -> RequestSerialized:
|
||
|
||
_host = None
|
||
|
||
_collection_formats: Dict[str, str] = {
|
||
}
|
||
|
||
_path_params: Dict[str, str] = {}
|
||
_query_params: List[Tuple[str, str]] = []
|
||
_header_params: Dict[str, Optional[str]] = _headers or {}
|
||
_form_params: List[Tuple[str, str]] = []
|
||
_files: Dict[
|
||
str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
|
||
] = {}
|
||
_body_params: Optional[bytes] = None
|
||
|
||
# process the path parameters
|
||
if provider is not None:
|
||
_path_params['provider'] = provider
|
||
if label is not None:
|
||
_path_params['label'] = label
|
||
# process the query parameters
|
||
# process the header parameters
|
||
# process the form parameters
|
||
# process the body parameter
|
||
|
||
|
||
# set the HTTP header `Accept`
|
||
if 'Accept' not in _header_params:
|
||
_header_params['Accept'] = self.api_client.select_header_accept(
|
||
[
|
||
'application/json'
|
||
]
|
||
)
|
||
|
||
|
||
# authentication setting
|
||
_auth_settings: List[str] = [
|
||
]
|
||
|
||
return self.api_client.param_serialize(
|
||
method='DELETE',
|
||
resource_path='/v1/cloud/{provider}/accounts/{label}',
|
||
path_params=_path_params,
|
||
query_params=_query_params,
|
||
header_params=_header_params,
|
||
body=_body_params,
|
||
post_params=_form_params,
|
||
files=_files,
|
||
auth_settings=_auth_settings,
|
||
collection_formats=_collection_formats,
|
||
_host=_host,
|
||
_request_auth=_request_auth
|
||
)
|
||
|
||
|
||
|
||
|
||
@validate_call
|
||
def get_v1_cloud(
|
||
self,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> ProvidersView:
|
||
"""Returns the clouds this deployment can link and what linking each one needs — the DigitalOcean token, the AWS role and external id, the GCP credential JSON, the Azure app — plus whether the provider can be linked without storing any long-lived secret.
|
||
|
||
Returns the clouds this deployment can link and what linking each one needs — the DigitalOcean token, the AWS role and external id, the GCP credential JSON, the Azure app — plus whether the provider can be linked without storing any long-lived secret. It is the catalog a \"connect a cloud\" screen renders; it reports no account and no credential.
|
||
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._get_v1_cloud_serialize(
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'200': "ProvidersView",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
response_data.read()
|
||
return self.api_client.response_deserialize(
|
||
response_data=response_data,
|
||
response_types_map=_response_types_map,
|
||
).data
|
||
|
||
|
||
@validate_call
|
||
def get_v1_cloud_with_http_info(
|
||
self,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> ApiResponse[ProvidersView]:
|
||
"""Returns the clouds this deployment can link and what linking each one needs — the DigitalOcean token, the AWS role and external id, the GCP credential JSON, the Azure app — plus whether the provider can be linked without storing any long-lived secret.
|
||
|
||
Returns the clouds this deployment can link and what linking each one needs — the DigitalOcean token, the AWS role and external id, the GCP credential JSON, the Azure app — plus whether the provider can be linked without storing any long-lived secret. It is the catalog a \"connect a cloud\" screen renders; it reports no account and no credential.
|
||
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._get_v1_cloud_serialize(
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'200': "ProvidersView",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
response_data.read()
|
||
return self.api_client.response_deserialize(
|
||
response_data=response_data,
|
||
response_types_map=_response_types_map,
|
||
)
|
||
|
||
|
||
@validate_call
|
||
def get_v1_cloud_without_preload_content(
|
||
self,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> RESTResponseType:
|
||
"""Returns the clouds this deployment can link and what linking each one needs — the DigitalOcean token, the AWS role and external id, the GCP credential JSON, the Azure app — plus whether the provider can be linked without storing any long-lived secret.
|
||
|
||
Returns the clouds this deployment can link and what linking each one needs — the DigitalOcean token, the AWS role and external id, the GCP credential JSON, the Azure app — plus whether the provider can be linked without storing any long-lived secret. It is the catalog a \"connect a cloud\" screen renders; it reports no account and no credential.
|
||
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._get_v1_cloud_serialize(
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'200': "ProvidersView",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
return response_data.response
|
||
|
||
|
||
def _get_v1_cloud_serialize(
|
||
self,
|
||
_request_auth,
|
||
_content_type,
|
||
_headers,
|
||
_host_index,
|
||
) -> RequestSerialized:
|
||
|
||
_host = None
|
||
|
||
_collection_formats: Dict[str, str] = {
|
||
}
|
||
|
||
_path_params: Dict[str, str] = {}
|
||
_query_params: List[Tuple[str, str]] = []
|
||
_header_params: Dict[str, Optional[str]] = _headers or {}
|
||
_form_params: List[Tuple[str, str]] = []
|
||
_files: Dict[
|
||
str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
|
||
] = {}
|
||
_body_params: Optional[bytes] = None
|
||
|
||
# process the path parameters
|
||
# process the query parameters
|
||
# process the header parameters
|
||
# process the form parameters
|
||
# process the body parameter
|
||
|
||
|
||
# set the HTTP header `Accept`
|
||
if 'Accept' not in _header_params:
|
||
_header_params['Accept'] = self.api_client.select_header_accept(
|
||
[
|
||
'application/json'
|
||
]
|
||
)
|
||
|
||
|
||
# authentication setting
|
||
_auth_settings: List[str] = [
|
||
]
|
||
|
||
return self.api_client.param_serialize(
|
||
method='GET',
|
||
resource_path='/v1/cloud',
|
||
path_params=_path_params,
|
||
query_params=_query_params,
|
||
header_params=_header_params,
|
||
body=_body_params,
|
||
post_params=_form_params,
|
||
files=_files,
|
||
auth_settings=_auth_settings,
|
||
collection_formats=_collection_formats,
|
||
_host=_host,
|
||
_request_auth=_request_auth
|
||
)
|
||
|
||
|
||
|
||
|
||
@validate_call
|
||
def get_v1_cloud_accounts(
|
||
self,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> CloudAccountsView:
|
||
"""Lists the caller org's linked cloud accounts across every provider: which account each one is at the provider, which fleet clusters it folded, and when it was last discovered.
|
||
|
||
Lists the caller org's linked cloud accounts across every provider: which account each one is at the provider, which fleet clusters it folded, and when it was last discovered. Metadata only — a sealed credential never appears in a response. Another org's accounts are not visible and not countable.
|
||
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._get_v1_cloud_accounts_serialize(
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'200': "CloudAccountsView",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
response_data.read()
|
||
return self.api_client.response_deserialize(
|
||
response_data=response_data,
|
||
response_types_map=_response_types_map,
|
||
).data
|
||
|
||
|
||
@validate_call
|
||
def get_v1_cloud_accounts_with_http_info(
|
||
self,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> ApiResponse[CloudAccountsView]:
|
||
"""Lists the caller org's linked cloud accounts across every provider: which account each one is at the provider, which fleet clusters it folded, and when it was last discovered.
|
||
|
||
Lists the caller org's linked cloud accounts across every provider: which account each one is at the provider, which fleet clusters it folded, and when it was last discovered. Metadata only — a sealed credential never appears in a response. Another org's accounts are not visible and not countable.
|
||
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._get_v1_cloud_accounts_serialize(
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'200': "CloudAccountsView",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
response_data.read()
|
||
return self.api_client.response_deserialize(
|
||
response_data=response_data,
|
||
response_types_map=_response_types_map,
|
||
)
|
||
|
||
|
||
@validate_call
|
||
def get_v1_cloud_accounts_without_preload_content(
|
||
self,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> RESTResponseType:
|
||
"""Lists the caller org's linked cloud accounts across every provider: which account each one is at the provider, which fleet clusters it folded, and when it was last discovered.
|
||
|
||
Lists the caller org's linked cloud accounts across every provider: which account each one is at the provider, which fleet clusters it folded, and when it was last discovered. Metadata only — a sealed credential never appears in a response. Another org's accounts are not visible and not countable.
|
||
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._get_v1_cloud_accounts_serialize(
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'200': "CloudAccountsView",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
return response_data.response
|
||
|
||
|
||
def _get_v1_cloud_accounts_serialize(
|
||
self,
|
||
_request_auth,
|
||
_content_type,
|
||
_headers,
|
||
_host_index,
|
||
) -> RequestSerialized:
|
||
|
||
_host = None
|
||
|
||
_collection_formats: Dict[str, str] = {
|
||
}
|
||
|
||
_path_params: Dict[str, str] = {}
|
||
_query_params: List[Tuple[str, str]] = []
|
||
_header_params: Dict[str, Optional[str]] = _headers or {}
|
||
_form_params: List[Tuple[str, str]] = []
|
||
_files: Dict[
|
||
str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
|
||
] = {}
|
||
_body_params: Optional[bytes] = None
|
||
|
||
# process the path parameters
|
||
# process the query parameters
|
||
# process the header parameters
|
||
# process the form parameters
|
||
# process the body parameter
|
||
|
||
|
||
# set the HTTP header `Accept`
|
||
if 'Accept' not in _header_params:
|
||
_header_params['Accept'] = self.api_client.select_header_accept(
|
||
[
|
||
'application/json'
|
||
]
|
||
)
|
||
|
||
|
||
# authentication setting
|
||
_auth_settings: List[str] = [
|
||
]
|
||
|
||
return self.api_client.param_serialize(
|
||
method='GET',
|
||
resource_path='/v1/cloud/accounts',
|
||
path_params=_path_params,
|
||
query_params=_query_params,
|
||
header_params=_header_params,
|
||
body=_body_params,
|
||
post_params=_form_params,
|
||
files=_files,
|
||
auth_settings=_auth_settings,
|
||
collection_formats=_collection_formats,
|
||
_host=_host,
|
||
_request_auth=_request_auth
|
||
)
|
||
|
||
|
||
|
||
|
||
@validate_call
|
||
def post_v1_cloud_provider_accounts(
|
||
self,
|
||
provider: Annotated[StrictStr, Field(description="Provider is the cloud being linked, from the path: digitalocean, aws, gcp or azure.")],
|
||
venue_link_request: VenueLinkRequest,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> AccountFoldView:
|
||
"""Links one of the caller org's cloud accounts and folds the Kubernetes clusters it finds there into the ONE Hanzo fleet, so they appear at /v1/clusters and can run work like any managed or bring-your-own cluster.
|
||
|
||
Links one of the caller org's cloud accounts and folds the Kubernetes clusters it finds there into the ONE Hanzo fleet, so they appear at /v1/clusters and can run work like any managed or bring-your-own cluster. Answers 201. The credential is verified LIVE against the provider BEFORE anything is stored, so a bad one is refused and nothing is written; it is then sealed in the org's own KMS namespace and never appears in a response, the account index, or a log line. Discovery follows, and a cluster that fails to fold is reported as DATA in the clusters list rather than failing the link. Re-linking a label that already exists re-seals its credential and re-folds it, so this is how a rotated token is replaced. Requires org admin.
|
||
|
||
:param provider: Provider is the cloud being linked, from the path: digitalocean, aws, gcp or azure. (required)
|
||
:type provider: str
|
||
:param venue_link_request: (required)
|
||
:type venue_link_request: VenueLinkRequest
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._post_v1_cloud_provider_accounts_serialize(
|
||
provider=provider,
|
||
venue_link_request=venue_link_request,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'201': "AccountFoldView",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
response_data.read()
|
||
return self.api_client.response_deserialize(
|
||
response_data=response_data,
|
||
response_types_map=_response_types_map,
|
||
).data
|
||
|
||
|
||
@validate_call
|
||
def post_v1_cloud_provider_accounts_with_http_info(
|
||
self,
|
||
provider: Annotated[StrictStr, Field(description="Provider is the cloud being linked, from the path: digitalocean, aws, gcp or azure.")],
|
||
venue_link_request: VenueLinkRequest,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> ApiResponse[AccountFoldView]:
|
||
"""Links one of the caller org's cloud accounts and folds the Kubernetes clusters it finds there into the ONE Hanzo fleet, so they appear at /v1/clusters and can run work like any managed or bring-your-own cluster.
|
||
|
||
Links one of the caller org's cloud accounts and folds the Kubernetes clusters it finds there into the ONE Hanzo fleet, so they appear at /v1/clusters and can run work like any managed or bring-your-own cluster. Answers 201. The credential is verified LIVE against the provider BEFORE anything is stored, so a bad one is refused and nothing is written; it is then sealed in the org's own KMS namespace and never appears in a response, the account index, or a log line. Discovery follows, and a cluster that fails to fold is reported as DATA in the clusters list rather than failing the link. Re-linking a label that already exists re-seals its credential and re-folds it, so this is how a rotated token is replaced. Requires org admin.
|
||
|
||
:param provider: Provider is the cloud being linked, from the path: digitalocean, aws, gcp or azure. (required)
|
||
:type provider: str
|
||
:param venue_link_request: (required)
|
||
:type venue_link_request: VenueLinkRequest
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._post_v1_cloud_provider_accounts_serialize(
|
||
provider=provider,
|
||
venue_link_request=venue_link_request,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'201': "AccountFoldView",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
response_data.read()
|
||
return self.api_client.response_deserialize(
|
||
response_data=response_data,
|
||
response_types_map=_response_types_map,
|
||
)
|
||
|
||
|
||
@validate_call
|
||
def post_v1_cloud_provider_accounts_without_preload_content(
|
||
self,
|
||
provider: Annotated[StrictStr, Field(description="Provider is the cloud being linked, from the path: digitalocean, aws, gcp or azure.")],
|
||
venue_link_request: VenueLinkRequest,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> RESTResponseType:
|
||
"""Links one of the caller org's cloud accounts and folds the Kubernetes clusters it finds there into the ONE Hanzo fleet, so they appear at /v1/clusters and can run work like any managed or bring-your-own cluster.
|
||
|
||
Links one of the caller org's cloud accounts and folds the Kubernetes clusters it finds there into the ONE Hanzo fleet, so they appear at /v1/clusters and can run work like any managed or bring-your-own cluster. Answers 201. The credential is verified LIVE against the provider BEFORE anything is stored, so a bad one is refused and nothing is written; it is then sealed in the org's own KMS namespace and never appears in a response, the account index, or a log line. Discovery follows, and a cluster that fails to fold is reported as DATA in the clusters list rather than failing the link. Re-linking a label that already exists re-seals its credential and re-folds it, so this is how a rotated token is replaced. Requires org admin.
|
||
|
||
:param provider: Provider is the cloud being linked, from the path: digitalocean, aws, gcp or azure. (required)
|
||
:type provider: str
|
||
:param venue_link_request: (required)
|
||
:type venue_link_request: VenueLinkRequest
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._post_v1_cloud_provider_accounts_serialize(
|
||
provider=provider,
|
||
venue_link_request=venue_link_request,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'201': "AccountFoldView",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
return response_data.response
|
||
|
||
|
||
def _post_v1_cloud_provider_accounts_serialize(
|
||
self,
|
||
provider,
|
||
venue_link_request,
|
||
_request_auth,
|
||
_content_type,
|
||
_headers,
|
||
_host_index,
|
||
) -> RequestSerialized:
|
||
|
||
_host = None
|
||
|
||
_collection_formats: Dict[str, str] = {
|
||
}
|
||
|
||
_path_params: Dict[str, str] = {}
|
||
_query_params: List[Tuple[str, str]] = []
|
||
_header_params: Dict[str, Optional[str]] = _headers or {}
|
||
_form_params: List[Tuple[str, str]] = []
|
||
_files: Dict[
|
||
str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
|
||
] = {}
|
||
_body_params: Optional[bytes] = None
|
||
|
||
# process the path parameters
|
||
if provider is not None:
|
||
_path_params['provider'] = provider
|
||
# process the query parameters
|
||
# process the header parameters
|
||
# process the form parameters
|
||
# process the body parameter
|
||
if venue_link_request is not None:
|
||
_body_params = venue_link_request
|
||
|
||
|
||
# set the HTTP header `Accept`
|
||
if 'Accept' not in _header_params:
|
||
_header_params['Accept'] = self.api_client.select_header_accept(
|
||
[
|
||
'application/json'
|
||
]
|
||
)
|
||
|
||
# set the HTTP header `Content-Type`
|
||
if _content_type:
|
||
_header_params['Content-Type'] = _content_type
|
||
else:
|
||
_default_content_type = (
|
||
self.api_client.select_header_content_type(
|
||
[
|
||
'application/json'
|
||
]
|
||
)
|
||
)
|
||
if _default_content_type is not None:
|
||
_header_params['Content-Type'] = _default_content_type
|
||
|
||
# authentication setting
|
||
_auth_settings: List[str] = [
|
||
]
|
||
|
||
return self.api_client.param_serialize(
|
||
method='POST',
|
||
resource_path='/v1/cloud/{provider}/accounts',
|
||
path_params=_path_params,
|
||
query_params=_query_params,
|
||
header_params=_header_params,
|
||
body=_body_params,
|
||
post_params=_form_params,
|
||
files=_files,
|
||
auth_settings=_auth_settings,
|
||
collection_formats=_collection_formats,
|
||
_host=_host,
|
||
_request_auth=_request_auth
|
||
)
|
||
|
||
|
||
|
||
|
||
@validate_call
|
||
def post_v1_cloud_provider_accounts_label_sync(
|
||
self,
|
||
provider: Annotated[StrictStr, Field(description="Provider is the cloud the account belongs to: digitalocean, aws, gcp or azure. An unknown provider is not found.")],
|
||
label: Annotated[StrictStr, Field(description="Label is the org-chosen name of the account within that provider. Empty means \"default\"; anything outside 1–64 of [A-Za-z0-9._-] is refused.")],
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> AccountFoldView:
|
||
"""Re-discovers one already-linked cloud account and reconciles what it folded: kubeconfigs are refreshed, clusters that appeared since the last sync are folded, and clusters this account folded that the provider no longer returns are detached — only this account's own, in the fleet shard it was linked into.
|
||
|
||
Re-discovers one already-linked cloud account and reconciles what it folded: kubeconfigs are refreshed, clusters that appeared since the last sync are folded, and clusters this account folded that the provider no longer returns are detached — only this account's own, in the fleet shard it was linked into. It is idempotent, it reads the credential already sealed at link time, and a discovery failure leaves the existing fold set alone rather than mass-detaching it. An account this org has not linked is not found. Requires org admin.
|
||
|
||
:param provider: Provider is the cloud the account belongs to: digitalocean, aws, gcp or azure. An unknown provider is not found. (required)
|
||
:type provider: str
|
||
:param label: Label is the org-chosen name of the account within that provider. Empty means \"default\"; anything outside 1–64 of [A-Za-z0-9._-] is refused. (required)
|
||
:type label: str
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._post_v1_cloud_provider_accounts_label_sync_serialize(
|
||
provider=provider,
|
||
label=label,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'200': "AccountFoldView",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
response_data.read()
|
||
return self.api_client.response_deserialize(
|
||
response_data=response_data,
|
||
response_types_map=_response_types_map,
|
||
).data
|
||
|
||
|
||
@validate_call
|
||
def post_v1_cloud_provider_accounts_label_sync_with_http_info(
|
||
self,
|
||
provider: Annotated[StrictStr, Field(description="Provider is the cloud the account belongs to: digitalocean, aws, gcp or azure. An unknown provider is not found.")],
|
||
label: Annotated[StrictStr, Field(description="Label is the org-chosen name of the account within that provider. Empty means \"default\"; anything outside 1–64 of [A-Za-z0-9._-] is refused.")],
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> ApiResponse[AccountFoldView]:
|
||
"""Re-discovers one already-linked cloud account and reconciles what it folded: kubeconfigs are refreshed, clusters that appeared since the last sync are folded, and clusters this account folded that the provider no longer returns are detached — only this account's own, in the fleet shard it was linked into.
|
||
|
||
Re-discovers one already-linked cloud account and reconciles what it folded: kubeconfigs are refreshed, clusters that appeared since the last sync are folded, and clusters this account folded that the provider no longer returns are detached — only this account's own, in the fleet shard it was linked into. It is idempotent, it reads the credential already sealed at link time, and a discovery failure leaves the existing fold set alone rather than mass-detaching it. An account this org has not linked is not found. Requires org admin.
|
||
|
||
:param provider: Provider is the cloud the account belongs to: digitalocean, aws, gcp or azure. An unknown provider is not found. (required)
|
||
:type provider: str
|
||
:param label: Label is the org-chosen name of the account within that provider. Empty means \"default\"; anything outside 1–64 of [A-Za-z0-9._-] is refused. (required)
|
||
:type label: str
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._post_v1_cloud_provider_accounts_label_sync_serialize(
|
||
provider=provider,
|
||
label=label,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'200': "AccountFoldView",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
response_data.read()
|
||
return self.api_client.response_deserialize(
|
||
response_data=response_data,
|
||
response_types_map=_response_types_map,
|
||
)
|
||
|
||
|
||
@validate_call
|
||
def post_v1_cloud_provider_accounts_label_sync_without_preload_content(
|
||
self,
|
||
provider: Annotated[StrictStr, Field(description="Provider is the cloud the account belongs to: digitalocean, aws, gcp or azure. An unknown provider is not found.")],
|
||
label: Annotated[StrictStr, Field(description="Label is the org-chosen name of the account within that provider. Empty means \"default\"; anything outside 1–64 of [A-Za-z0-9._-] is refused.")],
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> RESTResponseType:
|
||
"""Re-discovers one already-linked cloud account and reconciles what it folded: kubeconfigs are refreshed, clusters that appeared since the last sync are folded, and clusters this account folded that the provider no longer returns are detached — only this account's own, in the fleet shard it was linked into.
|
||
|
||
Re-discovers one already-linked cloud account and reconciles what it folded: kubeconfigs are refreshed, clusters that appeared since the last sync are folded, and clusters this account folded that the provider no longer returns are detached — only this account's own, in the fleet shard it was linked into. It is idempotent, it reads the credential already sealed at link time, and a discovery failure leaves the existing fold set alone rather than mass-detaching it. An account this org has not linked is not found. Requires org admin.
|
||
|
||
:param provider: Provider is the cloud the account belongs to: digitalocean, aws, gcp or azure. An unknown provider is not found. (required)
|
||
:type provider: str
|
||
:param label: Label is the org-chosen name of the account within that provider. Empty means \"default\"; anything outside 1–64 of [A-Za-z0-9._-] is refused. (required)
|
||
:type label: str
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._post_v1_cloud_provider_accounts_label_sync_serialize(
|
||
provider=provider,
|
||
label=label,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'200': "AccountFoldView",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
return response_data.response
|
||
|
||
|
||
def _post_v1_cloud_provider_accounts_label_sync_serialize(
|
||
self,
|
||
provider,
|
||
label,
|
||
_request_auth,
|
||
_content_type,
|
||
_headers,
|
||
_host_index,
|
||
) -> RequestSerialized:
|
||
|
||
_host = None
|
||
|
||
_collection_formats: Dict[str, str] = {
|
||
}
|
||
|
||
_path_params: Dict[str, str] = {}
|
||
_query_params: List[Tuple[str, str]] = []
|
||
_header_params: Dict[str, Optional[str]] = _headers or {}
|
||
_form_params: List[Tuple[str, str]] = []
|
||
_files: Dict[
|
||
str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
|
||
] = {}
|
||
_body_params: Optional[bytes] = None
|
||
|
||
# process the path parameters
|
||
if provider is not None:
|
||
_path_params['provider'] = provider
|
||
if label is not None:
|
||
_path_params['label'] = label
|
||
# process the query parameters
|
||
# process the header parameters
|
||
# process the form parameters
|
||
# process the body parameter
|
||
|
||
|
||
# set the HTTP header `Accept`
|
||
if 'Accept' not in _header_params:
|
||
_header_params['Accept'] = self.api_client.select_header_accept(
|
||
[
|
||
'application/json'
|
||
]
|
||
)
|
||
|
||
|
||
# authentication setting
|
||
_auth_settings: List[str] = [
|
||
]
|
||
|
||
return self.api_client.param_serialize(
|
||
method='POST',
|
||
resource_path='/v1/cloud/{provider}/accounts/{label}/sync',
|
||
path_params=_path_params,
|
||
query_params=_query_params,
|
||
header_params=_header_params,
|
||
body=_body_params,
|
||
post_params=_form_params,
|
||
files=_files,
|
||
auth_settings=_auth_settings,
|
||
collection_formats=_collection_formats,
|
||
_host=_host,
|
||
_request_auth=_request_auth
|
||
)
|
||
|
||
|