Regenerate against the document the deployment answers for

The projection these were generated from was a month old and predated the
compute migration, so every one of them described /v1/visor — which the API
serves at zero paths now. That is why a hand-written console client and a
generated one had drifted the same way at the same time.

No /v1/visor path survives here. The word still appears as a source-plane
value and inside gvisor and supervisor, which are not this rename.
This commit is contained in:
2026-09-05 18:07:44 -07:00
parent eb953b9fd5
commit 7f4e176d57
46 changed files with 3043 additions and 4053 deletions
+13 -13
View File
@@ -3,7 +3,7 @@ pkg/hanzoai/cloud/api/__init__.py
pkg/hanzoai/cloud/api/account_api.py
pkg/hanzoai/cloud/api/ad_api.py
pkg/hanzoai/cloud/api/affiliate_api.py
pkg/hanzoai/cloud/api/agents_api.py
pkg/hanzoai/cloud/api/agent_api.py
pkg/hanzoai/cloud/api/ai_api.py
pkg/hanzoai/cloud/api/allowance_api.py
pkg/hanzoai/cloud/api/ask_api.py
@@ -20,13 +20,14 @@ pkg/hanzoai/cloud/api/bot_api.py
pkg/hanzoai/cloud/api/campaign_api.py
pkg/hanzoai/cloud/api/captable_api.py
pkg/hanzoai/cloud/api/catalog_api.py
pkg/hanzoai/cloud/api/channels_api.py
pkg/hanzoai/cloud/api/channel_api.py
pkg/hanzoai/cloud/api/ci_api.py
pkg/hanzoai/cloud/api/cloudflare_api.py
pkg/hanzoai/cloud/api/code_api.py
pkg/hanzoai/cloud/api/commerce_api.py
pkg/hanzoai/cloud/api/company_api.py
pkg/hanzoai/cloud/api/compliance_api.py
pkg/hanzoai/cloud/api/compute_api.py
pkg/hanzoai/cloud/api/content_api.py
pkg/hanzoai/cloud/api/crawl_api.py
pkg/hanzoai/cloud/api/dataroom_api.py
@@ -43,10 +44,10 @@ pkg/hanzoai/cloud/api/event_api.py
pkg/hanzoai/cloud/api/exec_api.py
pkg/hanzoai/cloud/api/experiment_api.py
pkg/hanzoai/cloud/api/explorer_api.py
pkg/hanzoai/cloud/api/flags_api.py
pkg/hanzoai/cloud/api/flag_api.py
pkg/hanzoai/cloud/api/flow_api.py
pkg/hanzoai/cloud/api/framework_api.py
pkg/hanzoai/cloud/api/functions_api.py
pkg/hanzoai/cloud/api/function_api.py
pkg/hanzoai/cloud/api/gateway_api.py
pkg/hanzoai/cloud/api/git_api.py
pkg/hanzoai/cloud/api/graph_api.py
@@ -55,7 +56,7 @@ pkg/hanzoai/cloud/api/help_api.py
pkg/hanzoai/cloud/api/iam_api.py
pkg/hanzoai/cloud/api/index_api.py
pkg/hanzoai/cloud/api/ingress_api.py
pkg/hanzoai/cloud/api/integrations_api.py
pkg/hanzoai/cloud/api/integration_api.py
pkg/hanzoai/cloud/api/kms_api.py
pkg/hanzoai/cloud/api/knowledge_api.py
pkg/hanzoai/cloud/api/kv_api.py
@@ -81,7 +82,7 @@ pkg/hanzoai/cloud/api/plan_api.py
pkg/hanzoai/cloud/api/platform_api.py
pkg/hanzoai/cloud/api/pref_api.py
pkg/hanzoai/cloud/api/pricing_api.py
pkg/hanzoai/cloud/api/projects_api.py
pkg/hanzoai/cloud/api/project_api.py
pkg/hanzoai/cloud/api/prompt_api.py
pkg/hanzoai/cloud/api/provisioning_api.py
pkg/hanzoai/cloud/api/pubsub_api.py
@@ -107,13 +108,12 @@ pkg/hanzoai/cloud/api/team_api.py
pkg/hanzoai/cloud/api/tel_api.py
pkg/hanzoai/cloud/api/template_api.py
pkg/hanzoai/cloud/api/todo_api.py
pkg/hanzoai/cloud/api/tools_api.py
pkg/hanzoai/cloud/api/tool_api.py
pkg/hanzoai/cloud/api/translate_api.py
pkg/hanzoai/cloud/api/treasury_api.py
pkg/hanzoai/cloud/api/trust_api.py
pkg/hanzoai/cloud/api/usage_api.py
pkg/hanzoai/cloud/api/validator_api.py
pkg/hanzoai/cloud/api/visor_api.py
pkg/hanzoai/cloud/api/wallet_api.py
pkg/hanzoai/cloud/api/web3_api.py
pkg/hanzoai/cloud/api/webhook_api.py
@@ -317,14 +317,12 @@ pkg/hanzoai/cloud/models/board_scope.py
pkg/hanzoai/cloud/models/board_totals.py
pkg/hanzoai/cloud/models/book_request.py
pkg/hanzoai/cloud/models/book_response.py
pkg/hanzoai/cloud/models/bot_list.py
pkg/hanzoai/cloud/models/bot_member.py
pkg/hanzoai/cloud/models/bot_roster.py
pkg/hanzoai/cloud/models/bot_run.py
pkg/hanzoai/cloud/models/bot_runs.py
pkg/hanzoai/cloud/models/bot_stopped.py
pkg/hanzoai/cloud/models/bot_sync.py
pkg/hanzoai/cloud/models/bot_view.py
pkg/hanzoai/cloud/models/breakdown.py
pkg/hanzoai/cloud/models/breakdown_row.py
pkg/hanzoai/cloud/models/browser_tag_out.py
@@ -736,6 +734,11 @@ pkg/hanzoai/cloud/models/flow_trigger.py
pkg/hanzoai/cloud/models/flow_update.py
pkg/hanzoai/cloud/models/flow_version.py
pkg/hanzoai/cloud/models/fn_list.py
pkg/hanzoai/cloud/models/forge_job.py
pkg/hanzoai/cloud/models/forge_job_repository.py
pkg/hanzoai/cloud/models/forge_job_repository_owner.py
pkg/hanzoai/cloud/models/forge_job_workflow_job.py
pkg/hanzoai/cloud/models/forge_launched.py
pkg/hanzoai/cloud/models/form.py
pkg/hanzoai/cloud/models/form_item.py
pkg/hanzoai/cloud/models/formation.py
@@ -2181,10 +2184,7 @@ pkg/hanzoai/cloud/models/pull_view.py
pkg/hanzoai/cloud/models/purge.py
pkg/hanzoai/cloud/models/purge_in.py
pkg/hanzoai/cloud/models/purge_out.py
pkg/hanzoai/cloud/models/push.py
pkg/hanzoai/cloud/models/push_file.py
pkg/hanzoai/cloud/models/push_pusher.py
pkg/hanzoai/cloud/models/push_repository.py
pkg/hanzoai/cloud/models/push_req.py
pkg/hanzoai/cloud/models/push_resp.py
pkg/hanzoai/cloud/models/put_claims_in.py
+26 -26
View File
@@ -21,7 +21,7 @@ __all__ = [
"AccountApi",
"AdApi",
"AffiliateApi",
"AgentsApi",
"AgentApi",
"AiApi",
"AllowanceApi",
"AskApi",
@@ -38,13 +38,14 @@ __all__ = [
"CampaignApi",
"CaptableApi",
"CatalogApi",
"ChannelsApi",
"ChannelApi",
"CiApi",
"CloudflareApi",
"CodeApi",
"CommerceApi",
"CompanyApi",
"ComplianceApi",
"ComputeApi",
"ContentApi",
"CrawlApi",
"DataroomApi",
@@ -61,10 +62,10 @@ __all__ = [
"ExecApi",
"ExperimentApi",
"ExplorerApi",
"FlagsApi",
"FlagApi",
"FlowApi",
"FrameworkApi",
"FunctionsApi",
"FunctionApi",
"GatewayApi",
"GitApi",
"GraphApi",
@@ -73,7 +74,7 @@ __all__ = [
"IamApi",
"IndexApi",
"IngressApi",
"IntegrationsApi",
"IntegrationApi",
"KmsApi",
"KnowledgeApi",
"KvApi",
@@ -99,7 +100,7 @@ __all__ = [
"PlatformApi",
"PrefApi",
"PricingApi",
"ProjectsApi",
"ProjectApi",
"PromptApi",
"ProvisioningApi",
"PubsubApi",
@@ -125,13 +126,12 @@ __all__ = [
"TelApi",
"TemplateApi",
"TodoApi",
"ToolsApi",
"ToolApi",
"TranslateApi",
"TreasuryApi",
"TrustApi",
"UsageApi",
"ValidatorApi",
"VisorApi",
"WalletApi",
"Web3Api",
"WebhookApi",
@@ -339,14 +339,12 @@ __all__ = [
"BoardTotals",
"BookRequest",
"BookResponse",
"BotList",
"BotMember",
"BotRoster",
"BotRun",
"BotRuns",
"BotStopped",
"BotSync",
"BotView",
"Breakdown",
"BreakdownRow",
"BrowserTagOut",
@@ -758,6 +756,11 @@ __all__ = [
"FlowUpdate",
"FlowVersion",
"FnList",
"ForgeJob",
"ForgeJobRepository",
"ForgeJobRepositoryOwner",
"ForgeJobWorkflowJob",
"ForgeLaunched",
"Form",
"FormItem",
"Formation",
@@ -2203,10 +2206,7 @@ __all__ = [
"Purge",
"PurgeIn",
"PurgeOut",
"Push",
"PushFile",
"PushPusher",
"PushRepository",
"PushReq",
"PushResp",
"PutClaimsIn",
@@ -2726,7 +2726,7 @@ __all__ = [
from hanzoai.cloud.api.account_api import AccountApi as AccountApi
from hanzoai.cloud.api.ad_api import AdApi as AdApi
from hanzoai.cloud.api.affiliate_api import AffiliateApi as AffiliateApi
from hanzoai.cloud.api.agents_api import AgentsApi as AgentsApi
from hanzoai.cloud.api.agent_api import AgentApi as AgentApi
from hanzoai.cloud.api.ai_api import AiApi as AiApi
from hanzoai.cloud.api.allowance_api import AllowanceApi as AllowanceApi
from hanzoai.cloud.api.ask_api import AskApi as AskApi
@@ -2743,13 +2743,14 @@ from hanzoai.cloud.api.bot_api import BotApi as BotApi
from hanzoai.cloud.api.campaign_api import CampaignApi as CampaignApi
from hanzoai.cloud.api.captable_api import CaptableApi as CaptableApi
from hanzoai.cloud.api.catalog_api import CatalogApi as CatalogApi
from hanzoai.cloud.api.channels_api import ChannelsApi as ChannelsApi
from hanzoai.cloud.api.channel_api import ChannelApi as ChannelApi
from hanzoai.cloud.api.ci_api import CiApi as CiApi
from hanzoai.cloud.api.cloudflare_api import CloudflareApi as CloudflareApi
from hanzoai.cloud.api.code_api import CodeApi as CodeApi
from hanzoai.cloud.api.commerce_api import CommerceApi as CommerceApi
from hanzoai.cloud.api.company_api import CompanyApi as CompanyApi
from hanzoai.cloud.api.compliance_api import ComplianceApi as ComplianceApi
from hanzoai.cloud.api.compute_api import ComputeApi as ComputeApi
from hanzoai.cloud.api.content_api import ContentApi as ContentApi
from hanzoai.cloud.api.crawl_api import CrawlApi as CrawlApi
from hanzoai.cloud.api.dataroom_api import DataroomApi as DataroomApi
@@ -2766,10 +2767,10 @@ from hanzoai.cloud.api.event_api import EventApi as EventApi
from hanzoai.cloud.api.exec_api import ExecApi as ExecApi
from hanzoai.cloud.api.experiment_api import ExperimentApi as ExperimentApi
from hanzoai.cloud.api.explorer_api import ExplorerApi as ExplorerApi
from hanzoai.cloud.api.flags_api import FlagsApi as FlagsApi
from hanzoai.cloud.api.flag_api import FlagApi as FlagApi
from hanzoai.cloud.api.flow_api import FlowApi as FlowApi
from hanzoai.cloud.api.framework_api import FrameworkApi as FrameworkApi
from hanzoai.cloud.api.functions_api import FunctionsApi as FunctionsApi
from hanzoai.cloud.api.function_api import FunctionApi as FunctionApi
from hanzoai.cloud.api.gateway_api import GatewayApi as GatewayApi
from hanzoai.cloud.api.git_api import GitApi as GitApi
from hanzoai.cloud.api.graph_api import GraphApi as GraphApi
@@ -2778,7 +2779,7 @@ from hanzoai.cloud.api.help_api import HelpApi as HelpApi
from hanzoai.cloud.api.iam_api import IamApi as IamApi
from hanzoai.cloud.api.index_api import IndexApi as IndexApi
from hanzoai.cloud.api.ingress_api import IngressApi as IngressApi
from hanzoai.cloud.api.integrations_api import IntegrationsApi as IntegrationsApi
from hanzoai.cloud.api.integration_api import IntegrationApi as IntegrationApi
from hanzoai.cloud.api.kms_api import KmsApi as KmsApi
from hanzoai.cloud.api.knowledge_api import KnowledgeApi as KnowledgeApi
from hanzoai.cloud.api.kv_api import KvApi as KvApi
@@ -2804,7 +2805,7 @@ from hanzoai.cloud.api.plan_api import PlanApi as PlanApi
from hanzoai.cloud.api.platform_api import PlatformApi as PlatformApi
from hanzoai.cloud.api.pref_api import PrefApi as PrefApi
from hanzoai.cloud.api.pricing_api import PricingApi as PricingApi
from hanzoai.cloud.api.projects_api import ProjectsApi as ProjectsApi
from hanzoai.cloud.api.project_api import ProjectApi as ProjectApi
from hanzoai.cloud.api.prompt_api import PromptApi as PromptApi
from hanzoai.cloud.api.provisioning_api import ProvisioningApi as ProvisioningApi
from hanzoai.cloud.api.pubsub_api import PubsubApi as PubsubApi
@@ -2830,13 +2831,12 @@ from hanzoai.cloud.api.team_api import TeamApi as TeamApi
from hanzoai.cloud.api.tel_api import TelApi as TelApi
from hanzoai.cloud.api.template_api import TemplateApi as TemplateApi
from hanzoai.cloud.api.todo_api import TodoApi as TodoApi
from hanzoai.cloud.api.tools_api import ToolsApi as ToolsApi
from hanzoai.cloud.api.tool_api import ToolApi as ToolApi
from hanzoai.cloud.api.translate_api import TranslateApi as TranslateApi
from hanzoai.cloud.api.treasury_api import TreasuryApi as TreasuryApi
from hanzoai.cloud.api.trust_api import TrustApi as TrustApi
from hanzoai.cloud.api.usage_api import UsageApi as UsageApi
from hanzoai.cloud.api.validator_api import ValidatorApi as ValidatorApi
from hanzoai.cloud.api.visor_api import VisorApi as VisorApi
from hanzoai.cloud.api.wallet_api import WalletApi as WalletApi
from hanzoai.cloud.api.web3_api import Web3Api as Web3Api
from hanzoai.cloud.api.webhook_api import WebhookApi as WebhookApi
@@ -3048,14 +3048,12 @@ from hanzoai.cloud.models.board_scope import BoardScope as BoardScope
from hanzoai.cloud.models.board_totals import BoardTotals as BoardTotals
from hanzoai.cloud.models.book_request import BookRequest as BookRequest
from hanzoai.cloud.models.book_response import BookResponse as BookResponse
from hanzoai.cloud.models.bot_list import BotList as BotList
from hanzoai.cloud.models.bot_member import BotMember as BotMember
from hanzoai.cloud.models.bot_roster import BotRoster as BotRoster
from hanzoai.cloud.models.bot_run import BotRun as BotRun
from hanzoai.cloud.models.bot_runs import BotRuns as BotRuns
from hanzoai.cloud.models.bot_stopped import BotStopped as BotStopped
from hanzoai.cloud.models.bot_sync import BotSync as BotSync
from hanzoai.cloud.models.bot_view import BotView as BotView
from hanzoai.cloud.models.breakdown import Breakdown as Breakdown
from hanzoai.cloud.models.breakdown_row import BreakdownRow as BreakdownRow
from hanzoai.cloud.models.browser_tag_out import BrowserTagOut as BrowserTagOut
@@ -3467,6 +3465,11 @@ from hanzoai.cloud.models.flow_trigger import FlowTrigger as FlowTrigger
from hanzoai.cloud.models.flow_update import FlowUpdate as FlowUpdate
from hanzoai.cloud.models.flow_version import FlowVersion as FlowVersion
from hanzoai.cloud.models.fn_list import FnList as FnList
from hanzoai.cloud.models.forge_job import ForgeJob as ForgeJob
from hanzoai.cloud.models.forge_job_repository import ForgeJobRepository as ForgeJobRepository
from hanzoai.cloud.models.forge_job_repository_owner import ForgeJobRepositoryOwner as ForgeJobRepositoryOwner
from hanzoai.cloud.models.forge_job_workflow_job import ForgeJobWorkflowJob as ForgeJobWorkflowJob
from hanzoai.cloud.models.forge_launched import ForgeLaunched as ForgeLaunched
from hanzoai.cloud.models.form import Form as Form
from hanzoai.cloud.models.form_item import FormItem as FormItem
from hanzoai.cloud.models.formation import Formation as Formation
@@ -4912,10 +4915,7 @@ from hanzoai.cloud.models.pull_view import PullView as PullView
from hanzoai.cloud.models.purge import Purge as Purge
from hanzoai.cloud.models.purge_in import PurgeIn as PurgeIn
from hanzoai.cloud.models.purge_out import PurgeOut as PurgeOut
from hanzoai.cloud.models.push import Push as Push
from hanzoai.cloud.models.push_file import PushFile as PushFile
from hanzoai.cloud.models.push_pusher import PushPusher as PushPusher
from hanzoai.cloud.models.push_repository import PushRepository as PushRepository
from hanzoai.cloud.models.push_req import PushReq as PushReq
from hanzoai.cloud.models.push_resp import PushResp as PushResp
from hanzoai.cloud.models.put_claims_in import PutClaimsIn as PutClaimsIn
+8 -8
View File
@@ -4,7 +4,7 @@
from hanzoai.cloud.api.account_api import AccountApi
from hanzoai.cloud.api.ad_api import AdApi
from hanzoai.cloud.api.affiliate_api import AffiliateApi
from hanzoai.cloud.api.agents_api import AgentsApi
from hanzoai.cloud.api.agent_api import AgentApi
from hanzoai.cloud.api.ai_api import AiApi
from hanzoai.cloud.api.allowance_api import AllowanceApi
from hanzoai.cloud.api.ask_api import AskApi
@@ -21,13 +21,14 @@ from hanzoai.cloud.api.bot_api import BotApi
from hanzoai.cloud.api.campaign_api import CampaignApi
from hanzoai.cloud.api.captable_api import CaptableApi
from hanzoai.cloud.api.catalog_api import CatalogApi
from hanzoai.cloud.api.channels_api import ChannelsApi
from hanzoai.cloud.api.channel_api import ChannelApi
from hanzoai.cloud.api.ci_api import CiApi
from hanzoai.cloud.api.cloudflare_api import CloudflareApi
from hanzoai.cloud.api.code_api import CodeApi
from hanzoai.cloud.api.commerce_api import CommerceApi
from hanzoai.cloud.api.company_api import CompanyApi
from hanzoai.cloud.api.compliance_api import ComplianceApi
from hanzoai.cloud.api.compute_api import ComputeApi
from hanzoai.cloud.api.content_api import ContentApi
from hanzoai.cloud.api.crawl_api import CrawlApi
from hanzoai.cloud.api.dataroom_api import DataroomApi
@@ -44,10 +45,10 @@ from hanzoai.cloud.api.event_api import EventApi
from hanzoai.cloud.api.exec_api import ExecApi
from hanzoai.cloud.api.experiment_api import ExperimentApi
from hanzoai.cloud.api.explorer_api import ExplorerApi
from hanzoai.cloud.api.flags_api import FlagsApi
from hanzoai.cloud.api.flag_api import FlagApi
from hanzoai.cloud.api.flow_api import FlowApi
from hanzoai.cloud.api.framework_api import FrameworkApi
from hanzoai.cloud.api.functions_api import FunctionsApi
from hanzoai.cloud.api.function_api import FunctionApi
from hanzoai.cloud.api.gateway_api import GatewayApi
from hanzoai.cloud.api.git_api import GitApi
from hanzoai.cloud.api.graph_api import GraphApi
@@ -56,7 +57,7 @@ from hanzoai.cloud.api.help_api import HelpApi
from hanzoai.cloud.api.iam_api import IamApi
from hanzoai.cloud.api.index_api import IndexApi
from hanzoai.cloud.api.ingress_api import IngressApi
from hanzoai.cloud.api.integrations_api import IntegrationsApi
from hanzoai.cloud.api.integration_api import IntegrationApi
from hanzoai.cloud.api.kms_api import KmsApi
from hanzoai.cloud.api.knowledge_api import KnowledgeApi
from hanzoai.cloud.api.kv_api import KvApi
@@ -82,7 +83,7 @@ from hanzoai.cloud.api.plan_api import PlanApi
from hanzoai.cloud.api.platform_api import PlatformApi
from hanzoai.cloud.api.pref_api import PrefApi
from hanzoai.cloud.api.pricing_api import PricingApi
from hanzoai.cloud.api.projects_api import ProjectsApi
from hanzoai.cloud.api.project_api import ProjectApi
from hanzoai.cloud.api.prompt_api import PromptApi
from hanzoai.cloud.api.provisioning_api import ProvisioningApi
from hanzoai.cloud.api.pubsub_api import PubsubApi
@@ -108,13 +109,12 @@ from hanzoai.cloud.api.team_api import TeamApi
from hanzoai.cloud.api.tel_api import TelApi
from hanzoai.cloud.api.template_api import TemplateApi
from hanzoai.cloud.api.todo_api import TodoApi
from hanzoai.cloud.api.tools_api import ToolsApi
from hanzoai.cloud.api.tool_api import ToolApi
from hanzoai.cloud.api.translate_api import TranslateApi
from hanzoai.cloud.api.treasury_api import TreasuryApi
from hanzoai.cloud.api.trust_api import TrustApi
from hanzoai.cloud.api.usage_api import UsageApi
from hanzoai.cloud.api.validator_api import ValidatorApi
from hanzoai.cloud.api.visor_api import VisorApi
from hanzoai.cloud.api.wallet_api import WalletApi
from hanzoai.cloud.api.web3_api import Web3Api
from hanzoai.cloud.api.webhook_api import WebhookApi
File diff suppressed because it is too large Load Diff
+494
View File
@@ -18,8 +18,10 @@ from typing_extensions import Annotated
from pydantic import Field, StrictStr
from typing_extensions import Annotated
from hanzoai.cloud.models.bot_roster import BotRoster
from hanzoai.cloud.models.bot_runs import BotRuns
from hanzoai.cloud.models.bot_stopped import BotStopped
from hanzoai.cloud.models.bot_sync import BotSync
from hanzoai.cloud.api_client import ApiClient, RequestSerialized
from hanzoai.cloud.api_response import ApiResponse
@@ -39,6 +41,252 @@ class BotApi:
self.api_client = api_client
@validate_call
def get_bot_members(
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,
) -> BotRoster:
"""Returns the caller org's bots as space members — each with the member account uuid and the Person reference the roster addresses it by.
Returns the caller org's bots as space members — each with the member account uuid and the Person reference the roster addresses it by. A deployment that runs no team subsystem has no spaces and therefore no roster, which is an empty list rather than an error: ErrNoPeer is the ONE error that means \"this deployment does not run that app\", and every other failure is an outage and says so.
: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_bot_members_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index
)
_response_types_map: Dict[str, Optional[str]] = {
'200': "BotRoster",
}
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_bot_members_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[BotRoster]:
"""Returns the caller org's bots as space members — each with the member account uuid and the Person reference the roster addresses it by.
Returns the caller org's bots as space members — each with the member account uuid and the Person reference the roster addresses it by. A deployment that runs no team subsystem has no spaces and therefore no roster, which is an empty list rather than an error: ErrNoPeer is the ONE error that means \"this deployment does not run that app\", and every other failure is an outage and says so.
: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_bot_members_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index
)
_response_types_map: Dict[str, Optional[str]] = {
'200': "BotRoster",
}
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_bot_members_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 caller org's bots as space members — each with the member account uuid and the Person reference the roster addresses it by.
Returns the caller org's bots as space members — each with the member account uuid and the Person reference the roster addresses it by. A deployment that runs no team subsystem has no spaces and therefore no roster, which is an empty list rather than an error: ErrNoPeer is the ONE error that means \"this deployment does not run that app\", and every other failure is an outage and says so.
: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_bot_members_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index
)
_response_types_map: Dict[str, Optional[str]] = {
'200': "BotRoster",
}
response_data = self.api_client.call_api(
*_param,
_request_timeout=_request_timeout
)
return response_data.response
def _get_bot_members_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] = [
'bearer'
]
return self.api_client.param_serialize(
method='GET',
resource_path='/v1/bot/members',
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_bot_runs(
self,
@@ -285,6 +533,252 @@ class BotApi:
@validate_call
def post_bot_members_sync(
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,
) -> BotSync:
"""Re-projects the caller org's bots as members into every space of the org and removes the ones whose agent is gone.
Re-projects the caller org's bots as members into every space of the org and removes the ones whose agent is gone. Idempotent, and admin only — the admin bit rides the caller to team, which is what decides it.
: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_bot_members_sync_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index
)
_response_types_map: Dict[str, Optional[str]] = {
'200': "BotSync",
}
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_bot_members_sync_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[BotSync]:
"""Re-projects the caller org's bots as members into every space of the org and removes the ones whose agent is gone.
Re-projects the caller org's bots as members into every space of the org and removes the ones whose agent is gone. Idempotent, and admin only — the admin bit rides the caller to team, which is what decides it.
: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_bot_members_sync_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index
)
_response_types_map: Dict[str, Optional[str]] = {
'200': "BotSync",
}
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_bot_members_sync_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:
"""Re-projects the caller org's bots as members into every space of the org and removes the ones whose agent is gone.
Re-projects the caller org's bots as members into every space of the org and removes the ones whose agent is gone. Idempotent, and admin only — the admin bit rides the caller to team, which is what decides it.
: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_bot_members_sync_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index
)
_response_types_map: Dict[str, Optional[str]] = {
'200': "BotSync",
}
response_data = self.api_client.call_api(
*_param,
_request_timeout=_request_timeout
)
return response_data.response
def _post_bot_members_sync_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] = [
'bearer'
]
return self.api_client.param_serialize(
method='POST',
resource_path='/v1/bot/members/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
)
@validate_call
def post_bot_runs(
self,
@@ -34,7 +34,7 @@ from hanzoai.cloud.api_response import ApiResponse
from hanzoai.cloud.rest import RESTResponseType
class ChannelsApi:
class ChannelApi:
"""NOTE: This class is auto generated by OpenAPI Generator
Ref: https://openapi-generator.tech
@@ -48,7 +48,7 @@ class ChannelsApi:
@validate_call
def get_channels(
def get_channel(
self,
_request_timeout: Union[
None,
@@ -89,7 +89,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_channels_serialize(
_param = self._get_channel_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -111,7 +111,7 @@ class ChannelsApi:
@validate_call
def get_channels_with_http_info(
def get_channel_with_http_info(
self,
_request_timeout: Union[
None,
@@ -152,7 +152,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_channels_serialize(
_param = self._get_channel_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -174,7 +174,7 @@ class ChannelsApi:
@validate_call
def get_channels_without_preload_content(
def get_channel_without_preload_content(
self,
_request_timeout: Union[
None,
@@ -215,7 +215,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_channels_serialize(
_param = self._get_channel_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -232,7 +232,7 @@ class ChannelsApi:
return response_data.response
def _get_channels_serialize(
def _get_channel_serialize(
self,
_request_auth,
_content_type,
@@ -277,7 +277,7 @@ class ChannelsApi:
return self.api_client.param_serialize(
method='GET',
resource_path='/v1/channels',
resource_path='/v1/channel',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -294,7 +294,7 @@ class ChannelsApi:
@validate_call
def get_channels_agent(
def get_channel_agent(
self,
channel: Annotated[Optional[StrictStr], Field(description="Channel is the transport: discord, github, linear, slack, teams, telegram or whatsapp. Required; an unknown value is a 404.")] = None,
_request_timeout: Union[
@@ -338,7 +338,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_channels_agent_serialize(
_param = self._get_channel_agent_serialize(
channel=channel,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -361,7 +361,7 @@ class ChannelsApi:
@validate_call
def get_channels_agent_with_http_info(
def get_channel_agent_with_http_info(
self,
channel: Annotated[Optional[StrictStr], Field(description="Channel is the transport: discord, github, linear, slack, teams, telegram or whatsapp. Required; an unknown value is a 404.")] = None,
_request_timeout: Union[
@@ -405,7 +405,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_channels_agent_serialize(
_param = self._get_channel_agent_serialize(
channel=channel,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -428,7 +428,7 @@ class ChannelsApi:
@validate_call
def get_channels_agent_without_preload_content(
def get_channel_agent_without_preload_content(
self,
channel: Annotated[Optional[StrictStr], Field(description="Channel is the transport: discord, github, linear, slack, teams, telegram or whatsapp. Required; an unknown value is a 404.")] = None,
_request_timeout: Union[
@@ -472,7 +472,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_channels_agent_serialize(
_param = self._get_channel_agent_serialize(
channel=channel,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -490,7 +490,7 @@ class ChannelsApi:
return response_data.response
def _get_channels_agent_serialize(
def _get_channel_agent_serialize(
self,
channel,
_request_auth,
@@ -540,7 +540,7 @@ class ChannelsApi:
return self.api_client.param_serialize(
method='GET',
resource_path='/v1/channels/agent',
resource_path='/v1/channel/agent',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -557,7 +557,7 @@ class ChannelsApi:
@validate_call
def get_channels_allowlist(
def get_channel_allowlist(
self,
channel: Annotated[Optional[StrictStr], Field(description="Channel is the transport to read: discord, github, linear, slack, teams, telegram or whatsapp. Required; an unknown value is a 404.")] = None,
_request_timeout: Union[
@@ -601,7 +601,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_channels_allowlist_serialize(
_param = self._get_channel_allowlist_serialize(
channel=channel,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -624,7 +624,7 @@ class ChannelsApi:
@validate_call
def get_channels_allowlist_with_http_info(
def get_channel_allowlist_with_http_info(
self,
channel: Annotated[Optional[StrictStr], Field(description="Channel is the transport to read: discord, github, linear, slack, teams, telegram or whatsapp. Required; an unknown value is a 404.")] = None,
_request_timeout: Union[
@@ -668,7 +668,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_channels_allowlist_serialize(
_param = self._get_channel_allowlist_serialize(
channel=channel,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -691,7 +691,7 @@ class ChannelsApi:
@validate_call
def get_channels_allowlist_without_preload_content(
def get_channel_allowlist_without_preload_content(
self,
channel: Annotated[Optional[StrictStr], Field(description="Channel is the transport to read: discord, github, linear, slack, teams, telegram or whatsapp. Required; an unknown value is a 404.")] = None,
_request_timeout: Union[
@@ -735,7 +735,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_channels_allowlist_serialize(
_param = self._get_channel_allowlist_serialize(
channel=channel,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -753,7 +753,7 @@ class ChannelsApi:
return response_data.response
def _get_channels_allowlist_serialize(
def _get_channel_allowlist_serialize(
self,
channel,
_request_auth,
@@ -803,7 +803,7 @@ class ChannelsApi:
return self.api_client.param_serialize(
method='GET',
resource_path='/v1/channels/allowlist',
resource_path='/v1/channel/allowlist',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -820,7 +820,7 @@ class ChannelsApi:
@validate_call
def get_channels_inbox(
def get_channel_inbox(
self,
since: Annotated[Optional[StrictStr], Field(description="Since is the exclusive cursor: only messages with a higher row id come back. Empty starts at the beginning. Must parse as an integer.")] = None,
limit: Annotated[Optional[StrictStr], Field(description="Limit caps how many messages come back. Empty or 0 uses the store's default page size. Must parse as an integer.")] = None,
@@ -867,7 +867,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_channels_inbox_serialize(
_param = self._get_channel_inbox_serialize(
since=since,
limit=limit,
_request_auth=_request_auth,
@@ -891,7 +891,7 @@ class ChannelsApi:
@validate_call
def get_channels_inbox_with_http_info(
def get_channel_inbox_with_http_info(
self,
since: Annotated[Optional[StrictStr], Field(description="Since is the exclusive cursor: only messages with a higher row id come back. Empty starts at the beginning. Must parse as an integer.")] = None,
limit: Annotated[Optional[StrictStr], Field(description="Limit caps how many messages come back. Empty or 0 uses the store's default page size. Must parse as an integer.")] = None,
@@ -938,7 +938,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_channels_inbox_serialize(
_param = self._get_channel_inbox_serialize(
since=since,
limit=limit,
_request_auth=_request_auth,
@@ -962,7 +962,7 @@ class ChannelsApi:
@validate_call
def get_channels_inbox_without_preload_content(
def get_channel_inbox_without_preload_content(
self,
since: Annotated[Optional[StrictStr], Field(description="Since is the exclusive cursor: only messages with a higher row id come back. Empty starts at the beginning. Must parse as an integer.")] = None,
limit: Annotated[Optional[StrictStr], Field(description="Limit caps how many messages come back. Empty or 0 uses the store's default page size. Must parse as an integer.")] = None,
@@ -1009,7 +1009,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_channels_inbox_serialize(
_param = self._get_channel_inbox_serialize(
since=since,
limit=limit,
_request_auth=_request_auth,
@@ -1028,7 +1028,7 @@ class ChannelsApi:
return response_data.response
def _get_channels_inbox_serialize(
def _get_channel_inbox_serialize(
self,
since,
limit,
@@ -1083,7 +1083,7 @@ class ChannelsApi:
return self.api_client.param_serialize(
method='GET',
resource_path='/v1/channels/inbox',
resource_path='/v1/channel/inbox',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1100,7 +1100,7 @@ class ChannelsApi:
@validate_call
def get_channels_pairing(
def get_channel_pairing(
self,
_request_timeout: Union[
None,
@@ -1117,7 +1117,7 @@ class ChannelsApi:
) -> PairingQueue:
"""Returns the pairing requests waiting for the caller org to approve — one per person who messaged a connected bot on a channel whose DM policy is \"pairing\" and who is not allowed yet.
Returns the pairing requests waiting for the caller org to approve — one per person who messaged a connected bot on a channel whose DM policy is \"pairing\" and who is not allowed yet. Each row carries the CODE an org admin passes to POST /v1/channels/pairing/approve. Expired requests are not returned. Codes are capability strings: they are shown here, and never logged.
Returns the pairing requests waiting for the caller org to approve — one per person who messaged a connected bot on a channel whose DM policy is \"pairing\" and who is not allowed yet. Each row carries the CODE an org admin passes to POST /v1/channel/pairing/approve. Expired requests are not returned. Codes are capability strings: they are shown here, and never logged.
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
@@ -1141,7 +1141,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_channels_pairing_serialize(
_param = self._get_channel_pairing_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -1163,7 +1163,7 @@ class ChannelsApi:
@validate_call
def get_channels_pairing_with_http_info(
def get_channel_pairing_with_http_info(
self,
_request_timeout: Union[
None,
@@ -1180,7 +1180,7 @@ class ChannelsApi:
) -> ApiResponse[PairingQueue]:
"""Returns the pairing requests waiting for the caller org to approve — one per person who messaged a connected bot on a channel whose DM policy is \"pairing\" and who is not allowed yet.
Returns the pairing requests waiting for the caller org to approve — one per person who messaged a connected bot on a channel whose DM policy is \"pairing\" and who is not allowed yet. Each row carries the CODE an org admin passes to POST /v1/channels/pairing/approve. Expired requests are not returned. Codes are capability strings: they are shown here, and never logged.
Returns the pairing requests waiting for the caller org to approve — one per person who messaged a connected bot on a channel whose DM policy is \"pairing\" and who is not allowed yet. Each row carries the CODE an org admin passes to POST /v1/channel/pairing/approve. Expired requests are not returned. Codes are capability strings: they are shown here, and never logged.
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
@@ -1204,7 +1204,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_channels_pairing_serialize(
_param = self._get_channel_pairing_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -1226,7 +1226,7 @@ class ChannelsApi:
@validate_call
def get_channels_pairing_without_preload_content(
def get_channel_pairing_without_preload_content(
self,
_request_timeout: Union[
None,
@@ -1243,7 +1243,7 @@ class ChannelsApi:
) -> RESTResponseType:
"""Returns the pairing requests waiting for the caller org to approve — one per person who messaged a connected bot on a channel whose DM policy is \"pairing\" and who is not allowed yet.
Returns the pairing requests waiting for the caller org to approve — one per person who messaged a connected bot on a channel whose DM policy is \"pairing\" and who is not allowed yet. Each row carries the CODE an org admin passes to POST /v1/channels/pairing/approve. Expired requests are not returned. Codes are capability strings: they are shown here, and never logged.
Returns the pairing requests waiting for the caller org to approve — one per person who messaged a connected bot on a channel whose DM policy is \"pairing\" and who is not allowed yet. Each row carries the CODE an org admin passes to POST /v1/channel/pairing/approve. Expired requests are not returned. Codes are capability strings: they are shown here, and never logged.
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
@@ -1267,7 +1267,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_channels_pairing_serialize(
_param = self._get_channel_pairing_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -1284,7 +1284,7 @@ class ChannelsApi:
return response_data.response
def _get_channels_pairing_serialize(
def _get_channel_pairing_serialize(
self,
_request_auth,
_content_type,
@@ -1329,7 +1329,7 @@ class ChannelsApi:
return self.api_client.param_serialize(
method='GET',
resource_path='/v1/channels/pairing',
resource_path='/v1/channel/pairing',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1346,7 +1346,7 @@ class ChannelsApi:
@validate_call
def post_channels_by_channel_send(
def post_channel_by_channel_send(
self,
channel: StrictStr,
_request_timeout: Union[
@@ -1390,7 +1390,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._post_channels_by_channel_send_serialize(
_param = self._post_channel_by_channel_send_serialize(
channel=channel,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -1412,7 +1412,7 @@ class ChannelsApi:
@validate_call
def post_channels_by_channel_send_with_http_info(
def post_channel_by_channel_send_with_http_info(
self,
channel: StrictStr,
_request_timeout: Union[
@@ -1456,7 +1456,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._post_channels_by_channel_send_serialize(
_param = self._post_channel_by_channel_send_serialize(
channel=channel,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -1478,7 +1478,7 @@ class ChannelsApi:
@validate_call
def post_channels_by_channel_send_without_preload_content(
def post_channel_by_channel_send_without_preload_content(
self,
channel: StrictStr,
_request_timeout: Union[
@@ -1522,7 +1522,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._post_channels_by_channel_send_serialize(
_param = self._post_channel_by_channel_send_serialize(
channel=channel,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -1539,7 +1539,7 @@ class ChannelsApi:
return response_data.response
def _post_channels_by_channel_send_serialize(
def _post_channel_by_channel_send_serialize(
self,
channel,
_request_auth,
@@ -1580,7 +1580,7 @@ class ChannelsApi:
return self.api_client.param_serialize(
method='POST',
resource_path='/v1/channels/{channel}/send',
resource_path='/v1/channel/{channel}/send',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1597,7 +1597,7 @@ class ChannelsApi:
@validate_call
def post_channels_pairing_approve(
def post_channel_pairing_approve(
self,
approve_pairing_in: ApprovePairingIn,
_request_timeout: Union[
@@ -1641,7 +1641,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._post_channels_pairing_approve_serialize(
_param = self._post_channel_pairing_approve_serialize(
approve_pairing_in=approve_pairing_in,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -1664,7 +1664,7 @@ class ChannelsApi:
@validate_call
def post_channels_pairing_approve_with_http_info(
def post_channel_pairing_approve_with_http_info(
self,
approve_pairing_in: ApprovePairingIn,
_request_timeout: Union[
@@ -1708,7 +1708,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._post_channels_pairing_approve_serialize(
_param = self._post_channel_pairing_approve_serialize(
approve_pairing_in=approve_pairing_in,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -1731,7 +1731,7 @@ class ChannelsApi:
@validate_call
def post_channels_pairing_approve_without_preload_content(
def post_channel_pairing_approve_without_preload_content(
self,
approve_pairing_in: ApprovePairingIn,
_request_timeout: Union[
@@ -1775,7 +1775,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._post_channels_pairing_approve_serialize(
_param = self._post_channel_pairing_approve_serialize(
approve_pairing_in=approve_pairing_in,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -1793,7 +1793,7 @@ class ChannelsApi:
return response_data.response
def _post_channels_pairing_approve_serialize(
def _post_channel_pairing_approve_serialize(
self,
approve_pairing_in,
_request_auth,
@@ -1854,7 +1854,7 @@ class ChannelsApi:
return self.api_client.param_serialize(
method='POST',
resource_path='/v1/channels/pairing/approve',
resource_path='/v1/channel/pairing/approve',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1871,7 +1871,7 @@ class ChannelsApi:
@validate_call
def put_channels_agent(
def put_channel_agent(
self,
channel_agents_put: ChannelAgentsPut,
_request_timeout: Union[
@@ -1889,7 +1889,7 @@ class ChannelsApi:
) -> ChannelAgents:
"""Binds agents to the caller org's channel and answers the bindings as GET would.
Binds agents to the caller org's channel and answers the bindings as GET would. It requires ORG ADMIN. The agent is named by its ref — the name an org gave it at POST /v1/agents, or a built-in such as dev, des or vi.
Binds agents to the caller org's channel and answers the bindings as GET would. It requires ORG ADMIN. The agent is named by its ref — the name an org gave it at POST /v1/agent, or a built-in such as dev, des or vi.
:param channel_agents_put: (required)
:type channel_agents_put: ChannelAgentsPut
@@ -1915,7 +1915,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._put_channels_agent_serialize(
_param = self._put_channel_agent_serialize(
channel_agents_put=channel_agents_put,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -1938,7 +1938,7 @@ class ChannelsApi:
@validate_call
def put_channels_agent_with_http_info(
def put_channel_agent_with_http_info(
self,
channel_agents_put: ChannelAgentsPut,
_request_timeout: Union[
@@ -1956,7 +1956,7 @@ class ChannelsApi:
) -> ApiResponse[ChannelAgents]:
"""Binds agents to the caller org's channel and answers the bindings as GET would.
Binds agents to the caller org's channel and answers the bindings as GET would. It requires ORG ADMIN. The agent is named by its ref — the name an org gave it at POST /v1/agents, or a built-in such as dev, des or vi.
Binds agents to the caller org's channel and answers the bindings as GET would. It requires ORG ADMIN. The agent is named by its ref — the name an org gave it at POST /v1/agent, or a built-in such as dev, des or vi.
:param channel_agents_put: (required)
:type channel_agents_put: ChannelAgentsPut
@@ -1982,7 +1982,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._put_channels_agent_serialize(
_param = self._put_channel_agent_serialize(
channel_agents_put=channel_agents_put,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -2005,7 +2005,7 @@ class ChannelsApi:
@validate_call
def put_channels_agent_without_preload_content(
def put_channel_agent_without_preload_content(
self,
channel_agents_put: ChannelAgentsPut,
_request_timeout: Union[
@@ -2023,7 +2023,7 @@ class ChannelsApi:
) -> RESTResponseType:
"""Binds agents to the caller org's channel and answers the bindings as GET would.
Binds agents to the caller org's channel and answers the bindings as GET would. It requires ORG ADMIN. The agent is named by its ref — the name an org gave it at POST /v1/agents, or a built-in such as dev, des or vi.
Binds agents to the caller org's channel and answers the bindings as GET would. It requires ORG ADMIN. The agent is named by its ref — the name an org gave it at POST /v1/agent, or a built-in such as dev, des or vi.
:param channel_agents_put: (required)
:type channel_agents_put: ChannelAgentsPut
@@ -2049,7 +2049,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._put_channels_agent_serialize(
_param = self._put_channel_agent_serialize(
channel_agents_put=channel_agents_put,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -2067,7 +2067,7 @@ class ChannelsApi:
return response_data.response
def _put_channels_agent_serialize(
def _put_channel_agent_serialize(
self,
channel_agents_put,
_request_auth,
@@ -2128,7 +2128,7 @@ class ChannelsApi:
return self.api_client.param_serialize(
method='PUT',
resource_path='/v1/channels/agent',
resource_path='/v1/channel/agent',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -2145,7 +2145,7 @@ class ChannelsApi:
@validate_call
def put_channels_allowlist(
def put_channel_allowlist(
self,
allowlist_put_in: AllowlistPutIn,
_request_timeout: Union[
@@ -2189,7 +2189,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._put_channels_allowlist_serialize(
_param = self._put_channel_allowlist_serialize(
allowlist_put_in=allowlist_put_in,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -2212,7 +2212,7 @@ class ChannelsApi:
@validate_call
def put_channels_allowlist_with_http_info(
def put_channel_allowlist_with_http_info(
self,
allowlist_put_in: AllowlistPutIn,
_request_timeout: Union[
@@ -2256,7 +2256,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._put_channels_allowlist_serialize(
_param = self._put_channel_allowlist_serialize(
allowlist_put_in=allowlist_put_in,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -2279,7 +2279,7 @@ class ChannelsApi:
@validate_call
def put_channels_allowlist_without_preload_content(
def put_channel_allowlist_without_preload_content(
self,
allowlist_put_in: AllowlistPutIn,
_request_timeout: Union[
@@ -2323,7 +2323,7 @@ class ChannelsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._put_channels_allowlist_serialize(
_param = self._put_channel_allowlist_serialize(
allowlist_put_in=allowlist_put_in,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -2341,7 +2341,7 @@ class ChannelsApi:
return response_data.response
def _put_channels_allowlist_serialize(
def _put_channel_allowlist_serialize(
self,
allowlist_put_in,
_request_auth,
@@ -2402,7 +2402,7 @@ class ChannelsApi:
return self.api_client.param_serialize(
method='PUT',
resource_path='/v1/channels/allowlist',
resource_path='/v1/channel/allowlist',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
File diff suppressed because it is too large Load Diff
@@ -31,7 +31,7 @@ from hanzoai.cloud.api_response import ApiResponse
from hanzoai.cloud.rest import RESTResponseType
class FlagsApi:
class FlagApi:
"""NOTE: This class is auto generated by OpenAPI Generator
Ref: https://openapi-generator.tech
@@ -45,7 +45,7 @@ class FlagsApi:
@validate_call
def delete_flags_defs_by_key(
def delete_flag_defs_by_key(
self,
key: Annotated[StrictStr, Field(description="Key is the flag key to act on, from the path.")],
_request_timeout: Union[
@@ -89,7 +89,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._delete_flags_defs_by_key_serialize(
_param = self._delete_flag_defs_by_key_serialize(
key=key,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -112,7 +112,7 @@ class FlagsApi:
@validate_call
def delete_flags_defs_by_key_with_http_info(
def delete_flag_defs_by_key_with_http_info(
self,
key: Annotated[StrictStr, Field(description="Key is the flag key to act on, from the path.")],
_request_timeout: Union[
@@ -156,7 +156,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._delete_flags_defs_by_key_serialize(
_param = self._delete_flag_defs_by_key_serialize(
key=key,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -179,7 +179,7 @@ class FlagsApi:
@validate_call
def delete_flags_defs_by_key_without_preload_content(
def delete_flag_defs_by_key_without_preload_content(
self,
key: Annotated[StrictStr, Field(description="Key is the flag key to act on, from the path.")],
_request_timeout: Union[
@@ -223,7 +223,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._delete_flags_defs_by_key_serialize(
_param = self._delete_flag_defs_by_key_serialize(
key=key,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -241,7 +241,7 @@ class FlagsApi:
return response_data.response
def _delete_flags_defs_by_key_serialize(
def _delete_flag_defs_by_key_serialize(
self,
key,
_request_auth,
@@ -289,7 +289,7 @@ class FlagsApi:
return self.api_client.param_serialize(
method='DELETE',
resource_path='/v1/flags/defs/{key}',
resource_path='/v1/flag/defs/{key}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -306,7 +306,7 @@ class FlagsApi:
@validate_call
def get_flags_activity(
def get_flag_activity(
self,
limit: Annotated[Optional[StrictInt], Field(description="Limit caps the rows returned. 1–500; anything else takes the default 100.")] = None,
_request_timeout: Union[
@@ -350,7 +350,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_flags_activity_serialize(
_param = self._get_flag_activity_serialize(
limit=limit,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -373,7 +373,7 @@ class FlagsApi:
@validate_call
def get_flags_activity_with_http_info(
def get_flag_activity_with_http_info(
self,
limit: Annotated[Optional[StrictInt], Field(description="Limit caps the rows returned. 1–500; anything else takes the default 100.")] = None,
_request_timeout: Union[
@@ -417,7 +417,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_flags_activity_serialize(
_param = self._get_flag_activity_serialize(
limit=limit,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -440,7 +440,7 @@ class FlagsApi:
@validate_call
def get_flags_activity_without_preload_content(
def get_flag_activity_without_preload_content(
self,
limit: Annotated[Optional[StrictInt], Field(description="Limit caps the rows returned. 1–500; anything else takes the default 100.")] = None,
_request_timeout: Union[
@@ -484,7 +484,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_flags_activity_serialize(
_param = self._get_flag_activity_serialize(
limit=limit,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -502,7 +502,7 @@ class FlagsApi:
return response_data.response
def _get_flags_activity_serialize(
def _get_flag_activity_serialize(
self,
limit,
_request_auth,
@@ -552,7 +552,7 @@ class FlagsApi:
return self.api_client.param_serialize(
method='GET',
resource_path='/v1/flags/activity',
resource_path='/v1/flag/activity',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -569,7 +569,7 @@ class FlagsApi:
@validate_call
def get_flags_defs(
def get_flag_defs(
self,
_request_timeout: Union[
None,
@@ -610,7 +610,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_flags_defs_serialize(
_param = self._get_flag_defs_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -632,7 +632,7 @@ class FlagsApi:
@validate_call
def get_flags_defs_with_http_info(
def get_flag_defs_with_http_info(
self,
_request_timeout: Union[
None,
@@ -673,7 +673,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_flags_defs_serialize(
_param = self._get_flag_defs_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -695,7 +695,7 @@ class FlagsApi:
@validate_call
def get_flags_defs_without_preload_content(
def get_flag_defs_without_preload_content(
self,
_request_timeout: Union[
None,
@@ -736,7 +736,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_flags_defs_serialize(
_param = self._get_flag_defs_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -753,7 +753,7 @@ class FlagsApi:
return response_data.response
def _get_flags_defs_serialize(
def _get_flag_defs_serialize(
self,
_request_auth,
_content_type,
@@ -798,7 +798,7 @@ class FlagsApi:
return self.api_client.param_serialize(
method='GET',
resource_path='/v1/flags/defs',
resource_path='/v1/flag/defs',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -815,7 +815,7 @@ class FlagsApi:
@validate_call
def get_flags_defs_by_key(
def get_flag_defs_by_key(
self,
key: Annotated[StrictStr, Field(description="Key is the flag key to act on, from the path.")],
_request_timeout: Union[
@@ -859,7 +859,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_flags_defs_by_key_serialize(
_param = self._get_flag_defs_by_key_serialize(
key=key,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -882,7 +882,7 @@ class FlagsApi:
@validate_call
def get_flags_defs_by_key_with_http_info(
def get_flag_defs_by_key_with_http_info(
self,
key: Annotated[StrictStr, Field(description="Key is the flag key to act on, from the path.")],
_request_timeout: Union[
@@ -926,7 +926,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_flags_defs_by_key_serialize(
_param = self._get_flag_defs_by_key_serialize(
key=key,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -949,7 +949,7 @@ class FlagsApi:
@validate_call
def get_flags_defs_by_key_without_preload_content(
def get_flag_defs_by_key_without_preload_content(
self,
key: Annotated[StrictStr, Field(description="Key is the flag key to act on, from the path.")],
_request_timeout: Union[
@@ -993,7 +993,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_flags_defs_by_key_serialize(
_param = self._get_flag_defs_by_key_serialize(
key=key,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -1011,7 +1011,7 @@ class FlagsApi:
return response_data.response
def _get_flags_defs_by_key_serialize(
def _get_flag_defs_by_key_serialize(
self,
key,
_request_auth,
@@ -1059,7 +1059,7 @@ class FlagsApi:
return self.api_client.param_serialize(
method='GET',
resource_path='/v1/flags/defs/{key}',
resource_path='/v1/flag/defs/{key}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1076,7 +1076,7 @@ class FlagsApi:
@validate_call
def get_flags_health(
def get_flag_health(
self,
_request_timeout: Union[
None,
@@ -1117,7 +1117,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_flags_health_serialize(
_param = self._get_flag_health_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -1139,7 +1139,7 @@ class FlagsApi:
@validate_call
def get_flags_health_with_http_info(
def get_flag_health_with_http_info(
self,
_request_timeout: Union[
None,
@@ -1180,7 +1180,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_flags_health_serialize(
_param = self._get_flag_health_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -1202,7 +1202,7 @@ class FlagsApi:
@validate_call
def get_flags_health_without_preload_content(
def get_flag_health_without_preload_content(
self,
_request_timeout: Union[
None,
@@ -1243,7 +1243,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_flags_health_serialize(
_param = self._get_flag_health_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -1260,7 +1260,7 @@ class FlagsApi:
return response_data.response
def _get_flags_health_serialize(
def _get_flag_health_serialize(
self,
_request_auth,
_content_type,
@@ -1305,7 +1305,7 @@ class FlagsApi:
return self.api_client.param_serialize(
method='GET',
resource_path='/v1/flags/health',
resource_path='/v1/flag/health',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1322,7 +1322,7 @@ class FlagsApi:
@validate_call
def post_flags(
def post_flag(
self,
evaluate_in: EvaluateIn,
_request_timeout: Union[
@@ -1366,7 +1366,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._post_flags_serialize(
_param = self._post_flag_serialize(
evaluate_in=evaluate_in,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -1389,7 +1389,7 @@ class FlagsApi:
@validate_call
def post_flags_with_http_info(
def post_flag_with_http_info(
self,
evaluate_in: EvaluateIn,
_request_timeout: Union[
@@ -1433,7 +1433,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._post_flags_serialize(
_param = self._post_flag_serialize(
evaluate_in=evaluate_in,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -1456,7 +1456,7 @@ class FlagsApi:
@validate_call
def post_flags_without_preload_content(
def post_flag_without_preload_content(
self,
evaluate_in: EvaluateIn,
_request_timeout: Union[
@@ -1500,7 +1500,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._post_flags_serialize(
_param = self._post_flag_serialize(
evaluate_in=evaluate_in,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -1518,7 +1518,7 @@ class FlagsApi:
return response_data.response
def _post_flags_serialize(
def _post_flag_serialize(
self,
evaluate_in,
_request_auth,
@@ -1579,7 +1579,7 @@ class FlagsApi:
return self.api_client.param_serialize(
method='POST',
resource_path='/v1/flags',
resource_path='/v1/flag',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1596,7 +1596,7 @@ class FlagsApi:
@validate_call
def post_flags_decide(
def post_flag_decide(
self,
evaluate_in: EvaluateIn,
_request_timeout: Union[
@@ -1640,7 +1640,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._post_flags_decide_serialize(
_param = self._post_flag_decide_serialize(
evaluate_in=evaluate_in,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -1663,7 +1663,7 @@ class FlagsApi:
@validate_call
def post_flags_decide_with_http_info(
def post_flag_decide_with_http_info(
self,
evaluate_in: EvaluateIn,
_request_timeout: Union[
@@ -1707,7 +1707,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._post_flags_decide_serialize(
_param = self._post_flag_decide_serialize(
evaluate_in=evaluate_in,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -1730,7 +1730,7 @@ class FlagsApi:
@validate_call
def post_flags_decide_without_preload_content(
def post_flag_decide_without_preload_content(
self,
evaluate_in: EvaluateIn,
_request_timeout: Union[
@@ -1774,7 +1774,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._post_flags_decide_serialize(
_param = self._post_flag_decide_serialize(
evaluate_in=evaluate_in,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -1792,7 +1792,7 @@ class FlagsApi:
return response_data.response
def _post_flags_decide_serialize(
def _post_flag_decide_serialize(
self,
evaluate_in,
_request_auth,
@@ -1853,7 +1853,7 @@ class FlagsApi:
return self.api_client.param_serialize(
method='POST',
resource_path='/v1/flags/decide',
resource_path='/v1/flag/decide',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1870,7 +1870,7 @@ class FlagsApi:
@validate_call
def put_flags_defs_by_key(
def put_flag_defs_by_key(
self,
key: Annotated[StrictStr, Field(description="Key is the flag key to write, from the path.")],
body: Optional[Any],
@@ -1917,7 +1917,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._put_flags_defs_by_key_serialize(
_param = self._put_flag_defs_by_key_serialize(
key=key,
body=body,
_request_auth=_request_auth,
@@ -1941,7 +1941,7 @@ class FlagsApi:
@validate_call
def put_flags_defs_by_key_with_http_info(
def put_flag_defs_by_key_with_http_info(
self,
key: Annotated[StrictStr, Field(description="Key is the flag key to write, from the path.")],
body: Optional[Any],
@@ -1988,7 +1988,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._put_flags_defs_by_key_serialize(
_param = self._put_flag_defs_by_key_serialize(
key=key,
body=body,
_request_auth=_request_auth,
@@ -2012,7 +2012,7 @@ class FlagsApi:
@validate_call
def put_flags_defs_by_key_without_preload_content(
def put_flag_defs_by_key_without_preload_content(
self,
key: Annotated[StrictStr, Field(description="Key is the flag key to write, from the path.")],
body: Optional[Any],
@@ -2059,7 +2059,7 @@ class FlagsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._put_flags_defs_by_key_serialize(
_param = self._put_flag_defs_by_key_serialize(
key=key,
body=body,
_request_auth=_request_auth,
@@ -2078,7 +2078,7 @@ class FlagsApi:
return response_data.response
def _put_flags_defs_by_key_serialize(
def _put_flag_defs_by_key_serialize(
self,
key,
body,
@@ -2142,7 +2142,7 @@ class FlagsApi:
return self.api_client.param_serialize(
method='PUT',
resource_path='/v1/flags/defs/{key}',
resource_path='/v1/flag/defs/{key}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -36,7 +36,7 @@ from hanzoai.cloud.api_response import ApiResponse
from hanzoai.cloud.rest import RESTResponseType
class FunctionsApi:
class FunctionApi:
"""NOTE: This class is auto generated by OpenAPI Generator
Ref: https://openapi-generator.tech
@@ -50,7 +50,7 @@ class FunctionsApi:
@validate_call
def delete_functions_by_name(
def delete_function_by_name(
self,
name: Annotated[StrictStr, Field(description="Name is the function the URL names.")],
_request_timeout: Union[
@@ -94,7 +94,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._delete_functions_by_name_serialize(
_param = self._delete_function_by_name_serialize(
name=name,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -117,7 +117,7 @@ class FunctionsApi:
@validate_call
def delete_functions_by_name_with_http_info(
def delete_function_by_name_with_http_info(
self,
name: Annotated[StrictStr, Field(description="Name is the function the URL names.")],
_request_timeout: Union[
@@ -161,7 +161,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._delete_functions_by_name_serialize(
_param = self._delete_function_by_name_serialize(
name=name,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -184,7 +184,7 @@ class FunctionsApi:
@validate_call
def delete_functions_by_name_without_preload_content(
def delete_function_by_name_without_preload_content(
self,
name: Annotated[StrictStr, Field(description="Name is the function the URL names.")],
_request_timeout: Union[
@@ -228,7 +228,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._delete_functions_by_name_serialize(
_param = self._delete_function_by_name_serialize(
name=name,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -246,7 +246,7 @@ class FunctionsApi:
return response_data.response
def _delete_functions_by_name_serialize(
def _delete_function_by_name_serialize(
self,
name,
_request_auth,
@@ -287,7 +287,7 @@ class FunctionsApi:
return self.api_client.param_serialize(
method='DELETE',
resource_path='/v1/functions/{name}',
resource_path='/v1/function/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -304,7 +304,7 @@ class FunctionsApi:
@validate_call
def get_functions(
def get_function(
self,
_request_timeout: Union[
None,
@@ -345,7 +345,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_serialize(
_param = self._get_function_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -367,7 +367,7 @@ class FunctionsApi:
@validate_call
def get_functions_with_http_info(
def get_function_with_http_info(
self,
_request_timeout: Union[
None,
@@ -408,7 +408,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_serialize(
_param = self._get_function_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -430,7 +430,7 @@ class FunctionsApi:
@validate_call
def get_functions_without_preload_content(
def get_function_without_preload_content(
self,
_request_timeout: Union[
None,
@@ -471,7 +471,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_serialize(
_param = self._get_function_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -488,7 +488,7 @@ class FunctionsApi:
return response_data.response
def _get_functions_serialize(
def _get_function_serialize(
self,
_request_auth,
_content_type,
@@ -533,7 +533,7 @@ class FunctionsApi:
return self.api_client.param_serialize(
method='GET',
resource_path='/v1/functions',
resource_path='/v1/function',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -550,7 +550,7 @@ class FunctionsApi:
@validate_call
def get_functions_by_name(
def get_function_by_name(
self,
name: Annotated[StrictStr, Field(description="Name is the function the URL names.")],
_request_timeout: Union[
@@ -594,7 +594,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_by_name_serialize(
_param = self._get_function_by_name_serialize(
name=name,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -617,7 +617,7 @@ class FunctionsApi:
@validate_call
def get_functions_by_name_with_http_info(
def get_function_by_name_with_http_info(
self,
name: Annotated[StrictStr, Field(description="Name is the function the URL names.")],
_request_timeout: Union[
@@ -661,7 +661,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_by_name_serialize(
_param = self._get_function_by_name_serialize(
name=name,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -684,7 +684,7 @@ class FunctionsApi:
@validate_call
def get_functions_by_name_without_preload_content(
def get_function_by_name_without_preload_content(
self,
name: Annotated[StrictStr, Field(description="Name is the function the URL names.")],
_request_timeout: Union[
@@ -728,7 +728,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_by_name_serialize(
_param = self._get_function_by_name_serialize(
name=name,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -746,7 +746,7 @@ class FunctionsApi:
return response_data.response
def _get_functions_by_name_serialize(
def _get_function_by_name_serialize(
self,
name,
_request_auth,
@@ -794,7 +794,7 @@ class FunctionsApi:
return self.api_client.param_serialize(
method='GET',
resource_path='/v1/functions/{name}',
resource_path='/v1/function/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -811,7 +811,7 @@ class FunctionsApi:
@validate_call
def get_functions_by_name_invocations(
def get_function_by_name_invocations(
self,
name: Annotated[StrictStr, Field(description="Name is the function the URL names.")],
limit: Annotated[Optional[StrictInt], Field(description="Limit caps the page, defaulting to 100.")] = None,
@@ -858,7 +858,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_by_name_invocations_serialize(
_param = self._get_function_by_name_invocations_serialize(
name=name,
limit=limit,
_request_auth=_request_auth,
@@ -882,7 +882,7 @@ class FunctionsApi:
@validate_call
def get_functions_by_name_invocations_with_http_info(
def get_function_by_name_invocations_with_http_info(
self,
name: Annotated[StrictStr, Field(description="Name is the function the URL names.")],
limit: Annotated[Optional[StrictInt], Field(description="Limit caps the page, defaulting to 100.")] = None,
@@ -929,7 +929,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_by_name_invocations_serialize(
_param = self._get_function_by_name_invocations_serialize(
name=name,
limit=limit,
_request_auth=_request_auth,
@@ -953,7 +953,7 @@ class FunctionsApi:
@validate_call
def get_functions_by_name_invocations_without_preload_content(
def get_function_by_name_invocations_without_preload_content(
self,
name: Annotated[StrictStr, Field(description="Name is the function the URL names.")],
limit: Annotated[Optional[StrictInt], Field(description="Limit caps the page, defaulting to 100.")] = None,
@@ -1000,7 +1000,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_by_name_invocations_serialize(
_param = self._get_function_by_name_invocations_serialize(
name=name,
limit=limit,
_request_auth=_request_auth,
@@ -1019,7 +1019,7 @@ class FunctionsApi:
return response_data.response
def _get_functions_by_name_invocations_serialize(
def _get_function_by_name_invocations_serialize(
self,
name,
limit,
@@ -1072,7 +1072,7 @@ class FunctionsApi:
return self.api_client.param_serialize(
method='GET',
resource_path='/v1/functions/{name}/invocations',
resource_path='/v1/function/{name}/invocations',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1089,7 +1089,7 @@ class FunctionsApi:
@validate_call
def get_functions_by_name_logs(
def get_function_by_name_logs(
self,
name: Annotated[StrictStr, Field(description="Name is the function the URL names.")],
_request_timeout: Union[
@@ -1133,7 +1133,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_by_name_logs_serialize(
_param = self._get_function_by_name_logs_serialize(
name=name,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -1156,7 +1156,7 @@ class FunctionsApi:
@validate_call
def get_functions_by_name_logs_with_http_info(
def get_function_by_name_logs_with_http_info(
self,
name: Annotated[StrictStr, Field(description="Name is the function the URL names.")],
_request_timeout: Union[
@@ -1200,7 +1200,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_by_name_logs_serialize(
_param = self._get_function_by_name_logs_serialize(
name=name,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -1223,7 +1223,7 @@ class FunctionsApi:
@validate_call
def get_functions_by_name_logs_without_preload_content(
def get_function_by_name_logs_without_preload_content(
self,
name: Annotated[StrictStr, Field(description="Name is the function the URL names.")],
_request_timeout: Union[
@@ -1267,7 +1267,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_by_name_logs_serialize(
_param = self._get_function_by_name_logs_serialize(
name=name,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -1285,7 +1285,7 @@ class FunctionsApi:
return response_data.response
def _get_functions_by_name_logs_serialize(
def _get_function_by_name_logs_serialize(
self,
name,
_request_auth,
@@ -1333,7 +1333,7 @@ class FunctionsApi:
return self.api_client.param_serialize(
method='GET',
resource_path='/v1/functions/{name}/logs',
resource_path='/v1/function/{name}/logs',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1350,7 +1350,7 @@ class FunctionsApi:
@validate_call
def get_functions_deployments(
def get_function_deployments(
self,
_request_timeout: Union[
None,
@@ -1391,7 +1391,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_deployments_serialize(
_param = self._get_function_deployments_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -1413,7 +1413,7 @@ class FunctionsApi:
@validate_call
def get_functions_deployments_with_http_info(
def get_function_deployments_with_http_info(
self,
_request_timeout: Union[
None,
@@ -1454,7 +1454,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_deployments_serialize(
_param = self._get_function_deployments_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -1476,7 +1476,7 @@ class FunctionsApi:
@validate_call
def get_functions_deployments_without_preload_content(
def get_function_deployments_without_preload_content(
self,
_request_timeout: Union[
None,
@@ -1517,7 +1517,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_deployments_serialize(
_param = self._get_function_deployments_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -1534,7 +1534,7 @@ class FunctionsApi:
return response_data.response
def _get_functions_deployments_serialize(
def _get_function_deployments_serialize(
self,
_request_auth,
_content_type,
@@ -1579,7 +1579,7 @@ class FunctionsApi:
return self.api_client.param_serialize(
method='GET',
resource_path='/v1/functions/deployments',
resource_path='/v1/function/deployments',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1596,7 +1596,7 @@ class FunctionsApi:
@validate_call
def get_functions_metrics(
def get_function_metrics(
self,
range: Annotated[Optional[StrictStr], Field(description="Range is 1H, 6H, 24H (the default), 7D or 30D. Anything else falls back to 24H rather than failing.")] = None,
_request_timeout: Union[
@@ -1640,7 +1640,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_metrics_serialize(
_param = self._get_function_metrics_serialize(
range=range,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -1663,7 +1663,7 @@ class FunctionsApi:
@validate_call
def get_functions_metrics_with_http_info(
def get_function_metrics_with_http_info(
self,
range: Annotated[Optional[StrictStr], Field(description="Range is 1H, 6H, 24H (the default), 7D or 30D. Anything else falls back to 24H rather than failing.")] = None,
_request_timeout: Union[
@@ -1707,7 +1707,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_metrics_serialize(
_param = self._get_function_metrics_serialize(
range=range,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -1730,7 +1730,7 @@ class FunctionsApi:
@validate_call
def get_functions_metrics_without_preload_content(
def get_function_metrics_without_preload_content(
self,
range: Annotated[Optional[StrictStr], Field(description="Range is 1H, 6H, 24H (the default), 7D or 30D. Anything else falls back to 24H rather than failing.")] = None,
_request_timeout: Union[
@@ -1774,7 +1774,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_metrics_serialize(
_param = self._get_function_metrics_serialize(
range=range,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -1792,7 +1792,7 @@ class FunctionsApi:
return response_data.response
def _get_functions_metrics_serialize(
def _get_function_metrics_serialize(
self,
range,
_request_auth,
@@ -1842,7 +1842,7 @@ class FunctionsApi:
return self.api_client.param_serialize(
method='GET',
resource_path='/v1/functions/metrics',
resource_path='/v1/function/metrics',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1859,7 +1859,7 @@ class FunctionsApi:
@validate_call
def get_functions_secrets(
def get_function_secrets(
self,
_request_timeout: Union[
None,
@@ -1900,7 +1900,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_secrets_serialize(
_param = self._get_function_secrets_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -1922,7 +1922,7 @@ class FunctionsApi:
@validate_call
def get_functions_secrets_with_http_info(
def get_function_secrets_with_http_info(
self,
_request_timeout: Union[
None,
@@ -1963,7 +1963,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_secrets_serialize(
_param = self._get_function_secrets_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -1985,7 +1985,7 @@ class FunctionsApi:
@validate_call
def get_functions_secrets_without_preload_content(
def get_function_secrets_without_preload_content(
self,
_request_timeout: Union[
None,
@@ -2026,7 +2026,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_secrets_serialize(
_param = self._get_function_secrets_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -2043,7 +2043,7 @@ class FunctionsApi:
return response_data.response
def _get_functions_secrets_serialize(
def _get_function_secrets_serialize(
self,
_request_auth,
_content_type,
@@ -2088,7 +2088,7 @@ class FunctionsApi:
return self.api_client.param_serialize(
method='GET',
resource_path='/v1/functions/secrets',
resource_path='/v1/function/secrets',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -2105,7 +2105,7 @@ class FunctionsApi:
@validate_call
def get_functions_triggers(
def get_function_triggers(
self,
_request_timeout: Union[
None,
@@ -2146,7 +2146,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_triggers_serialize(
_param = self._get_function_triggers_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -2168,7 +2168,7 @@ class FunctionsApi:
@validate_call
def get_functions_triggers_with_http_info(
def get_function_triggers_with_http_info(
self,
_request_timeout: Union[
None,
@@ -2209,7 +2209,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_triggers_serialize(
_param = self._get_function_triggers_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -2231,7 +2231,7 @@ class FunctionsApi:
@validate_call
def get_functions_triggers_without_preload_content(
def get_function_triggers_without_preload_content(
self,
_request_timeout: Union[
None,
@@ -2272,7 +2272,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._get_functions_triggers_serialize(
_param = self._get_function_triggers_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -2289,7 +2289,7 @@ class FunctionsApi:
return response_data.response
def _get_functions_triggers_serialize(
def _get_function_triggers_serialize(
self,
_request_auth,
_content_type,
@@ -2334,7 +2334,7 @@ class FunctionsApi:
return self.api_client.param_serialize(
method='GET',
resource_path='/v1/functions/triggers',
resource_path='/v1/function/triggers',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -2351,7 +2351,7 @@ class FunctionsApi:
@validate_call
def post_functions(
def post_function(
self,
definition: Definition,
_request_timeout: Union[
@@ -2395,7 +2395,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._post_functions_serialize(
_param = self._post_function_serialize(
definition=definition,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -2418,7 +2418,7 @@ class FunctionsApi:
@validate_call
def post_functions_with_http_info(
def post_function_with_http_info(
self,
definition: Definition,
_request_timeout: Union[
@@ -2462,7 +2462,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._post_functions_serialize(
_param = self._post_function_serialize(
definition=definition,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -2485,7 +2485,7 @@ class FunctionsApi:
@validate_call
def post_functions_without_preload_content(
def post_function_without_preload_content(
self,
definition: Definition,
_request_timeout: Union[
@@ -2529,7 +2529,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._post_functions_serialize(
_param = self._post_function_serialize(
definition=definition,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -2547,7 +2547,7 @@ class FunctionsApi:
return response_data.response
def _post_functions_serialize(
def _post_function_serialize(
self,
definition,
_request_auth,
@@ -2608,7 +2608,7 @@ class FunctionsApi:
return self.api_client.param_serialize(
method='POST',
resource_path='/v1/functions',
resource_path='/v1/function',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -2625,7 +2625,7 @@ class FunctionsApi:
@validate_call
def post_functions_by_name_invoke(
def post_function_by_name_invoke(
self,
name: StrictStr,
invoke_req: InvokeReq,
@@ -2672,7 +2672,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._post_functions_by_name_invoke_serialize(
_param = self._post_function_by_name_invoke_serialize(
name=name,
invoke_req=invoke_req,
_request_auth=_request_auth,
@@ -2698,7 +2698,7 @@ class FunctionsApi:
@validate_call
def post_functions_by_name_invoke_with_http_info(
def post_function_by_name_invoke_with_http_info(
self,
name: StrictStr,
invoke_req: InvokeReq,
@@ -2745,7 +2745,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._post_functions_by_name_invoke_serialize(
_param = self._post_function_by_name_invoke_serialize(
name=name,
invoke_req=invoke_req,
_request_auth=_request_auth,
@@ -2771,7 +2771,7 @@ class FunctionsApi:
@validate_call
def post_functions_by_name_invoke_without_preload_content(
def post_function_by_name_invoke_without_preload_content(
self,
name: StrictStr,
invoke_req: InvokeReq,
@@ -2818,7 +2818,7 @@ class FunctionsApi:
:return: Returns the result object.
""" # noqa: E501
_param = self._post_functions_by_name_invoke_serialize(
_param = self._post_function_by_name_invoke_serialize(
name=name,
invoke_req=invoke_req,
_request_auth=_request_auth,
@@ -2839,7 +2839,7 @@ class FunctionsApi:
return response_data.response
def _post_functions_by_name_invoke_serialize(
def _post_function_by_name_invoke_serialize(
self,
name,
invoke_req,
@@ -2903,7 +2903,7 @@ class FunctionsApi:
return self.api_client.param_serialize(
method='POST',
resource_path='/v1/functions/{name}/invoke',
resource_path='/v1/function/{name}/invoke',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
+6 -6
View File
@@ -10546,9 +10546,9 @@ class GitApi:
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> None:
"""Retired — forge pushes build via platform.hanzo.ai
"""Retired — push-to-deploy has no inbound webhook
GONE (410). Push-to-deploy belongs to POST https://platform.hanzo.ai/v1/git-webhook, which owns the build system-of-record and dispatches BuildKit Jobs. git.hanzo.ai delivers there through ONE forge-wide system webhook covering every repository; a repo opts in by committing hanzo.yml, not by owning a hook of its own. Every delivery answers 410 whatever it carries — this endpoint reads no body and authenticates nothing. 410 rather than 404, because the address was real and its meaning moved, which is the distinction 410 carries. A 404 from this estate is ambiguous: Hanzo Git serves /v1, so /api/v1 404s too and reads as \"the API is switched off\". A retired endpoint says it is retired and names its replacement, so the answer carries its own fix.
GONE (410). Push-to-deploy is not triggered by an inbound webhook. A push into this host's own git server fires the builder in-process, and a repository whose canonical home is GitHub is delivered by the Hanzo Platform GitHub App to POST /v1/integration/github/webhook. The forge does not report a push over HTTP. Every delivery answers 410 whatever it carries — this endpoint reads no body and authenticates nothing. 410 rather than 404, because the address was real and its meaning moved, which is the distinction 410 carries. A 404 from this estate is ambiguous: Hanzo Git serves /v1, so /api/v1 404s too and reads as \"the API is switched off\". A retired endpoint says it is retired and names its replacement, so the answer carries its own fix.
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
@@ -10608,9 +10608,9 @@ class GitApi:
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> ApiResponse[None]:
"""Retired — forge pushes build via platform.hanzo.ai
"""Retired — push-to-deploy has no inbound webhook
GONE (410). Push-to-deploy belongs to POST https://platform.hanzo.ai/v1/git-webhook, which owns the build system-of-record and dispatches BuildKit Jobs. git.hanzo.ai delivers there through ONE forge-wide system webhook covering every repository; a repo opts in by committing hanzo.yml, not by owning a hook of its own. Every delivery answers 410 whatever it carries — this endpoint reads no body and authenticates nothing. 410 rather than 404, because the address was real and its meaning moved, which is the distinction 410 carries. A 404 from this estate is ambiguous: Hanzo Git serves /v1, so /api/v1 404s too and reads as \"the API is switched off\". A retired endpoint says it is retired and names its replacement, so the answer carries its own fix.
GONE (410). Push-to-deploy is not triggered by an inbound webhook. A push into this host's own git server fires the builder in-process, and a repository whose canonical home is GitHub is delivered by the Hanzo Platform GitHub App to POST /v1/integration/github/webhook. The forge does not report a push over HTTP. Every delivery answers 410 whatever it carries — this endpoint reads no body and authenticates nothing. 410 rather than 404, because the address was real and its meaning moved, which is the distinction 410 carries. A 404 from this estate is ambiguous: Hanzo Git serves /v1, so /api/v1 404s too and reads as \"the API is switched off\". A retired endpoint says it is retired and names its replacement, so the answer carries its own fix.
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
@@ -10670,9 +10670,9 @@ class GitApi:
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
"""Retired — forge pushes build via platform.hanzo.ai
"""Retired — push-to-deploy has no inbound webhook
GONE (410). Push-to-deploy belongs to POST https://platform.hanzo.ai/v1/git-webhook, which owns the build system-of-record and dispatches BuildKit Jobs. git.hanzo.ai delivers there through ONE forge-wide system webhook covering every repository; a repo opts in by committing hanzo.yml, not by owning a hook of its own. Every delivery answers 410 whatever it carries — this endpoint reads no body and authenticates nothing. 410 rather than 404, because the address was real and its meaning moved, which is the distinction 410 carries. A 404 from this estate is ambiguous: Hanzo Git serves /v1, so /api/v1 404s too and reads as \"the API is switched off\". A retired endpoint says it is retired and names its replacement, so the answer carries its own fix.
GONE (410). Push-to-deploy is not triggered by an inbound webhook. A push into this host's own git server fires the builder in-process, and a repository whose canonical home is GitHub is delivered by the Hanzo Platform GitHub App to POST /v1/integration/github/webhook. The forge does not report a push over HTTP. Every delivery answers 410 whatever it carries — this endpoint reads no body and authenticates nothing. 410 rather than 404, because the address was real and its meaning moved, which is the distinction 410 carries. A 404 from this estate is ambiguous: Hanzo Git serves /v1, so /api/v1 404s too and reads as \"the API is switched off\". A retired endpoint says it is retired and names its replacement, so the answer carries its own fix.
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
File diff suppressed because it is too large Load Diff
-276
View File
@@ -38,7 +38,6 @@ from hanzoai.cloud.models.preview_req import PreviewReq
from hanzoai.cloud.models.preview_view import PreviewView
from hanzoai.cloud.models.project_view import ProjectView
from hanzoai.cloud.models.promote_req import PromoteReq
from hanzoai.cloud.models.push import Push
from hanzoai.cloud.models.readiness import Readiness
from hanzoai.cloud.models.release_board import ReleaseBoard
from hanzoai.cloud.models.restart_ref import RestartRef
@@ -49,7 +48,6 @@ from hanzoai.cloud.models.run_view import RunView
from hanzoai.cloud.models.runner_build_req import RunnerBuildReq
from hanzoai.cloud.models.runner_build_resp import RunnerBuildResp
from hanzoai.cloud.models.set_env_req import SetEnvReq
from hanzoai.cloud.models.verdict import Verdict
from hanzoai.cloud.api_client import ApiClient, RequestSerialized
from hanzoai.cloud.api_response import ApiResponse
@@ -6451,280 +6449,6 @@ class PlatformApi:
@validate_call
def post_platform_hook(
self,
push: Optional[Push] = None,
_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,
) -> Verdict:
"""Receive a push from the forge and trigger its build
The forge's push-to-deploy endpoint. git.hanzo.ai runs as a separate server, so its pushes never reach this fleet's own receive-pack; without this a push to the host we call canonical builds nothing. A verified push is handed to the SAME two clients a native push travels — the single-registrant deploy trigger, and the many-subscriber lifecycle stream that notifies and indexes — and the build decision itself stays downstream in the one place that knows what a push means. PUBLIC at the JWT layer, because the forge carries no Hanzo session: AUTHENTICATION IS THE SIGNATURE. The HMAC covers the raw bytes and is verified BEFORE the payload is parsed, so an unauthenticated body is never decoded. The secret is read from KMS; a deployment that cannot read it answers 503 and processes nothing, rather than trusting a delivery it could not check. The body is read UNCOMPRESSED — a request declaring a Content-Encoding is refused 415 before it is touched, because decoding one is unbounded work bought with a few bytes and no credential. A bad signature is 401, a payload over 8 MiB is 413, and a malformed one 400. A verified push that reaches both clients answers 200 with fired true and the NUMBER OF BUILDS it launched — zero is ordinary, since most pushes track no application, and it is the answer 'fired' cannot give. A push that could not be dispatched answers 500: the delivery page shows it red, and the Replay that prompts reaches a fresh attempt rather than being declined as already landed. The deliveries deliberately ignored answer 200 with a reason and nothing else: a payload that is not a push, a ref DELETE (a zero `after` has no commit to build), a BOT-authored push (release automation pushes as the forge's own Actions user, and a release must never rebuild itself), a push from a forge namespace that maps to no org, and a redelivery of a push already fired. Branches and tags both reach the build trigger, because releases are cut by tag and filtering here would silently stop publishing.
:param push:
:type push: Push
: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_platform_hook_serialize(
push=push,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index
)
_response_types_map: Dict[str, Optional[str]] = {
'2XX': "Verdict",
}
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_platform_hook_with_http_info(
self,
push: Optional[Push] = None,
_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[Verdict]:
"""Receive a push from the forge and trigger its build
The forge's push-to-deploy endpoint. git.hanzo.ai runs as a separate server, so its pushes never reach this fleet's own receive-pack; without this a push to the host we call canonical builds nothing. A verified push is handed to the SAME two clients a native push travels — the single-registrant deploy trigger, and the many-subscriber lifecycle stream that notifies and indexes — and the build decision itself stays downstream in the one place that knows what a push means. PUBLIC at the JWT layer, because the forge carries no Hanzo session: AUTHENTICATION IS THE SIGNATURE. The HMAC covers the raw bytes and is verified BEFORE the payload is parsed, so an unauthenticated body is never decoded. The secret is read from KMS; a deployment that cannot read it answers 503 and processes nothing, rather than trusting a delivery it could not check. The body is read UNCOMPRESSED — a request declaring a Content-Encoding is refused 415 before it is touched, because decoding one is unbounded work bought with a few bytes and no credential. A bad signature is 401, a payload over 8 MiB is 413, and a malformed one 400. A verified push that reaches both clients answers 200 with fired true and the NUMBER OF BUILDS it launched — zero is ordinary, since most pushes track no application, and it is the answer 'fired' cannot give. A push that could not be dispatched answers 500: the delivery page shows it red, and the Replay that prompts reaches a fresh attempt rather than being declined as already landed. The deliveries deliberately ignored answer 200 with a reason and nothing else: a payload that is not a push, a ref DELETE (a zero `after` has no commit to build), a BOT-authored push (release automation pushes as the forge's own Actions user, and a release must never rebuild itself), a push from a forge namespace that maps to no org, and a redelivery of a push already fired. Branches and tags both reach the build trigger, because releases are cut by tag and filtering here would silently stop publishing.
:param push:
:type push: Push
: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_platform_hook_serialize(
push=push,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index
)
_response_types_map: Dict[str, Optional[str]] = {
'2XX': "Verdict",
}
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_platform_hook_without_preload_content(
self,
push: Optional[Push] = None,
_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:
"""Receive a push from the forge and trigger its build
The forge's push-to-deploy endpoint. git.hanzo.ai runs as a separate server, so its pushes never reach this fleet's own receive-pack; without this a push to the host we call canonical builds nothing. A verified push is handed to the SAME two clients a native push travels — the single-registrant deploy trigger, and the many-subscriber lifecycle stream that notifies and indexes — and the build decision itself stays downstream in the one place that knows what a push means. PUBLIC at the JWT layer, because the forge carries no Hanzo session: AUTHENTICATION IS THE SIGNATURE. The HMAC covers the raw bytes and is verified BEFORE the payload is parsed, so an unauthenticated body is never decoded. The secret is read from KMS; a deployment that cannot read it answers 503 and processes nothing, rather than trusting a delivery it could not check. The body is read UNCOMPRESSED — a request declaring a Content-Encoding is refused 415 before it is touched, because decoding one is unbounded work bought with a few bytes and no credential. A bad signature is 401, a payload over 8 MiB is 413, and a malformed one 400. A verified push that reaches both clients answers 200 with fired true and the NUMBER OF BUILDS it launched — zero is ordinary, since most pushes track no application, and it is the answer 'fired' cannot give. A push that could not be dispatched answers 500: the delivery page shows it red, and the Replay that prompts reaches a fresh attempt rather than being declined as already landed. The deliveries deliberately ignored answer 200 with a reason and nothing else: a payload that is not a push, a ref DELETE (a zero `after` has no commit to build), a BOT-authored push (release automation pushes as the forge's own Actions user, and a release must never rebuild itself), a push from a forge namespace that maps to no org, and a redelivery of a push already fired. Branches and tags both reach the build trigger, because releases are cut by tag and filtering here would silently stop publishing.
:param push:
:type push: Push
: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_platform_hook_serialize(
push=push,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index
)
_response_types_map: Dict[str, Optional[str]] = {
'2XX': "Verdict",
}
response_data = self.api_client.call_api(
*_param,
_request_timeout=_request_timeout
)
return response_data.response
def _post_platform_hook_serialize(
self,
push,
_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
if push is not None:
_body_params = push
# 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] = [
'bearer'
]
return self.api_client.param_serialize(
method='POST',
resource_path='/v1/platform/hook',
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_platform_projects_by_project_apps(
self,
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -4291,7 +4291,7 @@ class SandboxApi:
) -> Ran:
"""Run a command in a sandbox you hold and read its output
Runs one command inside the caller's sandbox and answers its exit code, stdout and stderr. A non-zero exit is a successful call carrying a failed program, so it comes back as data and not as an error. Name a `session` and the command NARRATES INTO IT: its output is appended to that session's live log as the program produces it, so anything watching the session — GET /v1/agents/sessions/stream, scoped to one run with ?root= — watches the work happen rather than waiting for the verdict. Without it the call is what it always was: silent until it returns, which for an agentic run is twenty-five minutes of blank screen. The session is named; the TENANT is not. It is the org the caller already proved, so a session belonging to somebody else is absent from the org this call acts for and the append is refused there.
Runs one command inside the caller's sandbox and answers its exit code, stdout and stderr. A non-zero exit is a successful call carrying a failed program, so it comes back as data and not as an error. Name a `session` and the command NARRATES INTO IT: its output is appended to that session's live log as the program produces it, so anything watching the session — GET /v1/agent/sessions/stream, scoped to one run with ?root= — watches the work happen rather than waiting for the verdict. Without it the call is what it always was: silent until it returns, which for an agentic run is twenty-five minutes of blank screen. The session is named; the TENANT is not. It is the org the caller already proved, so a session belonging to somebody else is absent from the org this call acts for and the append is refused there.
:param run_in: (required)
:type run_in: RunIn
@@ -4358,7 +4358,7 @@ class SandboxApi:
) -> ApiResponse[Ran]:
"""Run a command in a sandbox you hold and read its output
Runs one command inside the caller's sandbox and answers its exit code, stdout and stderr. A non-zero exit is a successful call carrying a failed program, so it comes back as data and not as an error. Name a `session` and the command NARRATES INTO IT: its output is appended to that session's live log as the program produces it, so anything watching the session — GET /v1/agents/sessions/stream, scoped to one run with ?root= — watches the work happen rather than waiting for the verdict. Without it the call is what it always was: silent until it returns, which for an agentic run is twenty-five minutes of blank screen. The session is named; the TENANT is not. It is the org the caller already proved, so a session belonging to somebody else is absent from the org this call acts for and the append is refused there.
Runs one command inside the caller's sandbox and answers its exit code, stdout and stderr. A non-zero exit is a successful call carrying a failed program, so it comes back as data and not as an error. Name a `session` and the command NARRATES INTO IT: its output is appended to that session's live log as the program produces it, so anything watching the session — GET /v1/agent/sessions/stream, scoped to one run with ?root= — watches the work happen rather than waiting for the verdict. Without it the call is what it always was: silent until it returns, which for an agentic run is twenty-five minutes of blank screen. The session is named; the TENANT is not. It is the org the caller already proved, so a session belonging to somebody else is absent from the org this call acts for and the append is refused there.
:param run_in: (required)
:type run_in: RunIn
@@ -4425,7 +4425,7 @@ class SandboxApi:
) -> RESTResponseType:
"""Run a command in a sandbox you hold and read its output
Runs one command inside the caller's sandbox and answers its exit code, stdout and stderr. A non-zero exit is a successful call carrying a failed program, so it comes back as data and not as an error. Name a `session` and the command NARRATES INTO IT: its output is appended to that session's live log as the program produces it, so anything watching the session — GET /v1/agents/sessions/stream, scoped to one run with ?root= — watches the work happen rather than waiting for the verdict. Without it the call is what it always was: silent until it returns, which for an agentic run is twenty-five minutes of blank screen. The session is named; the TENANT is not. It is the org the caller already proved, so a session belonging to somebody else is absent from the org this call acts for and the append is refused there.
Runs one command inside the caller's sandbox and answers its exit code, stdout and stderr. A non-zero exit is a successful call carrying a failed program, so it comes back as data and not as an error. Name a `session` and the command NARRATES INTO IT: its output is appended to that session's live log as the program produces it, so anything watching the session — GET /v1/agent/sessions/stream, scoped to one run with ?root= — watches the work happen rather than waiting for the verdict. Without it the call is what it always was: silent until it returns, which for an agentic run is twenty-five minutes of blank screen. The session is named; the TENANT is not. It is the org the caller already proved, so a session belonging to somebody else is absent from the org this call acts for and the append is refused there.
:param run_in: (required)
:type run_in: RunIn
-494
View File
@@ -19,8 +19,6 @@ from typing_extensions import Annotated
from pydantic import Field, StrictBytes, StrictInt, StrictStr
from typing import List, Optional, Tuple, Union
from typing_extensions import Annotated
from hanzoai.cloud.models.bot_roster import BotRoster
from hanzoai.cloud.models.bot_sync import BotSync
from hanzoai.cloud.models.collab_request import CollabRequest
from hanzoai.cloud.models.collab_result import CollabResult
from hanzoai.cloud.models.cookie_ack import CookieAck
@@ -1826,252 +1824,6 @@ class TeamApi:
@validate_call
def get_team_bots(
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,
) -> BotRoster:
"""Returns the caller org's bot members — the org's agents projected as the space Employees they become, each with the member account uuid and Person reference the roster addresses it by.
Returns the caller org's bot members — the org's agents projected as the space Employees they become, each with the member account uuid and Person reference the roster addresses it by. An agents subsystem that is not mounted answers an empty list, never an error.
: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_team_bots_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index
)
_response_types_map: Dict[str, Optional[str]] = {
'200': "BotRoster",
}
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_team_bots_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[BotRoster]:
"""Returns the caller org's bot members — the org's agents projected as the space Employees they become, each with the member account uuid and Person reference the roster addresses it by.
Returns the caller org's bot members — the org's agents projected as the space Employees they become, each with the member account uuid and Person reference the roster addresses it by. An agents subsystem that is not mounted answers an empty list, never an error.
: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_team_bots_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index
)
_response_types_map: Dict[str, Optional[str]] = {
'200': "BotRoster",
}
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_team_bots_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 caller org's bot members — the org's agents projected as the space Employees they become, each with the member account uuid and Person reference the roster addresses it by.
Returns the caller org's bot members — the org's agents projected as the space Employees they become, each with the member account uuid and Person reference the roster addresses it by. An agents subsystem that is not mounted answers an empty list, never an error.
: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_team_bots_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index
)
_response_types_map: Dict[str, Optional[str]] = {
'200': "BotRoster",
}
response_data = self.api_client.call_api(
*_param,
_request_timeout=_request_timeout
)
return response_data.response
def _get_team_bots_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] = [
'bearer'
]
return self.api_client.param_serialize(
method='GET',
resource_path='/v1/team/bots',
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_team_collaborator(
self,
@@ -4155,252 +3907,6 @@ class TeamApi:
@validate_call
def post_team_bots_sync(
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,
) -> BotSync:
"""SyncBots re-projects the caller org's agents as space members into EVERY space of the org, and removes the ones whose agent is gone.
SyncBots re-projects the caller org's agents as space members into EVERY space of the org, and removes the ones whose agent is gone. It is idempotent, and admin only: mutating a space's roster requires the gateway-minted admin flag, which a client can never forge. It answers how many roster entries the reconcile touched.
: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_team_bots_sync_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index
)
_response_types_map: Dict[str, Optional[str]] = {
'200': "BotSync",
}
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_team_bots_sync_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[BotSync]:
"""SyncBots re-projects the caller org's agents as space members into EVERY space of the org, and removes the ones whose agent is gone.
SyncBots re-projects the caller org's agents as space members into EVERY space of the org, and removes the ones whose agent is gone. It is idempotent, and admin only: mutating a space's roster requires the gateway-minted admin flag, which a client can never forge. It answers how many roster entries the reconcile touched.
: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_team_bots_sync_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index
)
_response_types_map: Dict[str, Optional[str]] = {
'200': "BotSync",
}
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_team_bots_sync_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:
"""SyncBots re-projects the caller org's agents as space members into EVERY space of the org, and removes the ones whose agent is gone.
SyncBots re-projects the caller org's agents as space members into EVERY space of the org, and removes the ones whose agent is gone. It is idempotent, and admin only: mutating a space's roster requires the gateway-minted admin flag, which a client can never forge. It answers how many roster entries the reconcile touched.
: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_team_bots_sync_serialize(
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index
)
_response_types_map: Dict[str, Optional[str]] = {
'200': "BotSync",
}
response_data = self.api_client.call_api(
*_param,
_request_timeout=_request_timeout
)
return response_data.response
def _post_team_bots_sync_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] = [
'bearer'
]
return self.api_client.param_serialize(
method='POST',
resource_path='/v1/team/bots/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
)
@validate_call
def post_team_collaborator_rpc_by_documentid(
self,
File diff suppressed because it is too large Load Diff
+5 -5
View File
@@ -206,14 +206,12 @@ from hanzoai.cloud.models.board_scope import BoardScope
from hanzoai.cloud.models.board_totals import BoardTotals
from hanzoai.cloud.models.book_request import BookRequest
from hanzoai.cloud.models.book_response import BookResponse
from hanzoai.cloud.models.bot_list import BotList
from hanzoai.cloud.models.bot_member import BotMember
from hanzoai.cloud.models.bot_roster import BotRoster
from hanzoai.cloud.models.bot_run import BotRun
from hanzoai.cloud.models.bot_runs import BotRuns
from hanzoai.cloud.models.bot_stopped import BotStopped
from hanzoai.cloud.models.bot_sync import BotSync
from hanzoai.cloud.models.bot_view import BotView
from hanzoai.cloud.models.breakdown import Breakdown
from hanzoai.cloud.models.breakdown_row import BreakdownRow
from hanzoai.cloud.models.browser_tag_out import BrowserTagOut
@@ -625,6 +623,11 @@ from hanzoai.cloud.models.flow_trigger import FlowTrigger
from hanzoai.cloud.models.flow_update import FlowUpdate
from hanzoai.cloud.models.flow_version import FlowVersion
from hanzoai.cloud.models.fn_list import FnList
from hanzoai.cloud.models.forge_job import ForgeJob
from hanzoai.cloud.models.forge_job_repository import ForgeJobRepository
from hanzoai.cloud.models.forge_job_repository_owner import ForgeJobRepositoryOwner
from hanzoai.cloud.models.forge_job_workflow_job import ForgeJobWorkflowJob
from hanzoai.cloud.models.forge_launched import ForgeLaunched
from hanzoai.cloud.models.form import Form
from hanzoai.cloud.models.form_item import FormItem
from hanzoai.cloud.models.formation import Formation
@@ -2070,10 +2073,7 @@ from hanzoai.cloud.models.pull_view import PullView
from hanzoai.cloud.models.purge import Purge
from hanzoai.cloud.models.purge_in import PurgeIn
from hanzoai.cloud.models.purge_out import PurgeOut
from hanzoai.cloud.models.push import Push
from hanzoai.cloud.models.push_file import PushFile
from hanzoai.cloud.models.push_pusher import PushPusher
from hanzoai.cloud.models.push_repository import PushRepository
from hanzoai.cloud.models.push_req import PushReq
from hanzoai.cloud.models.push_resp import PushResp
from hanzoai.cloud.models.put_claims_in import PutClaimsIn
+1 -1
View File
@@ -26,7 +26,7 @@ class AgentBinding(BaseModel):
"""
AgentBinding
""" # noqa: E501
agent_name: Optional[StrictStr] = Field(default=None, description="AgentName is the cloud Agent (/v1/agents) this machine runs — the agent a message to the bot is actually run against. It is the one field that decides what the bot DOES.", alias="agentName")
agent_name: Optional[StrictStr] = Field(default=None, description="AgentName is the cloud Agent (/v1/agent) this machine runs — the agent a message to the bot is actually run against. It is the one field that decides what the bot DOES.", alias="agentName")
bot_version: Optional[StrictStr] = Field(default=None, description="BotVersion pins the @hanzo/bot runtime version the machine runs. Empty means the machine took the default in force when it was bound.", alias="botVersion")
created_time: Optional[StrictStr] = Field(default=None, description="CreatedTime is when the binding was first made.", alias="createdTime")
machine_id: Optional[StrictStr] = Field(default=None, description="MachineId is the bound machine as vm addresses it, owner-qualified (\"<org>/<machine>\"). The unqualified half is what this surface's :id routes take.", alias="machineId")
+2 -2
View File
@@ -27,11 +27,11 @@ class AllowlistView(BaseModel):
AllowlistView
""" # noqa: E501
access_groups: Optional[Dict[str, Dict[str, List[StrictStr]]]] = Field(default=None, description="AccessGroups is the org's named sender sets, as group name -> channel -> member entries, held once for the whole org. A DM or Group entry written `accessGroup:<name>` admits any sender listed under that name for THIS channel, or under the channel `*`, which is how one set covers every transport at once. Replaced wholesale by the PUT.", alias="accessGroups")
dm: Optional[List[StrictStr]] = Field(default=None, description="DM is the CONFIG-managed DM allow entries — the list PUT /v1/channels/allowlist owns and replaces wholesale. An entry matches a sender either EXACTLY, as the transport-native id inbox messages carry, or as `accessGroup:<name>` resolved through AccessGroups. A bare `*` admits everyone, but only while DMPolicy is \"open\": it is gate syntax, not an identity, so under \"allowlist\" it matches nobody.")
dm: Optional[List[StrictStr]] = Field(default=None, description="DM is the CONFIG-managed DM allow entries — the list PUT /v1/channel/allowlist owns and replaces wholesale. An entry matches a sender either EXACTLY, as the transport-native id inbox messages carry, or as `accessGroup:<name>` resolved through AccessGroups. A bare `*` admits everyone, but only while DMPolicy is \"open\": it is gate syntax, not an identity, so under \"allowlist\" it matches nobody.")
dm_policy: Optional[StrictStr] = Field(default=None, description="DMPolicy decides every inbound DIRECT message, defaulting to \"pairing\" when the org has never set one. \"pairing\": a sender with no entry is sent a pairing code and the message is DROPPED — it never reaches the inbox — and they are admitted only once an admin approves. \"allowlist\": only DM admits, and Paired senders are suspended, since a pairing grant counts under \"pairing\" alone. \"open\" is not unconditional either — it still requires `*` or a matching entry in DM.", alias="dmPolicy")
group: Optional[List[StrictStr]] = Field(default=None, description="Group is the CONFIG-managed group allow entries, consulted only while GroupPolicy is \"allowlist\". Entries match the same two ways as DM, and here a bare `*` admits every sender in the room.")
group_policy: Optional[StrictStr] = Field(default=None, description="GroupPolicy decides every inbound GROUP or THREAD message — a thread is a group surface — defaulting to \"open\". \"open\" admits every sender in the room. \"allowlist\" admits only what Group lists, so an EMPTY Group blocks the channel's group rooms outright. \"disabled\" drops all of them.", alias="groupPolicy")
paired: Optional[List[StrictStr]] = Field(default=None, description="Paired is the senders admitted by PAIRING — the entries POST /v1/channels/pairing/approve minted, DM scope only. READ-ONLY on this endpoint: the PUT writes config entries and can never revoke one of these (listing a paired sender under DM instead promotes that entry to config, which the admin then owns). They admit only while DMPolicy is \"pairing\".")
paired: Optional[List[StrictStr]] = Field(default=None, description="Paired is the senders admitted by PAIRING — the entries POST /v1/channel/pairing/approve minted, DM scope only. READ-ONLY on this endpoint: the PUT writes config entries and can never revoke one of these (listing a paired sender under DM instead promotes that entry to config, which the admin then owns). They admit only while DMPolicy is \"pairing\".")
__properties: ClassVar[List[str]] = ["accessGroups", "dm", "dmPolicy", "group", "groupPolicy", "paired"]
model_config = ConfigDict(
@@ -27,7 +27,7 @@ class ApprovePairingIn(BaseModel):
ApprovePairingIn
""" # noqa: E501
channel: Optional[StrictStr] = Field(default=None, description="Channel is the transport the request came in on: discord, slack, teams, telegram or whatsapp.")
code: Optional[StrictStr] = Field(default=None, description="Code is the pairing code from GET /v1/channels/pairing. It is a capability: holding it is what authorises the approval, alongside org admin.")
code: Optional[StrictStr] = Field(default=None, description="Code is the pairing code from GET /v1/channel/pairing. It is a capability: holding it is what authorises the approval, alongside org admin.")
__properties: ClassVar[List[str]] = ["channel", "code"]
model_config = ConfigDict(
+1 -1
View File
@@ -26,7 +26,7 @@ class BindAgentReq(BaseModel):
"""
BindAgentReq
""" # noqa: E501
agent_name: Optional[StrictStr] = Field(default=None, description="AgentName is the cloud Agent (/v1/agents) the machine will run. Required.", alias="agentName")
agent_name: Optional[StrictStr] = Field(default=None, description="AgentName is the cloud Agent (/v1/agent) the machine will run. Required.", alias="agentName")
bot_version: Optional[StrictStr] = Field(default=None, description="BotVersion pins the @hanzo/bot runtime version; empty takes the default.", alias="botVersion")
id: Optional[StrictStr] = Field(default=None, description="ID is the machine to bind, from the URL path.")
__properties: ClassVar[List[str]] = ["agentName", "botVersion", "id"]
+5 -5
View File
@@ -26,11 +26,11 @@ class BotMember(BaseModel):
"""
BotMember
""" # noqa: E501
active: Optional[StrictBool] = Field(default=None, description="Active is whether the agent projects as a LIVE space member, derived from its registry status: empty, \"active\" and \"ready\" are live, anything else (archived/retired) is not. An inactive bot drops out of the Team list while its past authorship survives.")
id: Optional[StrictStr] = Field(default=None, description="the agent id")
name: Optional[StrictStr] = Field(default=None, description="display name")
person_ref: Optional[StrictStr] = Field(default=None, description="the projected Person _id", alias="personRef")
user_id: Optional[StrictStr] = Field(default=None, description="derived member account uuid (personUuid)", alias="userId")
active: Optional[StrictBool] = Field(default=None, description="Active is whether the agent projects as a LIVE space member, derived from its registry status: empty, \"active\" and \"ready\" are live, anything else (archived/retired) is not. An inactive bot drops out of the roster while its past authorship survives.")
id: Optional[StrictStr] = Field(default=None, description="ID is the agent id.")
name: Optional[StrictStr] = Field(default=None, description="Name is the display name.")
person_ref: Optional[StrictStr] = Field(default=None, description="PersonRef is the projected Person _id.", alias="personRef")
user_id: Optional[StrictStr] = Field(default=None, description="UserID is the derived member account uuid (personUuid).", alias="userId")
__properties: ClassVar[List[str]] = ["active", "id", "name", "personRef", "userId"]
model_config = ConfigDict(
+1 -1
View File
@@ -27,7 +27,7 @@ class BotRoster(BaseModel):
"""
BotRoster
""" # noqa: E501
bots: Optional[List[BotMember]] = Field(default=None, description="Bots is every agent of the caller's org, projected as a space member.")
bots: Optional[List[BotMember]] = Field(default=None, description="Bots is one entry per bot, each carrying the member account uuid and the Person reference the space roster addresses it by. Empty means the org has no bots — not that the roster could not be read, which is an error.")
__properties: ClassVar[List[str]] = ["bots"]
model_config = ConfigDict(
-121
View File
@@ -1,121 +0,0 @@
# coding: utf-8
"""
Hanzo Cloud API
The Hanzo Cloud API as a customer calls it: every operation under /v1/ except the operator's admin product, relay routes, legacy spellings and capabilities still reached by flag. 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
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from hanzoai.cloud.models.agent_binding import AgentBinding
from typing import Optional, Set
from typing_extensions import Self
class BotView(BaseModel):
"""
BotView
""" # noqa: E501
agent: Optional[StrictStr] = Field(default=None, description="Agent is the cloud Agent this machine runs, lifted out of the binding so a list of bots reads without following one. Empty means the machine is a bot machine with nothing bound — it costs money and answers nothing.")
binding: Optional[AgentBinding] = Field(default=None, description="Binding is the record joining this machine to that agent, carrying vm's own reconciled status and its reason. Absent means no runtime is bound, which is also what a stopped bot looks like: stopping unbinds and leaves the machine running.")
created_time: Optional[StrictStr] = Field(default=None, alias="createdTime")
gpu: Optional[StrictStr] = None
id: Optional[StrictStr] = None
image: Optional[StrictStr] = None
mem: Optional[StrictStr] = None
name: Optional[StrictStr] = None
os: Optional[StrictStr] = None
private_ip: Optional[StrictStr] = Field(default=None, alias="privateIp")
provider: Optional[StrictStr] = None
public_ip: Optional[StrictStr] = Field(default=None, alias="publicIp")
region: Optional[StrictStr] = None
status: Optional[StrictStr] = None
type: Optional[StrictStr] = None
vcpu: Optional[StrictInt] = None
__properties: ClassVar[List[str]] = ["agent", "binding", "createdTime", "gpu", "id", "image", "mem", "name", "os", "privateIp", "provider", "publicIp", "region", "status", "type", "vcpu"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of BotView from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
# override the default output from pydantic by calling `to_dict()` of binding
if self.binding:
_dict['binding'] = self.binding.to_dict()
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of BotView from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"agent": obj.get("agent"),
"binding": AgentBinding.from_dict(obj["binding"]) if obj.get("binding") is not None else None,
"createdTime": obj.get("createdTime"),
"gpu": obj.get("gpu"),
"id": obj.get("id"),
"image": obj.get("image"),
"mem": obj.get("mem"),
"name": obj.get("name"),
"os": obj.get("os"),
"privateIp": obj.get("privateIp"),
"provider": obj.get("provider"),
"publicIp": obj.get("publicIp"),
"region": obj.get("region"),
"status": obj.get("status"),
"type": obj.get("type"),
"vcpu": obj.get("vcpu")
})
return _obj
+1 -1
View File
@@ -28,7 +28,7 @@ class ByoWorker(BaseModel):
"""
ByoWorker
""" # noqa: E501
arch: Optional[StrictStr] = Field(default=None, description="Arch/CPUs/Memory are the connecting host's static CPU spec, mirrored from the registration: Arch is runtime.GOARCH (amd64 | arm64), Memory is total RAM in BYTES — the same fields a code-linked run-target carries, so the /v1/visor/fleet board renders a linked node's arch + cores + RAM like any other unit.")
arch: Optional[StrictStr] = Field(default=None, description="Arch/CPUs/Memory are the connecting host's static CPU spec, mirrored from the registration: Arch is runtime.GOARCH (amd64 | arm64), Memory is total RAM in BYTES — the same fields a code-linked run-target carries, so the /v1/compute/fleet board renders a linked node's arch + cores + RAM like any other unit.")
capabilities: Optional[List[StrictStr]] = Field(default=None, description="Capabilities is what this worker offers the org: \"studio.render\" when the node can render, \"engine.serve\" when it serves a model endpoint. A node advertises one only once it can honour it, so an absent list means a node that has dialed in but is not ready to serve any of them yet.")
cpu_model: Optional[StrictStr] = Field(default=None, description="CPUModel is the processor as the host names it (\"Apple M3 Max\"), for display.", alias="cpuModel")
cpus: Optional[StrictInt] = Field(default=None, description="CPUs is the host's logical core count.")
+2 -2
View File
@@ -32,9 +32,9 @@ class ChannelView(BaseModel):
capabilities: Optional[Capabilities] = Field(default=None, description="Capabilities is what this transport renders natively — read it before composing a message that needs threading, media or interactive actions.")
connected: Optional[StrictBool] = Field(default=None, description="Connected is whether integrations holds a connection for (this org, this transport) — whether someone finished its connect flow. False leaves Account and AccountLabel empty, and a send is then refused downstream rather than here: by the transport's own binding check (403 for a Telegram chat this org has not bound, 409 for a Discord or Teams room with no inbound-learned route), or on Slack by the absent per-org bot token, which surfaces as 502.")
dm_policy: Optional[StrictStr] = Field(default=None, description="DMPolicy is how this org admits direct messages here: \"pairing\", \"allowlist\" or \"open\", defaulting to \"pairing\" when the org has never set one.", alias="dmPolicy")
group_policy: Optional[StrictStr] = Field(default=None, description="GroupPolicy is how this org admits group and thread rooms here: \"open\", \"allowlist\" or \"disabled\", defaulting to \"open\". Both policy fields come back EMPTY — rather than the listing failing — when the policy cannot be read; GET /v1/channels/allowlist carries the same two with the entries they consult.", alias="groupPolicy")
group_policy: Optional[StrictStr] = Field(default=None, description="GroupPolicy is how this org admits group and thread rooms here: \"open\", \"allowlist\" or \"disabled\", defaulting to \"open\". Both policy fields come back EMPTY — rather than the listing failing — when the policy cannot be read; GET /v1/channel/allowlist carries the same two with the entries they consult.", alias="groupPolicy")
id: Optional[StrictStr] = Field(default=None, description="ID is the fixed transport identifier — discord, slack, teams, telegram or whatsapp — and the value every route on this surface names a channel by, including the `:channel` segment of the send path. The listing is always in that order.")
pending_pairing: Optional[StrictInt] = Field(default=None, description="PendingPairing counts the org's UNEXPIRED pairing requests on this channel: exactly the rows GET /v1/channels/pairing returns for it, one per person waiting on an admin. It never exceeds three — the pending cap per (org, channel) — and expired requests are not counted.", alias="pendingPairing")
pending_pairing: Optional[StrictInt] = Field(default=None, description="PendingPairing counts the org's UNEXPIRED pairing requests on this channel: exactly the rows GET /v1/channel/pairing returns for it, one per person waiting on an admin. It never exceeds three — the pending cap per (org, channel) — and expired requests are not counted.", alias="pendingPairing")
__properties: ClassVar[List[str]] = ["account", "accountLabel", "capabilities", "connected", "dmPolicy", "groupPolicy", "id", "pendingPairing"]
model_config = ConfigDict(
+2 -2
View File
@@ -30,11 +30,11 @@ class ClusterView(BaseModel):
amd_gpu: Optional[StrictInt] = Field(default=None, description="AmdGPU is the same count for `amd.com/gpu`: AMD accelerators across the BYO cluster's nodes, as of the attach.", alias="amdGpu")
created_at: Optional[StrictStr] = Field(default=None, description="CreatedAt is when the cluster started existing: the earliest creation time among its pools for a managed cluster, and for a BYO one the RFC 3339 moment it was attached. Empty when the source states none.", alias="createdAt")
do_cluster_id: Optional[StrictStr] = Field(default=None, description="DoClusterID carries the SAME id as DoksClusterID. Both names exist because the console's Cluster type reads either one; neither is a second identifier.", alias="doClusterId")
doks_cluster_id: Optional[StrictStr] = Field(default=None, description="DoksClusterID is the provider's own id for the cluster, and the value the /v1/visor/k8s/clusters/:id routes take. Empty for a BYO cluster: an attached kubeconfig was never provisioned, so there is no provider id to state.", alias="doksClusterId")
doks_cluster_id: Optional[StrictStr] = Field(default=None, description="DoksClusterID is the provider's own id for the cluster, and the value the /v1/compute/k8s/clusters/:id routes take. Empty for a BYO cluster: an attached kubeconfig was never provisioned, so there is no provider id to state.", alias="doksClusterId")
kind: Optional[StrictStr] = Field(default=None, description="Kind says which of the two kinds of cluster this row is, and there are only two: \"managed\" — Visor provisioned it and Hanzo's account pays the provider — or \"byo\", an existing cluster the org attached by kubeconfig.")
name: Optional[StrictStr] = Field(default=None, description="Name is the cluster's name: the provider's for a managed cluster, and for a BYO one the lower-cased fleet name it was attached under — which is also how the detach route addresses it.")
node_count: Optional[StrictInt] = Field(default=None, description="NodeCount is how many worker nodes the cluster has — the sum over its pools for a managed cluster, and for a BYO one the node count read off the cluster when it was attached.", alias="nodeCount")
node_pools: Optional[List[NodePoolView]] = Field(default=None, description="NodePools is the authoritative node inventory — every pool, each with its own size and count. It is empty in two cases that are not \"no pools\": a row from the /v1/visor/k8s/clusters LIST, which is deliberately lightweight and whose :id detail carries them, and a BYO cluster, whose pools were never read.", alias="nodePools")
node_pools: Optional[List[NodePoolView]] = Field(default=None, description="NodePools is the authoritative node inventory — every pool, each with its own size and count. It is empty in two cases that are not \"no pools\": a row from the /v1/compute/k8s/clusters LIST, which is deliberately lightweight and whose :id detail carries them, and a BYO cluster, whose pools were never read.", alias="nodePools")
node_size: Optional[StrictStr] = Field(default=None, description="NodeSize is a display convenience: the size slug of the FIRST pool. A cluster mixing sizes has more than one, and NodePools is where they all are.", alias="nodeSize")
nvidia_gpu: Optional[StrictInt] = Field(default=None, description="NvidiaGPU is how many NVIDIA accelerators the cluster's nodes advertise, the sum of `nvidia.com/gpu` allocatable across them. BYO only, and counted ONCE when the cluster was attached — it is an inventory, not live capacity.", alias="nvidiaGpu")
region: Optional[StrictStr] = Field(default=None, description="Region is the provider region slug for a managed cluster. A BYO cluster has no region we can read, so it carries the free-form `provider` label the attach named it with (\"gke\", \"on-prem\") instead.")
@@ -24,7 +24,7 @@ from typing_extensions import Self
class CreateClusterReqNodePool(BaseModel):
"""
NodePool is the ONE pool the cluster is born with — a cluster with no nodes runs nothing, so it is not optional. More pools are added afterwards through POST /v1/visor/clusters/:clusterId/pools.
NodePool is the ONE pool the cluster is born with — a cluster with no nodes runs nothing, so it is not optional. More pools are added afterwards through POST /v1/compute/clusters/:clusterId/pools.
""" # noqa: E501
count: Optional[StrictInt] = None
name: Optional[StrictStr] = None
@@ -27,7 +27,7 @@ class CreateServerReq(BaseModel):
CreateServerReq
""" # noqa: E501
auth_header: Optional[StrictStr] = Field(default=None, description="AuthHeader is the request header the credential is injected into, e.g. \"Authorization\". Empty means the server needs no credential.", alias="authHeader")
listing: Optional[StrictStr] = Field(default=None, description="Listing enables a CATALOG entry instead — the id from GET /v1/tools/catalog. The endpoint is the listing's own streamable-http remote, so a listing that only ships a stdio package is refused: there is nothing to reach yet.")
listing: Optional[StrictStr] = Field(default=None, description="Listing enables a CATALOG entry instead — the id from GET /v1/tool/catalog. The endpoint is the listing's own streamable-http remote, so a listing that only ships a stdio package is refused: there is nothing to reach yet.")
name: Optional[StrictStr] = Field(default=None, description="Name labels the server for the org. Required with URL; with Listing it defaults to the listing's own title.")
secret: Optional[StrictStr] = Field(default=None, description="Secret is the credential VALUE. It is sealed into KMS under a per-org ref and never stored in SQLite, never listed, and never returned.")
url: Optional[StrictStr] = Field(default=None, description="URL is the server's JSON-RPC endpoint. It must be an http(s) URL naming a PUBLIC host: loopback, link-local, private and cloud-metadata addresses are refused here and again when the dialer connects.")
+1 -1
View File
@@ -35,7 +35,7 @@ class FleetUnit(BaseModel):
queued: Optional[StrictInt] = Field(default=None, description="Queued is how many renders are waiting on THIS GPU's own lane in the org's gpu-jobs queue. BYO units only — an agent run-target dispatches, it does not queue — and omitted when nothing is waiting.")
running: Optional[StrictInt] = Field(default=None, description="Running is what the unit is executing right now: agent sessions in flight for a run-target, claimed renders for a BYO GPU.")
sessions: Optional[StrictInt] = Field(default=None, description="Sessions is how many agent sessions are open on this unit. Always present, and 0 for a source that cannot host agent sessions at all — a fact about that plane, not a gap in the reading.")
source: Optional[StrictStr] = Field(default=None, description="Source is the plane this row came from: \"agent\" (a linked run-target), \"byo\" (a worker or cluster the org dialed in) or \"visor\" (a machine Hanzo provisioned). It is half the row's identity, and it says which face owns the unit — /v1/agents/targets, /v1/visor/fleet/workers, /v1/visor/machines.")
source: Optional[StrictStr] = Field(default=None, description="Source is the plane this row came from: \"agent\" (a linked run-target), \"byo\" (a worker or cluster the org dialed in) or \"visor\" (a machine Hanzo provisioned). It is half the row's identity, and it says which face owns the unit — /v1/agent/targets, /v1/compute/fleet/workers, /v1/compute/machines.")
spec: Optional[FleetSpec] = Field(default=None, description="Spec is the unit's static capability. Absent when the source reported none — unknown capability, never a zeroed one.")
status: Optional[StrictStr] = Field(default=None, description="Status is liveness in the SOURCE's own vocabulary, because each plane decides it differently: a run-target's is derived from its heartbeat, a BYO worker's is online/offline on the 90s window, a BYO cluster's is \"attached\", and a Visor machine's is the provider's word for its lifecycle state.")
unit: Optional[StrictStr] = Field(default=None, description="Unit is the SOURCE's own id for this unit — a run-target id, a BYO worker id, a Visor machine name — so a row links straight back to the face that owns it. It is unique within a source, not across them: two planes may mint the same id, which is why (source, unit) together is the identity.")
@@ -19,21 +19,19 @@ import json
from pydantic import BaseModel, ConfigDict, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from hanzoai.cloud.models.push_pusher import PushPusher
from hanzoai.cloud.models.push_repository import PushRepository
from hanzoai.cloud.models.forge_job_repository import ForgeJobRepository
from hanzoai.cloud.models.forge_job_workflow_job import ForgeJobWorkflowJob
from typing import Optional, Set
from typing_extensions import Self
class Push(BaseModel):
class ForgeJob(BaseModel):
"""
Push
ForgeJob
""" # noqa: E501
after: Optional[StrictStr] = None
before: Optional[StrictStr] = None
pusher: Optional[PushPusher] = None
ref: Optional[StrictStr] = None
repository: Optional[PushRepository] = None
__properties: ClassVar[List[str]] = ["after", "before", "pusher", "ref", "repository"]
action: Optional[StrictStr] = None
repository: Optional[ForgeJobRepository] = None
workflow_job: Optional[ForgeJobWorkflowJob] = None
__properties: ClassVar[List[str]] = ["action", "repository", "workflow_job"]
model_config = ConfigDict(
populate_by_name=True,
@@ -53,7 +51,7 @@ class Push(BaseModel):
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of Push from a JSON string"""
"""Create an instance of ForgeJob from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
@@ -74,17 +72,17 @@ class Push(BaseModel):
exclude=excluded_fields,
exclude_none=True,
)
# override the default output from pydantic by calling `to_dict()` of pusher
if self.pusher:
_dict['pusher'] = self.pusher.to_dict()
# override the default output from pydantic by calling `to_dict()` of repository
if self.repository:
_dict['repository'] = self.repository.to_dict()
# override the default output from pydantic by calling `to_dict()` of workflow_job
if self.workflow_job:
_dict['workflow_job'] = self.workflow_job.to_dict()
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of Push from a dict"""
"""Create an instance of ForgeJob from a dict"""
if obj is None:
return None
@@ -92,11 +90,9 @@ class Push(BaseModel):
return cls.model_validate(obj)
_obj = cls.model_validate({
"after": obj.get("after"),
"before": obj.get("before"),
"pusher": PushPusher.from_dict(obj["pusher"]) if obj.get("pusher") is not None else None,
"ref": obj.get("ref"),
"repository": PushRepository.from_dict(obj["repository"]) if obj.get("repository") is not None else None
"action": obj.get("action"),
"repository": ForgeJobRepository.from_dict(obj["repository"]) if obj.get("repository") is not None else None,
"workflow_job": ForgeJobWorkflowJob.from_dict(obj["workflow_job"]) if obj.get("workflow_job") is not None else None
})
return _obj
@@ -19,16 +19,16 @@ import json
from pydantic import BaseModel, ConfigDict, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from hanzoai.cloud.models.push_pusher import PushPusher
from hanzoai.cloud.models.forge_job_repository_owner import ForgeJobRepositoryOwner
from typing import Optional, Set
from typing_extensions import Self
class PushRepository(BaseModel):
class ForgeJobRepository(BaseModel):
"""
PushRepository
ForgeJobRepository
""" # noqa: E501
name: Optional[StrictStr] = None
owner: Optional[PushPusher] = None
owner: Optional[ForgeJobRepositoryOwner] = None
__properties: ClassVar[List[str]] = ["name", "owner"]
model_config = ConfigDict(
@@ -49,7 +49,7 @@ class PushRepository(BaseModel):
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of PushRepository from a JSON string"""
"""Create an instance of ForgeJobRepository from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
@@ -77,7 +77,7 @@ class PushRepository(BaseModel):
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of PushRepository from a dict"""
"""Create an instance of ForgeJobRepository from a dict"""
if obj is None:
return None
@@ -86,7 +86,7 @@ class PushRepository(BaseModel):
_obj = cls.model_validate({
"name": obj.get("name"),
"owner": PushPusher.from_dict(obj["owner"]) if obj.get("owner") is not None else None
"owner": ForgeJobRepositoryOwner.from_dict(obj["owner"]) if obj.get("owner") is not None else None
})
return _obj
@@ -22,9 +22,9 @@ from typing import Any, ClassVar, Dict, List, Optional
from typing import Optional, Set
from typing_extensions import Self
class PushPusher(BaseModel):
class ForgeJobRepositoryOwner(BaseModel):
"""
PushPusher
ForgeJobRepositoryOwner
""" # noqa: E501
login: Optional[StrictStr] = None
username: Optional[StrictStr] = None
@@ -48,7 +48,7 @@ class PushPusher(BaseModel):
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of PushPusher from a JSON string"""
"""Create an instance of ForgeJobRepositoryOwner from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
@@ -73,7 +73,7 @@ class PushPusher(BaseModel):
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of PushPusher from a dict"""
"""Create an instance of ForgeJobRepositoryOwner from a dict"""
if obj is None:
return None
@@ -17,18 +17,20 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field
from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from hanzoai.cloud.models.bot_view import BotView
from typing import Optional, Set
from typing_extensions import Self
class BotList(BaseModel):
class ForgeJobWorkflowJob(BaseModel):
"""
BotList
ForgeJobWorkflowJob
""" # noqa: E501
bots: Optional[List[BotView]] = Field(default=None, description="Bots is one row per kind=bot machine, each joined with its agent binding when it has one.")
__properties: ClassVar[List[str]] = ["bots"]
id: Optional[StrictInt] = None
labels: Optional[List[StrictStr]] = None
name: Optional[StrictStr] = None
run_id: Optional[StrictInt] = None
__properties: ClassVar[List[str]] = ["id", "labels", "name", "run_id"]
model_config = ConfigDict(
populate_by_name=True,
@@ -48,7 +50,7 @@ class BotList(BaseModel):
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of BotList from a JSON string"""
"""Create an instance of ForgeJobWorkflowJob from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
@@ -69,18 +71,11 @@ class BotList(BaseModel):
exclude=excluded_fields,
exclude_none=True,
)
# override the default output from pydantic by calling `to_dict()` of each item in bots (list)
_items = []
if self.bots:
for _item_bots in self.bots:
if _item_bots:
_items.append(_item_bots.to_dict())
_dict['bots'] = _items
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of BotList from a dict"""
"""Create an instance of ForgeJobWorkflowJob from a dict"""
if obj is None:
return None
@@ -88,7 +83,10 @@ class BotList(BaseModel):
return cls.model_validate(obj)
_obj = cls.model_validate({
"bots": [BotView.from_dict(_item) for _item in obj["bots"]] if obj.get("bots") is not None else None
"id": obj.get("id"),
"labels": obj.get("labels"),
"name": obj.get("name"),
"run_id": obj.get("run_id")
})
return _obj
@@ -0,0 +1,93 @@
# coding: utf-8
"""
Hanzo Cloud API
The Hanzo Cloud API as a customer calls it: every operation under /v1/ except the operator's admin product, relay routes, legacy spellings and capabilities still reached by flag. 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
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing import Optional, Set
from typing_extensions import Self
class ForgeLaunched(BaseModel):
"""
ForgeLaunched
""" # noqa: E501
job: Optional[StrictInt] = None
org: Optional[StrictStr] = None
repo: Optional[StrictStr] = None
runner: Optional[StrictStr] = None
__properties: ClassVar[List[str]] = ["job", "org", "repo", "runner"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of ForgeLaunched from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of ForgeLaunched from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"job": obj.get("job"),
"org": obj.get("org"),
"repo": obj.get("repo"),
"runner": obj.get("runner")
})
return _obj
+1 -1
View File
@@ -28,7 +28,7 @@ class GpuView(BaseModel):
""" # noqa: E501
id: Optional[StrictStr] = Field(default=None, description="ID is the card's address: its host machine's id, \"#\", and the card's ordinal within that machine (\"gpu-1#0\"). Stable for as long as the machine is, and the only id a single accelerator has — providers do not name cards.")
location: Optional[StrictStr] = Field(default=None, description="Location is where the card physically sits, which for every source today is the same value Region carries — the console renders it in its own column.")
machine: Optional[StrictStr] = Field(default=None, description="Machine is the id of the machine holding this card, addressable as-is on /v1/visor/machines/:id.")
machine: Optional[StrictStr] = Field(default=None, description="Machine is the id of the machine holding this card, addressable as-is on /v1/compute/machines/:id.")
memory: Optional[StrictStr] = Field(default=None, description="Memory is the card's VRAM as its own tooling reported it (\"122880 MiB\") — a display string in the reporter's units, not a byte count. BYO cards carry it (nvidia-smi); Visor's machine object states no VRAM, so a rented card leaves it empty and the console renders \"—\" rather than a fabricated 0.")
model: Optional[StrictStr] = Field(default=None, description="Model is the accelerator: the model token read out of the size slug for a Visor GPU droplet (\"H100\", \"MI300X\"), or the name nvidia-smi reported for a BYO card (\"NVIDIA GB10\").")
name: Optional[StrictStr] = Field(default=None, description="Name is the HOST MACHINE's display name, not the card's — every card in a gpu-h100x8 node repeats it. Model is what says which accelerator this is.")
+3 -3
View File
@@ -70,6 +70,7 @@ class IamUser(BaseModel):
created_time: Optional[StrictStr] = Field(default=None, alias="createdTime")
currency: Optional[StrictStr] = None
custom: Optional[StrictStr] = None
custom10: Optional[StrictStr] = None
custom2: Optional[StrictStr] = None
custom3: Optional[StrictStr] = None
custom4: Optional[StrictStr] = None
@@ -78,7 +79,6 @@ class IamUser(BaseModel):
custom7: Optional[StrictStr] = None
custom8: Optional[StrictStr] = None
custom9: Optional[StrictStr] = None
custom10: Optional[StrictStr] = None
dailymotion: Optional[StrictStr] = None
deezer: Optional[StrictStr] = None
deleted: Optional[StrictBool] = None
@@ -219,7 +219,7 @@ class IamUser(BaseModel):
yammer: Optional[StrictStr] = None
yandex: Optional[StrictStr] = None
zoom: Optional[StrictStr] = None
__properties: ClassVar[List[str]] = ["accessKey", "accessSecret", "accessSecretHash", "accessToken", "address", "addresses", "adfs", "affiliation", "alipay", "amazon", "apple", "applicationScopes", "auth0", "avatar", "avatarType", "azuread", "azureadb2c", "baidu", "balance", "balanceCredit", "balanceCurrency", "battlenet", "bilibili", "bio", "birthday", "bitbucket", "box", "cart", "cloudfoundry", "countryCode", "createdAt", "createdIp", "createdTime", "currency", "custom", "custom2", "custom3", "custom4", "custom5", "custom6", "custom7", "custom8", "custom9", "custom10", "dailymotion", "deezer", "deleted", "deletedTime", "digitalocean", "dingtalk", "discord", "displayName", "douyin", "dropbox", "education", "email", "emailVerified", "eveonline", "externalId", "faceIds", "facebook", "firstName", "fitbit", "gender", "gitea", "gitee", "github", "gitlab", "google", "hash", "heroku", "homepage", "iam", "id", "idCard", "idCardType", "influxcloud", "infoflow", "instagram", "intercom", "invitation", "invitationCode", "ipWhitelist", "isAdmin", "isDefaultAvatar", "isDeleted", "isForbidden", "isOnline", "isVerified", "kakao", "karma", "kwai", "language", "lark", "lastChangePasswordTime", "lastName", "lastSigninIp", "lastSigninTime", "lastSigninWrongTime", "lastfm", "ldap", "line", "linkedin", "location", "mailru", "managedAccounts", "meetup", "mfaAccounts", "mfaEmailEnabled", "mfaItems", "mfaPhoneEnabled", "mfaPushEnabled", "mfaPushProvider", "mfaPushReceiver", "mfaRadiusEnabled", "mfaRadiusProvider", "mfaRadiusUsername", "mfaRememberDeadline", "mfaRememberDigest", "microsoftonline", "multiFactorAuths", "name", "naver", "needUpdatePassword", "nextcloud", "okta", "onedrive", "originalRefreshToken", "originalToken", "oura", "owner", "passwordHash", "passwordSalt", "passwordType", "patreon", "paypal", "permanentAvatar", "phone", "preHash", "preferredMfaType", "properties", "qq", "ranking", "realName", "recoveryCodes", "region", "registerSource", "registerType", "salesforce", "score", "shopify", "signinWrongTimes", "signupApplication", "slack", "soundcloud", "spotify", "steam", "strava", "stripe", "tag", "telegram", "tiktok", "title", "totpSecret", "tumblr", "twitch", "twitter", "type", "typetalk", "uber", "updatedAt", "updatedTime", "verificationCode", "vk", "webauthnCredentials", "wechat", "wecom", "weibo", "wepay", "xero", "yahoo", "yammer", "yandex", "zoom"]
__properties: ClassVar[List[str]] = ["accessKey", "accessSecret", "accessSecretHash", "accessToken", "address", "addresses", "adfs", "affiliation", "alipay", "amazon", "apple", "applicationScopes", "auth0", "avatar", "avatarType", "azuread", "azureadb2c", "baidu", "balance", "balanceCredit", "balanceCurrency", "battlenet", "bilibili", "bio", "birthday", "bitbucket", "box", "cart", "cloudfoundry", "countryCode", "createdAt", "createdIp", "createdTime", "currency", "custom", "custom10", "custom2", "custom3", "custom4", "custom5", "custom6", "custom7", "custom8", "custom9", "dailymotion", "deezer", "deleted", "deletedTime", "digitalocean", "dingtalk", "discord", "displayName", "douyin", "dropbox", "education", "email", "emailVerified", "eveonline", "externalId", "faceIds", "facebook", "firstName", "fitbit", "gender", "gitea", "gitee", "github", "gitlab", "google", "hash", "heroku", "homepage", "iam", "id", "idCard", "idCardType", "influxcloud", "infoflow", "instagram", "intercom", "invitation", "invitationCode", "ipWhitelist", "isAdmin", "isDefaultAvatar", "isDeleted", "isForbidden", "isOnline", "isVerified", "kakao", "karma", "kwai", "language", "lark", "lastChangePasswordTime", "lastName", "lastSigninIp", "lastSigninTime", "lastSigninWrongTime", "lastfm", "ldap", "line", "linkedin", "location", "mailru", "managedAccounts", "meetup", "mfaAccounts", "mfaEmailEnabled", "mfaItems", "mfaPhoneEnabled", "mfaPushEnabled", "mfaPushProvider", "mfaPushReceiver", "mfaRadiusEnabled", "mfaRadiusProvider", "mfaRadiusUsername", "mfaRememberDeadline", "mfaRememberDigest", "microsoftonline", "multiFactorAuths", "name", "naver", "needUpdatePassword", "nextcloud", "okta", "onedrive", "originalRefreshToken", "originalToken", "oura", "owner", "passwordHash", "passwordSalt", "passwordType", "patreon", "paypal", "permanentAvatar", "phone", "preHash", "preferredMfaType", "properties", "qq", "ranking", "realName", "recoveryCodes", "region", "registerSource", "registerType", "salesforce", "score", "shopify", "signinWrongTimes", "signupApplication", "slack", "soundcloud", "spotify", "steam", "strava", "stripe", "tag", "telegram", "tiktok", "title", "totpSecret", "tumblr", "twitch", "twitter", "type", "typetalk", "uber", "updatedAt", "updatedTime", "verificationCode", "vk", "webauthnCredentials", "wechat", "wecom", "weibo", "wepay", "xero", "yahoo", "yammer", "yandex", "zoom"]
model_config = ConfigDict(
populate_by_name=True,
@@ -363,6 +363,7 @@ class IamUser(BaseModel):
"createdTime": obj.get("createdTime"),
"currency": obj.get("currency"),
"custom": obj.get("custom"),
"custom10": obj.get("custom10"),
"custom2": obj.get("custom2"),
"custom3": obj.get("custom3"),
"custom4": obj.get("custom4"),
@@ -371,7 +372,6 @@ class IamUser(BaseModel):
"custom7": obj.get("custom7"),
"custom8": obj.get("custom8"),
"custom9": obj.get("custom9"),
"custom10": obj.get("custom10"),
"dailymotion": obj.get("dailymotion"),
"deezer": obj.get("deezer"),
"deleted": obj.get("deleted"),
+12 -4
View File
@@ -19,6 +19,7 @@ import json
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from hanzoai.cloud.models.agent_binding import AgentBinding
from typing import Optional, Set
from typing_extensions import Self
@@ -26,11 +27,13 @@ class MachineView(BaseModel):
"""
MachineView
""" # noqa: E501
agent: Optional[StrictStr] = Field(default=None, description="Agent is the cloud Agent this machine runs, lifted out of the binding so a list reads without following one. Empty means nothing is bound — for a kind=bot machine that means it costs money and answers nothing.")
binding: Optional[AgentBinding] = Field(default=None, description="Binding is the record joining this machine to that agent, carrying vm's own reconciled status and its reason. Absent means no runtime is bound, which is also what a stopped bot looks like: stopping unbinds and leaves the machine running.")
created_time: Optional[StrictStr] = Field(default=None, description="CreatedTime is when the machine came into being: the provider's own creation timestamp for a Visor machine, passed through in whatever form it states it, and for a BYO machine the RFC 3339 moment it first dialed in.", alias="createdTime")
gpu: Optional[StrictStr] = Field(default=None, description="GPU names the accelerators this machine holds (\"H100\", or \"2× NVIDIA GB10\" for a BYO machine reporting a matched pair). Empty means the machine is not a GPU machine — the size slug does not parse as one, or nvidia-smi found nothing.")
id: Optional[StrictStr] = Field(default=None, description="ID addresses this machine on the /v1/visor/machines/:id routes: the org-scoped NAME Visor keys a machine by, falling back to the provider id for a machine that has no name. A BYO machine's is the id it dialed in under.")
id: Optional[StrictStr] = Field(default=None, description="ID addresses this machine on the /v1/compute/machines/:id routes: the org-scoped NAME Visor keys a machine by, falling back to the provider id for a machine that has no name. A BYO machine's is the id it dialed in under.")
image: Optional[StrictStr] = Field(default=None, description="Image is the OS image the machine booted from, as the provider names it.")
mem: Optional[StrictStr] = Field(default=None, description="Mem is system RAM rendered for a human (\"8 GB\"), not a number to compute with. Empty when the provider's figure is ambiguous, or when the only figure available is a GPU slug's gb — that is VRAM, and reporting it as system RAM would be a fabrication. A BYO machine's RAM is on /v1/visor/fleet/workers.")
mem: Optional[StrictStr] = Field(default=None, description="Mem is system RAM rendered for a human (\"8 GB\"), not a number to compute with. Empty when the provider's figure is ambiguous, or when the only figure available is a GPU slug's gb — that is VRAM, and reporting it as system RAM would be a fabrication. A BYO machine's RAM is on /v1/compute/fleet/workers.")
name: Optional[StrictStr] = Field(default=None, description="Name is the label to show a human — Visor's displayName, or the machine name when it carries none. A BYO machine's is its hostname. It is not an address: ID is what the routes take.")
os: Optional[StrictStr] = Field(default=None, description="Os is the operating system on the machine — Visor's record for a provisioned one, the host's own report (linux, darwin, windows) for a BYO one.")
private_ip: Optional[StrictStr] = Field(default=None, description="PrivateIp is the address on the provider's own network, reachable from the org's other machines in the same region. Empty on the same terms as PublicIp.", alias="privateIp")
@@ -39,8 +42,8 @@ class MachineView(BaseModel):
region: Optional[StrictStr] = Field(default=None, description="Region is the provider region slug (\"sfo3\"), or the zone when the provider reports only that. \"on-prem\" for a BYO machine, which has no cloud region.")
status: Optional[StrictStr] = Field(default=None, description="Status is the lifecycle state in the PROVIDER's own words (\"active\", \"running\", \"off\"), passed through rather than mapped onto a vocabulary of ours. A BYO machine's is \"online\" or \"offline\", decided by whether its last heartbeat is within 90s.")
type: Optional[StrictStr] = Field(default=None, description="Type is the provider SIZE SLUG the machine runs at (\"s-2vcpu-4gb\", \"gpu-h100x8-640gb\") — the value a launch asks for, and what Vcpu/Mem/GPU are read out of when the provider states them no other way. \"byo-gpu\" for a dialed-in machine, which was never bought from a size catalog.")
vcpu: Optional[StrictInt] = Field(default=None, description="Vcpu is logical cores — the provider's own cpuSize when that is a clean integer, else the count read out of the size slug (4 from \"s-4vcpu-8gb\"). ABSENT, never 0, when neither says. A BYO machine leaves it absent here; its real core count is on GET /v1/visor/fleet/workers.")
__properties: ClassVar[List[str]] = ["createdTime", "gpu", "id", "image", "mem", "name", "os", "privateIp", "provider", "publicIp", "region", "status", "type", "vcpu"]
vcpu: Optional[StrictInt] = Field(default=None, description="Vcpu is logical cores — the provider's own cpuSize when that is a clean integer, else the count read out of the size slug (4 from \"s-4vcpu-8gb\"). ABSENT, never 0, when neither says. A BYO machine leaves it absent here; its real core count is on GET /v1/compute/fleet/workers.")
__properties: ClassVar[List[str]] = ["agent", "binding", "createdTime", "gpu", "id", "image", "mem", "name", "os", "privateIp", "provider", "publicIp", "region", "status", "type", "vcpu"]
model_config = ConfigDict(
populate_by_name=True,
@@ -81,6 +84,9 @@ class MachineView(BaseModel):
exclude=excluded_fields,
exclude_none=True,
)
# override the default output from pydantic by calling `to_dict()` of binding
if self.binding:
_dict['binding'] = self.binding.to_dict()
return _dict
@classmethod
@@ -93,6 +99,8 @@ class MachineView(BaseModel):
return cls.model_validate(obj)
_obj = cls.model_validate({
"agent": obj.get("agent"),
"binding": AgentBinding.from_dict(obj["binding"]) if obj.get("binding") is not None else None,
"createdTime": obj.get("createdTime"),
"gpu": obj.get("gpu"),
"id": obj.get("id"),
+3 -3
View File
@@ -29,11 +29,11 @@ class Metrics(BaseModel):
at: Optional[StrictInt] = Field(default=None, description="unix seconds, server-stamped")
gpu_util: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="0..1 aggregate utilization", alias="gpuUtil")
load1: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Load1 is the machine's own one-minute load average — a count of runnable and uninterruptible tasks, NOT a percentage and NOT already divided by core count, so it is read against Spec.CPUs: 8.0 is idle on 16 cores and swamped on 4. Coerced finite and non-negative on write, so 0 means either genuinely idle or nothing reported.")
load5: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Load5 is the same figure averaged over five minutes.")
load15: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Load15 is the same figure over fifteen. The three together are what separate a machine that is busy right now from one that has been busy all along — which is the question a dispatcher is really asking.")
load5: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Load5 is the same figure averaged over five minutes.")
mem_free: Optional[StrictInt] = Field(default=None, description="bytes", alias="memFree")
mem_used: Optional[StrictInt] = Field(default=None, description="bytes", alias="memUsed")
__properties: ClassVar[List[str]] = ["at", "gpuUtil", "load1", "load5", "load15", "memFree", "memUsed"]
__properties: ClassVar[List[str]] = ["at", "gpuUtil", "load1", "load15", "load5", "memFree", "memUsed"]
model_config = ConfigDict(
populate_by_name=True,
@@ -89,8 +89,8 @@ class Metrics(BaseModel):
"at": obj.get("at"),
"gpuUtil": obj.get("gpuUtil"),
"load1": obj.get("load1"),
"load5": obj.get("load5"),
"load15": obj.get("load15"),
"load5": obj.get("load5"),
"memFree": obj.get("memFree"),
"memUsed": obj.get("memUsed")
})
@@ -30,14 +30,14 @@ class O11yGettableAgentCheckIn(BaseModel):
O11yGettableAgentCheckIn
""" # noqa: E501
account_id: Optional[StrictStr] = Field(default=None, description="Older fields for backward compatibility with existing AWS agents")
cloud_account_id: Optional[StrictStr] = None
cloud_integration_id: Optional[StrictStr] = Field(default=None, alias="cloudIntegrationId")
integration_config_legacy: Optional[O11yIntegrationConfig] = Field(default=None, alias="integration_config")
cloud_account_id: Optional[StrictStr] = None
integration_config: Optional[O11yProviderIntegrationConfig] = Field(default=None, alias="integrationConfig")
integration_config_legacy: Optional[O11yIntegrationConfig] = Field(default=None, alias="integration_config")
provider_account_id: Optional[StrictStr] = Field(default=None, alias="providerAccountId")
removed_at_legacy: Optional[datetime] = Field(default=None, alias="removed_at")
removed_at: Optional[datetime] = Field(default=None, alias="removedAt")
__properties: ClassVar[List[str]] = ["account_id", "cloud_account_id", "cloudIntegrationId", "integration_config", "integrationConfig", "providerAccountId", "removed_at", "removedAt"]
removed_at_legacy: Optional[datetime] = Field(default=None, alias="removed_at")
__properties: ClassVar[List[str]] = ["account_id", "cloudIntegrationId", "cloud_account_id", "integrationConfig", "integration_config", "providerAccountId", "removedAt", "removed_at"]
model_config = ConfigDict(
populate_by_name=True,
@@ -78,12 +78,12 @@ class O11yGettableAgentCheckIn(BaseModel):
exclude=excluded_fields,
exclude_none=True,
)
# override the default output from pydantic by calling `to_dict()` of integration_config_legacy
if self.integration_config_legacy:
_dict['integration_config'] = self.integration_config_legacy.to_dict()
# override the default output from pydantic by calling `to_dict()` of integration_config
if self.integration_config:
_dict['integrationConfig'] = self.integration_config.to_dict()
# override the default output from pydantic by calling `to_dict()` of integration_config_legacy
if self.integration_config_legacy:
_dict['integration_config'] = self.integration_config_legacy.to_dict()
return _dict
@classmethod
@@ -97,13 +97,13 @@ class O11yGettableAgentCheckIn(BaseModel):
_obj = cls.model_validate({
"account_id": obj.get("account_id"),
"cloud_account_id": obj.get("cloud_account_id"),
"cloudIntegrationId": obj.get("cloudIntegrationId"),
"integration_config": O11yIntegrationConfig.from_dict(obj["integration_config"]) if obj.get("integration_config") is not None else None,
"cloud_account_id": obj.get("cloud_account_id"),
"integrationConfig": O11yProviderIntegrationConfig.from_dict(obj["integrationConfig"]) if obj.get("integrationConfig") is not None else None,
"integration_config": O11yIntegrationConfig.from_dict(obj["integration_config"]) if obj.get("integration_config") is not None else None,
"providerAccountId": obj.get("providerAccountId"),
"removed_at": obj.get("removed_at"),
"removedAt": obj.get("removedAt")
"removedAt": obj.get("removedAt"),
"removed_at": obj.get("removed_at")
})
return _obj
@@ -27,11 +27,11 @@ class O11yO11yAgentCheckInIn(BaseModel):
O11yO11yAgentCheckInIn
""" # noqa: E501
account_id: Optional[StrictStr] = None
cloud_account_id: Optional[StrictStr] = None
cloud_integration_id: Optional[Any] = Field(default=None, alias="cloudIntegrationId")
cloud_account_id: Optional[StrictStr] = None
data: Optional[Dict[str, Dict[str, Any]]] = None
provider_account_id: Optional[StrictStr] = Field(default=None, alias="providerAccountId")
__properties: ClassVar[List[str]] = ["account_id", "cloud_account_id", "cloudIntegrationId", "data", "providerAccountId"]
__properties: ClassVar[List[str]] = ["account_id", "cloudIntegrationId", "cloud_account_id", "data", "providerAccountId"]
model_config = ConfigDict(
populate_by_name=True,
@@ -90,8 +90,8 @@ class O11yO11yAgentCheckInIn(BaseModel):
_obj = cls.model_validate({
"account_id": obj.get("account_id"),
"cloud_account_id": obj.get("cloud_account_id"),
"cloudIntegrationId": obj.get("cloudIntegrationId"),
"cloud_account_id": obj.get("cloud_account_id"),
"data": obj.get("data"),
"providerAccountId": obj.get("providerAccountId")
})
+1 -1
View File
@@ -27,7 +27,7 @@ class PairingView(BaseModel):
PairingView
""" # noqa: E501
channel: Optional[StrictStr] = Field(default=None, description="Channel is the transport the request arrived on — discord, slack, teams or telegram — and half of what approval names. The cap of three unapproved requests applies per (org, channel); while it is full no further code is minted until one is approved or expires.")
code: Optional[StrictStr] = Field(default=None, description="Code is the CAPABILITY that authorises the approval: eight characters from a 32-symbol uppercase alphabet (A-Z0-9 minus the confusables 0, O, 1 and I), minted with crypto/rand and also sent to the requester in chat. An org admin passes it with the channel to POST /v1/channels/pairing/approve, which CONSUMES it — the request row is deleted, so a code approves once — and which takes org admin as well as the code. It lives ONE HOUR from CreatedAt; expired requests are not listed here, and approving one is a 404. It is shown on this admin surface and NEVER logged.")
code: Optional[StrictStr] = Field(default=None, description="Code is the CAPABILITY that authorises the approval: eight characters from a 32-symbol uppercase alphabet (A-Z0-9 minus the confusables 0, O, 1 and I), minted with crypto/rand and also sent to the requester in chat. An org admin passes it with the channel to POST /v1/channel/pairing/approve, which CONSUMES it — the request row is deleted, so a code approves once — and which takes org admin as well as the code. It lives ONE HOUR from CreatedAt; expired requests are not listed here, and approving one is a 404. It is shown on this admin surface and NEVER logged.")
created_at: Optional[StrictInt] = Field(default=None, description="CreatedAt is Unix SECONDS of FIRST contact: when the request was minted and the code sent. Expiry is measured from here and from nowhere else.", alias="createdAt")
last_seen: Optional[StrictInt] = Field(default=None, description="LastSeen is Unix SECONDS of the MOST RECENT message from this sender while the request has been pending. It moves as they keep writing, which is how an admin tells a live request from an abandoned one — but it does not extend the hour and does not re-send the code, since one request sends exactly one chat reply.", alias="lastSeen")
sender: Optional[StrictStr] = Field(default=None, description="Sender is the transport-native user id waiting for access — the same identity inbox messages carry. Approving mints a DM allow entry for exactly this value and nothing wider: pairing never grants group access.")
+3 -3
View File
@@ -35,14 +35,14 @@ class SampleView(BaseModel):
host: Optional[StrictStr] = Field(default=None, description="Host is the hostname the unit reported at the time of the reading.")
kind: Optional[StrictStr] = Field(default=None, description="Kind is what the measured unit is: laptop, cloud, gpu, cluster, machine or worker.")
load1: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Load1 is the 1-minute load average — runnable processes, not a percentage.")
load5: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Load5 is the 5-minute load average, the same units as Load1.")
load15: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Load15 is the 15-minute load average, the same units as Load1.")
load5: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Load5 is the 5-minute load average, the same units as Load1.")
mem_free: Optional[StrictInt] = Field(default=None, description="MemFree is host memory available, in BYTES, as reported rather than derived.", alias="memFree")
mem_used: Optional[StrictInt] = Field(default=None, description="MemUsed is host memory in use, in BYTES.", alias="memUsed")
memory: Optional[StrictInt] = Field(default=None, description="Memory is total system RAM in BYTES at the time of the reading.")
source: Optional[StrictStr] = Field(default=None, description="Source is the plane that reported the reading: \"agent\", \"byo\" or \"visor\" — the same vocabulary the board's rows carry, and what ?source= narrows on.")
unit: Optional[StrictStr] = Field(default=None, description="Unit is the source's own id for the measured unit. With Source it is the key the chart groups by, and the key the board joins a unit's latest reading on.")
__properties: ClassVar[List[str]] = ["at", "costCents", "cpus", "gpuModel", "gpuUtil", "gpus", "host", "kind", "load1", "load5", "load15", "memFree", "memUsed", "memory", "source", "unit"]
__properties: ClassVar[List[str]] = ["at", "costCents", "cpus", "gpuModel", "gpuUtil", "gpus", "host", "kind", "load1", "load15", "load5", "memFree", "memUsed", "memory", "source", "unit"]
model_config = ConfigDict(
populate_by_name=True,
@@ -104,8 +104,8 @@ class SampleView(BaseModel):
"host": obj.get("host"),
"kind": obj.get("kind"),
"load1": obj.get("load1"),
"load5": obj.get("load5"),
"load15": obj.get("load15"),
"load5": obj.get("load5"),
"memFree": obj.get("memFree"),
"memUsed": obj.get("memUsed"),
"memory": obj.get("memory"),
+1 -1
View File
@@ -31,7 +31,7 @@ class TeamRoom(BaseModel):
direct: Optional[StrictBool] = Field(default=None, description="Direct reports that this is a room between people rather than a named room. It is derived from the document's class, so it cannot disagree with what the client will render.")
id: Optional[StrictStr] = Field(default=None, description="ID is the room document's own id, and the value the bind op addresses. It is unique within a space, not across the org.")
life: Optional[StrictStr] = Field(default=None, description="Life is the room's lifecycle INTENT — \"standing\" or \"bound\" (HIP-0523 §2). Absent on the document it reads \"standing\": a room nobody classified is one that persists.")
members: Optional[List[StrictStr]] = Field(default=None, description="Members are the account uuids in the room, agents included: an agent projects as a space member under a uuid derived from its id, so a caller comparing this against GET /v1/team/bots learns which rooms an agent is in.")
members: Optional[List[StrictStr]] = Field(default=None, description="Members are the account uuids in the room, agents included: an agent projects as a space member under a uuid derived from its id, so a caller comparing this against GET /v1/bot/members learns which rooms an agent is in.")
name: Optional[StrictStr] = Field(default=None, description="Name is what a person sees in a sidebar. A direct message carries none, so this is empty for one — the members are its name.")
private: Optional[StrictBool] = Field(default=None, description="Private reports that the room is restricted to its members.")
space: Optional[StrictStr] = Field(default=None, description="Space is the space uuid holding this room. It is part of the room's address: two spaces of one org may each hold a room with the same name, and only the pair identifies one.")
+1 -1
View File
@@ -27,7 +27,7 @@ class ToolCall(BaseModel):
ToolCall
""" # noqa: E501
arguments: Optional[Dict[str, Dict[str, Any]]] = Field(default=None, description="Arguments is the tool's own input object, passed through verbatim to whichever source owns it.")
name: Optional[StrictStr] = Field(default=None, description="Name is the tool to run, exactly as GET /v1/tools reports it.")
name: Optional[StrictStr] = Field(default=None, description="Name is the tool to run, exactly as GET /v1/tool reports it.")
__properties: ClassVar[List[str]] = ["arguments", "name"]
model_config = ConfigDict(
+14 -16
View File
@@ -17,8 +17,9 @@ import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, StrictBool, StrictInt, StrictStr
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from hanzoai.cloud.models.drift_flag import DriftFlag
from typing import Optional, Set
from typing_extensions import Self
@@ -26,14 +27,9 @@ class Verdict(BaseModel):
"""
Verdict
""" # noqa: E501
builds: Optional[StrictInt] = None
commit: Optional[StrictStr] = None
fired: Optional[StrictBool] = None
org: Optional[StrictStr] = None
reason: Optional[StrictStr] = None
ref: Optional[StrictStr] = None
repo: Optional[StrictStr] = None
__properties: ClassVar[List[str]] = ["builds", "commit", "fired", "org", "reason", "ref", "repo"]
flags: Optional[List[DriftFlag]] = Field(default=None, description="Flags are the findings behind the severity, in detection order: floating-declared, floating-running, stale, un-rolled, then the release-artifact ones. Always present — `[]` for a row that runs what it declares, never null.")
severity: Optional[StrictStr] = Field(default=None, description="Severity is the roll-up over Flags — red if any flag is red, else yellow if any is yellow, else ok. It is the column a board sorts and filters on, and \"ok\" is exactly what no flags means.")
__properties: ClassVar[List[str]] = ["flags", "severity"]
model_config = ConfigDict(
populate_by_name=True,
@@ -74,6 +70,13 @@ class Verdict(BaseModel):
exclude=excluded_fields,
exclude_none=True,
)
# override the default output from pydantic by calling `to_dict()` of each item in flags (list)
_items = []
if self.flags:
for _item_flags in self.flags:
if _item_flags:
_items.append(_item_flags.to_dict())
_dict['flags'] = _items
return _dict
@classmethod
@@ -86,13 +89,8 @@ class Verdict(BaseModel):
return cls.model_validate(obj)
_obj = cls.model_validate({
"builds": obj.get("builds"),
"commit": obj.get("commit"),
"fired": obj.get("fired"),
"org": obj.get("org"),
"reason": obj.get("reason"),
"ref": obj.get("ref"),
"repo": obj.get("repo")
"flags": [DriftFlag.from_dict(_item) for _item in obj["flags"]] if obj.get("flags") is not None else None,
"severity": obj.get("severity")
})
return _obj