cloudflare-python/src/cloudflare/resources/logpush/datasets/jobs.py
2025-11-11 09:58:39 +00:00

277 lines
10 KiB
Python

# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
from __future__ import annotations
from typing import Optional
from typing_extensions import Literal
import httpx
from ...._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
from ...._compat import cached_property
from ...._resource import SyncAPIResource, AsyncAPIResource
from ...._response import (
to_raw_response_wrapper,
to_streamed_response_wrapper,
async_to_raw_response_wrapper,
async_to_streamed_response_wrapper,
)
from ....pagination import SyncSinglePage, AsyncSinglePage
from ...._base_client import AsyncPaginator, make_request_options
from ....types.logpush.logpush_job import LogpushJob
__all__ = ["JobsResource", "AsyncJobsResource"]
class JobsResource(SyncAPIResource):
@cached_property
def with_raw_response(self) -> JobsResourceWithRawResponse:
"""
This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
"""
return JobsResourceWithRawResponse(self)
@cached_property
def with_streaming_response(self) -> JobsResourceWithStreamingResponse:
"""
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response
"""
return JobsResourceWithStreamingResponse(self)
def get(
self,
dataset_id: Optional[
Literal[
"access_requests",
"audit_logs",
"audit_logs_v2",
"biso_user_actions",
"casb_findings",
"device_posture_results",
"dex_application_tests",
"dex_device_state_events",
"dlp_forensic_copies",
"dns_firewall_logs",
"dns_logs",
"email_security_alerts",
"firewall_events",
"gateway_dns",
"gateway_http",
"gateway_network",
"http_requests",
"ipsec_logs",
"magic_ids_detections",
"nel_reports",
"network_analytics_logs",
"page_shield_events",
"sinkhole_http_logs",
"spectrum_events",
"ssh_logs",
"warp_config_changes",
"warp_toggle_changes",
"workers_trace_events",
"zaraz_events",
"zero_trust_network_sessions",
]
],
*,
account_id: str | Omit = omit,
zone_id: str | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> SyncSinglePage[Optional[LogpushJob]]:
"""
Lists Logpush jobs for an account or zone for a dataset.
Args:
dataset_id: Name of the dataset. A list of supported datasets can be found on the
[Developer Docs](https://developers.cloudflare.com/logs/reference/log-fields/).
account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.
zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.
extra_headers: Send extra headers
extra_query: Add additional query parameters to the request
extra_body: Add additional JSON properties to the request
timeout: Override the client-level default timeout for this request, in seconds
"""
if not dataset_id:
raise ValueError(f"Expected a non-empty value for `dataset_id` but received {dataset_id!r}")
if account_id and zone_id:
raise ValueError("You cannot provide both account_id and zone_id")
if account_id:
account_or_zone = "accounts"
account_or_zone_id = account_id
else:
if not zone_id:
raise ValueError("You must provide either account_id or zone_id")
account_or_zone = "zones"
account_or_zone_id = zone_id
return self._get_api_list(
f"/{account_or_zone}/{account_or_zone_id}/logpush/datasets/{dataset_id}/jobs",
page=SyncSinglePage[Optional[LogpushJob]],
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
model=LogpushJob,
)
class AsyncJobsResource(AsyncAPIResource):
@cached_property
def with_raw_response(self) -> AsyncJobsResourceWithRawResponse:
"""
This property can be used as a prefix for any HTTP method call to return
the raw response object instead of the parsed content.
For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers
"""
return AsyncJobsResourceWithRawResponse(self)
@cached_property
def with_streaming_response(self) -> AsyncJobsResourceWithStreamingResponse:
"""
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response
"""
return AsyncJobsResourceWithStreamingResponse(self)
def get(
self,
dataset_id: Optional[
Literal[
"access_requests",
"audit_logs",
"audit_logs_v2",
"biso_user_actions",
"casb_findings",
"device_posture_results",
"dex_application_tests",
"dex_device_state_events",
"dlp_forensic_copies",
"dns_firewall_logs",
"dns_logs",
"email_security_alerts",
"firewall_events",
"gateway_dns",
"gateway_http",
"gateway_network",
"http_requests",
"ipsec_logs",
"magic_ids_detections",
"nel_reports",
"network_analytics_logs",
"page_shield_events",
"sinkhole_http_logs",
"spectrum_events",
"ssh_logs",
"warp_config_changes",
"warp_toggle_changes",
"workers_trace_events",
"zaraz_events",
"zero_trust_network_sessions",
]
],
*,
account_id: str | Omit = omit,
zone_id: str | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> AsyncPaginator[Optional[LogpushJob], AsyncSinglePage[Optional[LogpushJob]]]:
"""
Lists Logpush jobs for an account or zone for a dataset.
Args:
dataset_id: Name of the dataset. A list of supported datasets can be found on the
[Developer Docs](https://developers.cloudflare.com/logs/reference/log-fields/).
account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.
zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.
extra_headers: Send extra headers
extra_query: Add additional query parameters to the request
extra_body: Add additional JSON properties to the request
timeout: Override the client-level default timeout for this request, in seconds
"""
if not dataset_id:
raise ValueError(f"Expected a non-empty value for `dataset_id` but received {dataset_id!r}")
if account_id and zone_id:
raise ValueError("You cannot provide both account_id and zone_id")
if account_id:
account_or_zone = "accounts"
account_or_zone_id = account_id
else:
if not zone_id:
raise ValueError("You must provide either account_id or zone_id")
account_or_zone = "zones"
account_or_zone_id = zone_id
return self._get_api_list(
f"/{account_or_zone}/{account_or_zone_id}/logpush/datasets/{dataset_id}/jobs",
page=AsyncSinglePage[Optional[LogpushJob]],
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
model=LogpushJob,
)
class JobsResourceWithRawResponse:
def __init__(self, jobs: JobsResource) -> None:
self._jobs = jobs
self.get = to_raw_response_wrapper(
jobs.get,
)
class AsyncJobsResourceWithRawResponse:
def __init__(self, jobs: AsyncJobsResource) -> None:
self._jobs = jobs
self.get = async_to_raw_response_wrapper(
jobs.get,
)
class JobsResourceWithStreamingResponse:
def __init__(self, jobs: JobsResource) -> None:
self._jobs = jobs
self.get = to_streamed_response_wrapper(
jobs.get,
)
class AsyncJobsResourceWithStreamingResponse:
def __init__(self, jobs: AsyncJobsResource) -> None:
self._jobs = jobs
self.get = async_to_streamed_response_wrapper(
jobs.get,
)