levelfour 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- levelfour-0.1.0/PKG-INFO +12 -0
- levelfour-0.1.0/__init__.py +495 -0
- levelfour-0.1.0/api_keys/__init__.py +34 -0
- levelfour-0.1.0/api_keys/client.py +337 -0
- levelfour-0.1.0/api_keys/raw_client.py +621 -0
- levelfour-0.1.0/api_keys/types/__init__.py +34 -0
- levelfour-0.1.0/api_keys/types/create_api_key_request_scope.py +5 -0
- levelfour-0.1.0/async_levelfour_client.py +39 -0
- levelfour-0.1.0/base_client.py +346 -0
- levelfour-0.1.0/client.py +54 -0
- levelfour-0.1.0/core/__init__.py +127 -0
- levelfour-0.1.0/core/api_error.py +23 -0
- levelfour-0.1.0/core/client_wrapper.py +105 -0
- levelfour-0.1.0/core/datetime_utils.py +70 -0
- levelfour-0.1.0/core/file.py +67 -0
- levelfour-0.1.0/core/force_multipart.py +18 -0
- levelfour-0.1.0/core/http_client.py +776 -0
- levelfour-0.1.0/core/http_response.py +59 -0
- levelfour-0.1.0/core/http_sse/__init__.py +42 -0
- levelfour-0.1.0/core/http_sse/_api.py +112 -0
- levelfour-0.1.0/core/http_sse/_decoders.py +61 -0
- levelfour-0.1.0/core/http_sse/_exceptions.py +7 -0
- levelfour-0.1.0/core/http_sse/_models.py +17 -0
- levelfour-0.1.0/core/jsonable_encoder.py +108 -0
- levelfour-0.1.0/core/logging.py +107 -0
- levelfour-0.1.0/core/pagination.py +82 -0
- levelfour-0.1.0/core/pydantic_utilities.py +577 -0
- levelfour-0.1.0/core/query_encoder.py +58 -0
- levelfour-0.1.0/core/remove_none_from_dict.py +11 -0
- levelfour-0.1.0/core/request_options.py +35 -0
- levelfour-0.1.0/core/serialization.py +276 -0
- levelfour-0.1.0/errors/__init__.py +40 -0
- levelfour-0.1.0/errors/forbidden_error.py +11 -0
- levelfour-0.1.0/errors/unauthorized_error.py +11 -0
- levelfour-0.1.0/errors/unprocessable_entity_error.py +11 -0
- levelfour-0.1.0/evaluation/__init__.py +4 -0
- levelfour-0.1.0/evaluation/client.py +102 -0
- levelfour-0.1.0/evaluation/raw_client.py +141 -0
- levelfour-0.1.0/exceptions.py +63 -0
- levelfour-0.1.0/health/__init__.py +4 -0
- levelfour-0.1.0/health/client.py +163 -0
- levelfour-0.1.0/health/raw_client.py +164 -0
- levelfour-0.1.0/integrations/__init__.py +0 -0
- levelfour-0.1.0/integrations/django.py +26 -0
- levelfour-0.1.0/integrations/fastapi.py +39 -0
- levelfour-0.1.0/integrations/telemetry.py +66 -0
- levelfour-0.1.0/levelfour.egg-info/PKG-INFO +12 -0
- levelfour-0.1.0/levelfour.egg-info/SOURCES.txt +221 -0
- levelfour-0.1.0/levelfour.egg-info/dependency_links.txt +1 -0
- levelfour-0.1.0/levelfour.egg-info/requires.txt +11 -0
- levelfour-0.1.0/levelfour.egg-info/top_level.txt +1 -0
- levelfour-0.1.0/levelfour_client.py +47 -0
- levelfour-0.1.0/pagination.py +84 -0
- levelfour-0.1.0/pr_analysis/__init__.py +4 -0
- levelfour-0.1.0/pr_analysis/client.py +408 -0
- levelfour-0.1.0/pr_analysis/raw_client.py +620 -0
- levelfour-0.1.0/pr_analysis_actions/__init__.py +4 -0
- levelfour-0.1.0/pr_analysis_actions/client.py +588 -0
- levelfour-0.1.0/pr_analysis_actions/raw_client.py +939 -0
- levelfour-0.1.0/pr_analysis_installations/__init__.py +4 -0
- levelfour-0.1.0/pr_analysis_installations/client.py +470 -0
- levelfour-0.1.0/pr_analysis_installations/raw_client.py +868 -0
- levelfour-0.1.0/providers/__init__.py +34 -0
- levelfour-0.1.0/providers/client.py +1504 -0
- levelfour-0.1.0/providers/raw_client.py +2398 -0
- levelfour-0.1.0/providers/types/__init__.py +36 -0
- levelfour-0.1.0/providers/types/list_spending_breakdown_providers_response.py +11 -0
- levelfour-0.1.0/py.typed +0 -0
- levelfour-0.1.0/pyproject.toml +66 -0
- levelfour-0.1.0/recommendations/__init__.py +4 -0
- levelfour-0.1.0/recommendations/client.py +1018 -0
- levelfour-0.1.0/recommendations/raw_client.py +1810 -0
- levelfour-0.1.0/savings/__init__.py +4 -0
- levelfour-0.1.0/savings/client.py +401 -0
- levelfour-0.1.0/savings/raw_client.py +624 -0
- levelfour-0.1.0/setup.cfg +4 -0
- levelfour-0.1.0/spending/__init__.py +34 -0
- levelfour-0.1.0/spending/client.py +437 -0
- levelfour-0.1.0/spending/raw_client.py +684 -0
- levelfour-0.1.0/spending/types/__init__.py +34 -0
- levelfour-0.1.0/spending/types/list_breakdown_spending_response.py +12 -0
- levelfour-0.1.0/tests/test_auth.py +60 -0
- levelfour-0.1.0/tests/test_errors.py +104 -0
- levelfour-0.1.0/tests/test_pagination.py +97 -0
- levelfour-0.1.0/types/__init__.py +413 -0
- levelfour-0.1.0/types/accept_terms_data.py +25 -0
- levelfour-0.1.0/types/accept_terms_response.py +27 -0
- levelfour-0.1.0/types/action_request.py +42 -0
- levelfour-0.1.0/types/api_key_created_data.py +28 -0
- levelfour-0.1.0/types/api_key_data.py +27 -0
- levelfour-0.1.0/types/authentication_error.py +5 -0
- levelfour-0.1.0/types/authorization_error.py +5 -0
- levelfour-0.1.0/types/bad_request_error.py +5 -0
- levelfour-0.1.0/types/comparison_item.py +32 -0
- levelfour-0.1.0/types/complete_wizard_data.py +27 -0
- levelfour-0.1.0/types/complete_wizard_response.py +27 -0
- levelfour-0.1.0/types/conflict_error.py +5 -0
- levelfour-0.1.0/types/cost_breakdown_data.py +35 -0
- levelfour-0.1.0/types/cost_breakdown_item.py +71 -0
- levelfour-0.1.0/types/cost_breakdown_raw_data.py +37 -0
- levelfour-0.1.0/types/cost_breakdown_raw_response.py +27 -0
- levelfour-0.1.0/types/cost_breakdown_response.py +27 -0
- levelfour-0.1.0/types/costs_breakdown_chart_data.py +48 -0
- levelfour-0.1.0/types/costs_breakdown_chart_response.py +27 -0
- levelfour-0.1.0/types/costs_breakdown_data_point.py +46 -0
- levelfour-0.1.0/types/costs_breakdown_grouped_chart_data.py +52 -0
- levelfour-0.1.0/types/costs_breakdown_grouped_chart_response.py +27 -0
- levelfour-0.1.0/types/costs_breakdown_grouped_data_point.py +36 -0
- levelfour-0.1.0/types/costs_breakdown_totals.py +41 -0
- levelfour-0.1.0/types/create_api_key_response.py +23 -0
- levelfour-0.1.0/types/daily_spending_breakdown_data.py +42 -0
- levelfour-0.1.0/types/daily_spending_breakdown_response.py +27 -0
- levelfour-0.1.0/types/daily_spending_data_point.py +31 -0
- levelfour-0.1.0/types/dashboard_summary_data.py +72 -0
- levelfour-0.1.0/types/dashboard_summary_response.py +27 -0
- levelfour-0.1.0/types/delete_endpoint_data.py +20 -0
- levelfour-0.1.0/types/delete_endpoint_response.py +23 -0
- levelfour-0.1.0/types/endpoint_data.py +23 -0
- levelfour-0.1.0/types/error_response.py +23 -0
- levelfour-0.1.0/types/error_response_error.py +21 -0
- levelfour-0.1.0/types/evaluation_status_data.py +71 -0
- levelfour-0.1.0/types/evaluation_status_response.py +27 -0
- levelfour-0.1.0/types/execution_log_command.py +21 -0
- levelfour-0.1.0/types/execution_log_entry.py +23 -0
- levelfour-0.1.0/types/execution_step_schema.py +23 -0
- levelfour-0.1.0/types/http_validation_error.py +20 -0
- levelfour-0.1.0/types/implementation_method_data.py +25 -0
- levelfour-0.1.0/types/implementation_method_response.py +27 -0
- levelfour-0.1.0/types/implementation_step.py +27 -0
- levelfour-0.1.0/types/internal_server_error.py +5 -0
- levelfour-0.1.0/types/list_api_keys_data.py +21 -0
- levelfour-0.1.0/types/list_api_keys_response.py +23 -0
- levelfour-0.1.0/types/list_endpoints_response.py +23 -0
- levelfour-0.1.0/types/metric_data_point.py +27 -0
- levelfour-0.1.0/types/metric_series.py +40 -0
- levelfour-0.1.0/types/metric_series_entry.py +25 -0
- levelfour-0.1.0/types/monthly_spending_data.py +27 -0
- levelfour-0.1.0/types/monthly_spending_data_point.py +31 -0
- levelfour-0.1.0/types/monthly_spending_response.py +27 -0
- levelfour-0.1.0/types/not_found_error.py +5 -0
- levelfour-0.1.0/types/pagination_meta.py +51 -0
- levelfour-0.1.0/types/processing_recommendation_item.py +61 -0
- levelfour-0.1.0/types/processing_recommendations_data.py +28 -0
- levelfour-0.1.0/types/processing_recommendations_response.py +27 -0
- levelfour-0.1.0/types/provider.py +46 -0
- levelfour-0.1.0/types/provider_breakdown_data.py +31 -0
- levelfour-0.1.0/types/provider_breakdown_item.py +77 -0
- levelfour-0.1.0/types/provider_breakdown_response.py +27 -0
- levelfour-0.1.0/types/provider_filter_options_data.py +51 -0
- levelfour-0.1.0/types/provider_filter_options_response.py +27 -0
- levelfour-0.1.0/types/provider_potential_savings_summary_data.py +46 -0
- levelfour-0.1.0/types/provider_potential_savings_summary_response.py +27 -0
- levelfour-0.1.0/types/provider_recommendations_summary_data.py +37 -0
- levelfour-0.1.0/types/provider_recommendations_summary_response.py +27 -0
- levelfour-0.1.0/types/provider_saved_summary_data.py +56 -0
- levelfour-0.1.0/types/provider_saved_summary_response.py +27 -0
- levelfour-0.1.0/types/provider_service_breakdown_data.py +65 -0
- levelfour-0.1.0/types/provider_service_breakdown_item.py +72 -0
- levelfour-0.1.0/types/provider_service_breakdown_raw_data.py +62 -0
- levelfour-0.1.0/types/provider_service_breakdown_raw_response.py +27 -0
- levelfour-0.1.0/types/provider_service_breakdown_response.py +27 -0
- levelfour-0.1.0/types/provider_service_costs_breakdown_data.py +62 -0
- levelfour-0.1.0/types/provider_service_costs_breakdown_response.py +27 -0
- levelfour-0.1.0/types/provider_service_costs_data_point.py +36 -0
- levelfour-0.1.0/types/provider_spending.py +61 -0
- levelfour-0.1.0/types/provider_spending_summary_data.py +67 -0
- levelfour-0.1.0/types/provider_spending_summary_response.py +27 -0
- levelfour-0.1.0/types/provider_timeline_data.py +57 -0
- levelfour-0.1.0/types/provider_timeline_response.py +27 -0
- levelfour-0.1.0/types/provider_top_service.py +36 -0
- levelfour-0.1.0/types/providers_summary_data.py +24 -0
- levelfour-0.1.0/types/providers_summary_response.py +27 -0
- levelfour-0.1.0/types/rate_limit_error.py +5 -0
- levelfour-0.1.0/types/recommendation_actions.py +60 -0
- levelfour-0.1.0/types/recommendation_detail.py +42 -0
- levelfour-0.1.0/types/recommendation_detail_response.py +27 -0
- levelfour-0.1.0/types/recommendation_filter_options_data.py +41 -0
- levelfour-0.1.0/types/recommendation_filter_options_response.py +27 -0
- levelfour-0.1.0/types/recommendation_item.py +36 -0
- levelfour-0.1.0/types/recommendation_wizard_data.py +173 -0
- levelfour-0.1.0/types/recommendation_wizard_data_metrics.py +7 -0
- levelfour-0.1.0/types/recommendation_wizard_response.py +27 -0
- levelfour-0.1.0/types/recommendations_breakdown_data.py +26 -0
- levelfour-0.1.0/types/recommendations_breakdown_response.py +27 -0
- levelfour-0.1.0/types/recommendations_overview_data.py +51 -0
- levelfour-0.1.0/types/recommendations_overview_response.py +27 -0
- levelfour-0.1.0/types/register_endpoint_response.py +23 -0
- levelfour-0.1.0/types/resource_change.py +42 -0
- levelfour-0.1.0/types/resource_snapshot.py +21 -0
- levelfour-0.1.0/types/revoke_api_key_data.py +20 -0
- levelfour-0.1.0/types/revoke_api_key_response.py +23 -0
- levelfour-0.1.0/types/risk_assessment.py +29 -0
- levelfour-0.1.0/types/risk_factor.py +27 -0
- levelfour-0.1.0/types/saved_breakdown_data.py +31 -0
- levelfour-0.1.0/types/saved_breakdown_response.py +27 -0
- levelfour-0.1.0/types/saved_by_provider_breakdown_data.py +31 -0
- levelfour-0.1.0/types/saved_by_provider_breakdown_response.py +27 -0
- levelfour-0.1.0/types/saved_by_provider_item.py +76 -0
- levelfour-0.1.0/types/saved_item.py +35 -0
- levelfour-0.1.0/types/saved_provider_summary.py +36 -0
- levelfour-0.1.0/types/saved_summary_data.py +57 -0
- levelfour-0.1.0/types/saved_summary_response.py +27 -0
- levelfour-0.1.0/types/savings_decision_data.py +28 -0
- levelfour-0.1.0/types/savings_decision_response.py +27 -0
- levelfour-0.1.0/types/spending_by_date_item.py +36 -0
- levelfour-0.1.0/types/top_recommendation.py +56 -0
- levelfour-0.1.0/types/trigger_info.py +22 -0
- levelfour-0.1.0/types/update_tag_data.py +20 -0
- levelfour-0.1.0/types/update_tag_response.py +23 -0
- levelfour-0.1.0/types/validation_error.py +24 -0
- levelfour-0.1.0/types/validation_error_loc_item.py +5 -0
- levelfour-0.1.0/webhooks/__init__.py +4 -0
- levelfour-0.1.0/webhooks/client.py +273 -0
- levelfour-0.1.0/webhooks/raw_client.py +483 -0
- levelfour-0.1.0/webhooks/verifier.py +61 -0
levelfour-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: levelfour
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Requires-Python: >=3.9
|
|
5
|
+
Requires-Dist: httpx>=0.24.0
|
|
6
|
+
Requires-Dist: pydantic>=2.0
|
|
7
|
+
Provides-Extra: fastapi
|
|
8
|
+
Requires-Dist: fastapi>=0.100.0; extra == "fastapi"
|
|
9
|
+
Provides-Extra: django
|
|
10
|
+
Requires-Dist: django>=4.0; extra == "django"
|
|
11
|
+
Provides-Extra: telemetry
|
|
12
|
+
Requires-Dist: opentelemetry-api>=1.20.0; extra == "telemetry"
|
|
@@ -0,0 +1,495 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
# isort: skip_file
|
|
4
|
+
|
|
5
|
+
import typing
|
|
6
|
+
from importlib import import_module
|
|
7
|
+
|
|
8
|
+
if typing.TYPE_CHECKING:
|
|
9
|
+
from .types import (
|
|
10
|
+
AcceptTermsData,
|
|
11
|
+
AcceptTermsResponse,
|
|
12
|
+
ActionRequest,
|
|
13
|
+
ApiKeyCreatedData,
|
|
14
|
+
ApiKeyData,
|
|
15
|
+
AuthenticationError,
|
|
16
|
+
AuthorizationError,
|
|
17
|
+
BadRequestError,
|
|
18
|
+
ComparisonItem,
|
|
19
|
+
CompleteWizardData,
|
|
20
|
+
CompleteWizardResponse,
|
|
21
|
+
ConflictError,
|
|
22
|
+
CostBreakdownData,
|
|
23
|
+
CostBreakdownItem,
|
|
24
|
+
CostBreakdownRawData,
|
|
25
|
+
CostBreakdownRawResponse,
|
|
26
|
+
CostBreakdownResponse,
|
|
27
|
+
CostsBreakdownChartData,
|
|
28
|
+
CostsBreakdownChartResponse,
|
|
29
|
+
CostsBreakdownDataPoint,
|
|
30
|
+
CostsBreakdownGroupedChartData,
|
|
31
|
+
CostsBreakdownGroupedChartResponse,
|
|
32
|
+
CostsBreakdownGroupedDataPoint,
|
|
33
|
+
CostsBreakdownTotals,
|
|
34
|
+
CreateApiKeyResponse,
|
|
35
|
+
DailySpendingBreakdownData,
|
|
36
|
+
DailySpendingBreakdownResponse,
|
|
37
|
+
DailySpendingDataPoint,
|
|
38
|
+
DashboardSummaryData,
|
|
39
|
+
DashboardSummaryResponse,
|
|
40
|
+
DeleteEndpointData,
|
|
41
|
+
DeleteEndpointResponse,
|
|
42
|
+
EndpointData,
|
|
43
|
+
ErrorResponse,
|
|
44
|
+
ErrorResponseError,
|
|
45
|
+
EvaluationStatusData,
|
|
46
|
+
EvaluationStatusResponse,
|
|
47
|
+
ExecutionLogCommand,
|
|
48
|
+
ExecutionLogEntry,
|
|
49
|
+
ExecutionStepSchema,
|
|
50
|
+
HttpValidationError,
|
|
51
|
+
ImplementationMethodData,
|
|
52
|
+
ImplementationMethodResponse,
|
|
53
|
+
ImplementationStep,
|
|
54
|
+
InternalServerError,
|
|
55
|
+
ListApiKeysData,
|
|
56
|
+
ListApiKeysResponse,
|
|
57
|
+
ListEndpointsResponse,
|
|
58
|
+
MetricDataPoint,
|
|
59
|
+
MetricSeries,
|
|
60
|
+
MetricSeriesEntry,
|
|
61
|
+
MonthlySpendingData,
|
|
62
|
+
MonthlySpendingDataPoint,
|
|
63
|
+
MonthlySpendingResponse,
|
|
64
|
+
NotFoundError,
|
|
65
|
+
PaginationMeta,
|
|
66
|
+
ProcessingRecommendationItem,
|
|
67
|
+
ProcessingRecommendationsData,
|
|
68
|
+
ProcessingRecommendationsResponse,
|
|
69
|
+
Provider,
|
|
70
|
+
ProviderBreakdownData,
|
|
71
|
+
ProviderBreakdownItem,
|
|
72
|
+
ProviderBreakdownResponse,
|
|
73
|
+
ProviderFilterOptionsData,
|
|
74
|
+
ProviderFilterOptionsResponse,
|
|
75
|
+
ProviderPotentialSavingsSummaryData,
|
|
76
|
+
ProviderPotentialSavingsSummaryResponse,
|
|
77
|
+
ProviderRecommendationsSummaryData,
|
|
78
|
+
ProviderRecommendationsSummaryResponse,
|
|
79
|
+
ProviderSavedSummaryData,
|
|
80
|
+
ProviderSavedSummaryResponse,
|
|
81
|
+
ProviderServiceBreakdownData,
|
|
82
|
+
ProviderServiceBreakdownItem,
|
|
83
|
+
ProviderServiceBreakdownRawData,
|
|
84
|
+
ProviderServiceBreakdownRawResponse,
|
|
85
|
+
ProviderServiceBreakdownResponse,
|
|
86
|
+
ProviderServiceCostsBreakdownData,
|
|
87
|
+
ProviderServiceCostsBreakdownResponse,
|
|
88
|
+
ProviderServiceCostsDataPoint,
|
|
89
|
+
ProviderSpending,
|
|
90
|
+
ProviderSpendingSummaryData,
|
|
91
|
+
ProviderSpendingSummaryResponse,
|
|
92
|
+
ProviderTimelineData,
|
|
93
|
+
ProviderTimelineResponse,
|
|
94
|
+
ProviderTopService,
|
|
95
|
+
ProvidersSummaryData,
|
|
96
|
+
ProvidersSummaryResponse,
|
|
97
|
+
RateLimitError,
|
|
98
|
+
RecommendationActions,
|
|
99
|
+
RecommendationDetail,
|
|
100
|
+
RecommendationDetailResponse,
|
|
101
|
+
RecommendationFilterOptionsData,
|
|
102
|
+
RecommendationFilterOptionsResponse,
|
|
103
|
+
RecommendationItem,
|
|
104
|
+
RecommendationWizardData,
|
|
105
|
+
RecommendationWizardDataMetrics,
|
|
106
|
+
RecommendationWizardResponse,
|
|
107
|
+
RecommendationsBreakdownData,
|
|
108
|
+
RecommendationsBreakdownResponse,
|
|
109
|
+
RecommendationsOverviewData,
|
|
110
|
+
RecommendationsOverviewResponse,
|
|
111
|
+
RegisterEndpointResponse,
|
|
112
|
+
ResourceChange,
|
|
113
|
+
ResourceSnapshot,
|
|
114
|
+
RevokeApiKeyData,
|
|
115
|
+
RevokeApiKeyResponse,
|
|
116
|
+
RiskAssessment,
|
|
117
|
+
RiskFactor,
|
|
118
|
+
SavedBreakdownData,
|
|
119
|
+
SavedBreakdownResponse,
|
|
120
|
+
SavedByProviderBreakdownData,
|
|
121
|
+
SavedByProviderBreakdownResponse,
|
|
122
|
+
SavedByProviderItem,
|
|
123
|
+
SavedItem,
|
|
124
|
+
SavedProviderSummary,
|
|
125
|
+
SavedSummaryData,
|
|
126
|
+
SavedSummaryResponse,
|
|
127
|
+
SavingsDecisionData,
|
|
128
|
+
SavingsDecisionResponse,
|
|
129
|
+
SpendingByDateItem,
|
|
130
|
+
TopRecommendation,
|
|
131
|
+
TriggerInfo,
|
|
132
|
+
UpdateTagData,
|
|
133
|
+
UpdateTagResponse,
|
|
134
|
+
ValidationError,
|
|
135
|
+
ValidationErrorLocItem,
|
|
136
|
+
)
|
|
137
|
+
from .errors import ForbiddenError, UnauthorizedError, UnprocessableEntityError
|
|
138
|
+
from . import (
|
|
139
|
+
api_keys,
|
|
140
|
+
evaluation,
|
|
141
|
+
health,
|
|
142
|
+
pr_analysis,
|
|
143
|
+
pr_analysis_actions,
|
|
144
|
+
pr_analysis_installations,
|
|
145
|
+
providers,
|
|
146
|
+
recommendations,
|
|
147
|
+
savings,
|
|
148
|
+
spending,
|
|
149
|
+
webhooks,
|
|
150
|
+
)
|
|
151
|
+
from .api_keys import CreateApiKeyRequestScope
|
|
152
|
+
from .base_client import AsyncBaseLevelFour, BaseLevelFour
|
|
153
|
+
from .levelfour_client import LevelFour
|
|
154
|
+
from .async_levelfour_client import AsyncLevelFour
|
|
155
|
+
from .exceptions import (
|
|
156
|
+
LevelFourError,
|
|
157
|
+
AuthenticationError as LevelFourAuthenticationError,
|
|
158
|
+
AuthorizationError as LevelFourAuthorizationError,
|
|
159
|
+
BadRequestError as LevelFourBadRequestError,
|
|
160
|
+
ConflictError as LevelFourConflictError,
|
|
161
|
+
InternalServerError as LevelFourInternalServerError,
|
|
162
|
+
NotFoundError as LevelFourNotFoundError,
|
|
163
|
+
RateLimitError as LevelFourRateLimitError,
|
|
164
|
+
ValidationError as LevelFourValidationError,
|
|
165
|
+
)
|
|
166
|
+
from .pagination import AsyncPageIterator, PageIterator
|
|
167
|
+
from .providers import ListSpendingBreakdownProvidersResponse
|
|
168
|
+
from .spending import ListBreakdownSpendingResponse
|
|
169
|
+
_dynamic_imports: typing.Dict[str, str] = {
|
|
170
|
+
"AcceptTermsData": ".types",
|
|
171
|
+
"AcceptTermsResponse": ".types",
|
|
172
|
+
"ActionRequest": ".types",
|
|
173
|
+
"ApiKeyCreatedData": ".types",
|
|
174
|
+
"ApiKeyData": ".types",
|
|
175
|
+
"AsyncBaseLevelFour": ".base_client",
|
|
176
|
+
"AsyncLevelFour": ".async_levelfour_client",
|
|
177
|
+
"AsyncPageIterator": ".pagination",
|
|
178
|
+
"AuthenticationError": ".types",
|
|
179
|
+
"AuthorizationError": ".types",
|
|
180
|
+
"BadRequestError": ".types",
|
|
181
|
+
"BaseLevelFour": ".base_client",
|
|
182
|
+
"ComparisonItem": ".types",
|
|
183
|
+
"CompleteWizardData": ".types",
|
|
184
|
+
"CompleteWizardResponse": ".types",
|
|
185
|
+
"ConflictError": ".types",
|
|
186
|
+
"CostBreakdownData": ".types",
|
|
187
|
+
"CostBreakdownItem": ".types",
|
|
188
|
+
"CostBreakdownRawData": ".types",
|
|
189
|
+
"CostBreakdownRawResponse": ".types",
|
|
190
|
+
"CostBreakdownResponse": ".types",
|
|
191
|
+
"CostsBreakdownChartData": ".types",
|
|
192
|
+
"CostsBreakdownChartResponse": ".types",
|
|
193
|
+
"CostsBreakdownDataPoint": ".types",
|
|
194
|
+
"CostsBreakdownGroupedChartData": ".types",
|
|
195
|
+
"CostsBreakdownGroupedChartResponse": ".types",
|
|
196
|
+
"CostsBreakdownGroupedDataPoint": ".types",
|
|
197
|
+
"CostsBreakdownTotals": ".types",
|
|
198
|
+
"CreateApiKeyRequestScope": ".api_keys",
|
|
199
|
+
"CreateApiKeyResponse": ".types",
|
|
200
|
+
"DailySpendingBreakdownData": ".types",
|
|
201
|
+
"DailySpendingBreakdownResponse": ".types",
|
|
202
|
+
"DailySpendingDataPoint": ".types",
|
|
203
|
+
"DashboardSummaryData": ".types",
|
|
204
|
+
"DashboardSummaryResponse": ".types",
|
|
205
|
+
"DeleteEndpointData": ".types",
|
|
206
|
+
"DeleteEndpointResponse": ".types",
|
|
207
|
+
"EndpointData": ".types",
|
|
208
|
+
"ErrorResponse": ".types",
|
|
209
|
+
"ErrorResponseError": ".types",
|
|
210
|
+
"EvaluationStatusData": ".types",
|
|
211
|
+
"EvaluationStatusResponse": ".types",
|
|
212
|
+
"ExecutionLogCommand": ".types",
|
|
213
|
+
"ExecutionLogEntry": ".types",
|
|
214
|
+
"ExecutionStepSchema": ".types",
|
|
215
|
+
"ForbiddenError": ".errors",
|
|
216
|
+
"HttpValidationError": ".types",
|
|
217
|
+
"ImplementationMethodData": ".types",
|
|
218
|
+
"ImplementationMethodResponse": ".types",
|
|
219
|
+
"ImplementationStep": ".types",
|
|
220
|
+
"InternalServerError": ".types",
|
|
221
|
+
"LevelFour": ".levelfour_client",
|
|
222
|
+
"LevelFourError": ".exceptions",
|
|
223
|
+
"ListApiKeysData": ".types",
|
|
224
|
+
"ListApiKeysResponse": ".types",
|
|
225
|
+
"ListBreakdownSpendingResponse": ".spending",
|
|
226
|
+
"ListEndpointsResponse": ".types",
|
|
227
|
+
"ListSpendingBreakdownProvidersResponse": ".providers",
|
|
228
|
+
"MetricDataPoint": ".types",
|
|
229
|
+
"MetricSeries": ".types",
|
|
230
|
+
"MetricSeriesEntry": ".types",
|
|
231
|
+
"MonthlySpendingData": ".types",
|
|
232
|
+
"MonthlySpendingDataPoint": ".types",
|
|
233
|
+
"MonthlySpendingResponse": ".types",
|
|
234
|
+
"NotFoundError": ".types",
|
|
235
|
+
"PageIterator": ".pagination",
|
|
236
|
+
"PaginationMeta": ".types",
|
|
237
|
+
"ProcessingRecommendationItem": ".types",
|
|
238
|
+
"ProcessingRecommendationsData": ".types",
|
|
239
|
+
"ProcessingRecommendationsResponse": ".types",
|
|
240
|
+
"Provider": ".types",
|
|
241
|
+
"ProviderBreakdownData": ".types",
|
|
242
|
+
"ProviderBreakdownItem": ".types",
|
|
243
|
+
"ProviderBreakdownResponse": ".types",
|
|
244
|
+
"ProviderFilterOptionsData": ".types",
|
|
245
|
+
"ProviderFilterOptionsResponse": ".types",
|
|
246
|
+
"ProviderPotentialSavingsSummaryData": ".types",
|
|
247
|
+
"ProviderPotentialSavingsSummaryResponse": ".types",
|
|
248
|
+
"ProviderRecommendationsSummaryData": ".types",
|
|
249
|
+
"ProviderRecommendationsSummaryResponse": ".types",
|
|
250
|
+
"ProviderSavedSummaryData": ".types",
|
|
251
|
+
"ProviderSavedSummaryResponse": ".types",
|
|
252
|
+
"ProviderServiceBreakdownData": ".types",
|
|
253
|
+
"ProviderServiceBreakdownItem": ".types",
|
|
254
|
+
"ProviderServiceBreakdownRawData": ".types",
|
|
255
|
+
"ProviderServiceBreakdownRawResponse": ".types",
|
|
256
|
+
"ProviderServiceBreakdownResponse": ".types",
|
|
257
|
+
"ProviderServiceCostsBreakdownData": ".types",
|
|
258
|
+
"ProviderServiceCostsBreakdownResponse": ".types",
|
|
259
|
+
"ProviderServiceCostsDataPoint": ".types",
|
|
260
|
+
"ProviderSpending": ".types",
|
|
261
|
+
"ProviderSpendingSummaryData": ".types",
|
|
262
|
+
"ProviderSpendingSummaryResponse": ".types",
|
|
263
|
+
"ProviderTimelineData": ".types",
|
|
264
|
+
"ProviderTimelineResponse": ".types",
|
|
265
|
+
"ProviderTopService": ".types",
|
|
266
|
+
"ProvidersSummaryData": ".types",
|
|
267
|
+
"ProvidersSummaryResponse": ".types",
|
|
268
|
+
"RateLimitError": ".types",
|
|
269
|
+
"RecommendationActions": ".types",
|
|
270
|
+
"RecommendationDetail": ".types",
|
|
271
|
+
"RecommendationDetailResponse": ".types",
|
|
272
|
+
"RecommendationFilterOptionsData": ".types",
|
|
273
|
+
"RecommendationFilterOptionsResponse": ".types",
|
|
274
|
+
"RecommendationItem": ".types",
|
|
275
|
+
"RecommendationWizardData": ".types",
|
|
276
|
+
"RecommendationWizardDataMetrics": ".types",
|
|
277
|
+
"RecommendationWizardResponse": ".types",
|
|
278
|
+
"RecommendationsBreakdownData": ".types",
|
|
279
|
+
"RecommendationsBreakdownResponse": ".types",
|
|
280
|
+
"RecommendationsOverviewData": ".types",
|
|
281
|
+
"RecommendationsOverviewResponse": ".types",
|
|
282
|
+
"RegisterEndpointResponse": ".types",
|
|
283
|
+
"ResourceChange": ".types",
|
|
284
|
+
"ResourceSnapshot": ".types",
|
|
285
|
+
"RevokeApiKeyData": ".types",
|
|
286
|
+
"RevokeApiKeyResponse": ".types",
|
|
287
|
+
"RiskAssessment": ".types",
|
|
288
|
+
"RiskFactor": ".types",
|
|
289
|
+
"SavedBreakdownData": ".types",
|
|
290
|
+
"SavedBreakdownResponse": ".types",
|
|
291
|
+
"SavedByProviderBreakdownData": ".types",
|
|
292
|
+
"SavedByProviderBreakdownResponse": ".types",
|
|
293
|
+
"SavedByProviderItem": ".types",
|
|
294
|
+
"SavedItem": ".types",
|
|
295
|
+
"SavedProviderSummary": ".types",
|
|
296
|
+
"SavedSummaryData": ".types",
|
|
297
|
+
"SavedSummaryResponse": ".types",
|
|
298
|
+
"SavingsDecisionData": ".types",
|
|
299
|
+
"SavingsDecisionResponse": ".types",
|
|
300
|
+
"SpendingByDateItem": ".types",
|
|
301
|
+
"TopRecommendation": ".types",
|
|
302
|
+
"TriggerInfo": ".types",
|
|
303
|
+
"UnauthorizedError": ".errors",
|
|
304
|
+
"UnprocessableEntityError": ".errors",
|
|
305
|
+
"UpdateTagData": ".types",
|
|
306
|
+
"UpdateTagResponse": ".types",
|
|
307
|
+
"ValidationError": ".types",
|
|
308
|
+
"ValidationErrorLocItem": ".types",
|
|
309
|
+
"api_keys": ".api_keys",
|
|
310
|
+
"evaluation": ".evaluation",
|
|
311
|
+
"health": ".health",
|
|
312
|
+
"pr_analysis": ".pr_analysis",
|
|
313
|
+
"pr_analysis_actions": ".pr_analysis_actions",
|
|
314
|
+
"pr_analysis_installations": ".pr_analysis_installations",
|
|
315
|
+
"providers": ".providers",
|
|
316
|
+
"recommendations": ".recommendations",
|
|
317
|
+
"savings": ".savings",
|
|
318
|
+
"spending": ".spending",
|
|
319
|
+
"webhooks": ".webhooks",
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
def __getattr__(attr_name: str) -> typing.Any:
|
|
324
|
+
module_name = _dynamic_imports.get(attr_name)
|
|
325
|
+
if module_name is None:
|
|
326
|
+
raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
|
|
327
|
+
try:
|
|
328
|
+
module = import_module(module_name, __package__)
|
|
329
|
+
if module_name == f".{attr_name}":
|
|
330
|
+
return module
|
|
331
|
+
else:
|
|
332
|
+
return getattr(module, attr_name)
|
|
333
|
+
except ImportError as e:
|
|
334
|
+
raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
|
|
335
|
+
except AttributeError as e:
|
|
336
|
+
raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
def __dir__():
|
|
340
|
+
lazy_attrs = list(_dynamic_imports.keys())
|
|
341
|
+
return sorted(lazy_attrs)
|
|
342
|
+
|
|
343
|
+
|
|
344
|
+
__all__ = [
|
|
345
|
+
"AcceptTermsData",
|
|
346
|
+
"AcceptTermsResponse",
|
|
347
|
+
"ActionRequest",
|
|
348
|
+
"ApiKeyCreatedData",
|
|
349
|
+
"ApiKeyData",
|
|
350
|
+
"AsyncBaseLevelFour",
|
|
351
|
+
"AsyncLevelFour",
|
|
352
|
+
"AsyncPageIterator",
|
|
353
|
+
"AuthenticationError",
|
|
354
|
+
"AuthorizationError",
|
|
355
|
+
"BadRequestError",
|
|
356
|
+
"BaseLevelFour",
|
|
357
|
+
"ComparisonItem",
|
|
358
|
+
"CompleteWizardData",
|
|
359
|
+
"CompleteWizardResponse",
|
|
360
|
+
"ConflictError",
|
|
361
|
+
"CostBreakdownData",
|
|
362
|
+
"CostBreakdownItem",
|
|
363
|
+
"CostBreakdownRawData",
|
|
364
|
+
"CostBreakdownRawResponse",
|
|
365
|
+
"CostBreakdownResponse",
|
|
366
|
+
"CostsBreakdownChartData",
|
|
367
|
+
"CostsBreakdownChartResponse",
|
|
368
|
+
"CostsBreakdownDataPoint",
|
|
369
|
+
"CostsBreakdownGroupedChartData",
|
|
370
|
+
"CostsBreakdownGroupedChartResponse",
|
|
371
|
+
"CostsBreakdownGroupedDataPoint",
|
|
372
|
+
"CostsBreakdownTotals",
|
|
373
|
+
"CreateApiKeyRequestScope",
|
|
374
|
+
"CreateApiKeyResponse",
|
|
375
|
+
"DailySpendingBreakdownData",
|
|
376
|
+
"DailySpendingBreakdownResponse",
|
|
377
|
+
"DailySpendingDataPoint",
|
|
378
|
+
"DashboardSummaryData",
|
|
379
|
+
"DashboardSummaryResponse",
|
|
380
|
+
"DeleteEndpointData",
|
|
381
|
+
"DeleteEndpointResponse",
|
|
382
|
+
"EndpointData",
|
|
383
|
+
"ErrorResponse",
|
|
384
|
+
"ErrorResponseError",
|
|
385
|
+
"EvaluationStatusData",
|
|
386
|
+
"EvaluationStatusResponse",
|
|
387
|
+
"ExecutionLogCommand",
|
|
388
|
+
"ExecutionLogEntry",
|
|
389
|
+
"ExecutionStepSchema",
|
|
390
|
+
"ForbiddenError",
|
|
391
|
+
"HttpValidationError",
|
|
392
|
+
"ImplementationMethodData",
|
|
393
|
+
"ImplementationMethodResponse",
|
|
394
|
+
"ImplementationStep",
|
|
395
|
+
"InternalServerError",
|
|
396
|
+
"LevelFour",
|
|
397
|
+
"LevelFourError",
|
|
398
|
+
"ListApiKeysData",
|
|
399
|
+
"ListApiKeysResponse",
|
|
400
|
+
"ListBreakdownSpendingResponse",
|
|
401
|
+
"ListEndpointsResponse",
|
|
402
|
+
"ListSpendingBreakdownProvidersResponse",
|
|
403
|
+
"MetricDataPoint",
|
|
404
|
+
"MetricSeries",
|
|
405
|
+
"MetricSeriesEntry",
|
|
406
|
+
"MonthlySpendingData",
|
|
407
|
+
"MonthlySpendingDataPoint",
|
|
408
|
+
"MonthlySpendingResponse",
|
|
409
|
+
"NotFoundError",
|
|
410
|
+
"PageIterator",
|
|
411
|
+
"PaginationMeta",
|
|
412
|
+
"ProcessingRecommendationItem",
|
|
413
|
+
"ProcessingRecommendationsData",
|
|
414
|
+
"ProcessingRecommendationsResponse",
|
|
415
|
+
"Provider",
|
|
416
|
+
"ProviderBreakdownData",
|
|
417
|
+
"ProviderBreakdownItem",
|
|
418
|
+
"ProviderBreakdownResponse",
|
|
419
|
+
"ProviderFilterOptionsData",
|
|
420
|
+
"ProviderFilterOptionsResponse",
|
|
421
|
+
"ProviderPotentialSavingsSummaryData",
|
|
422
|
+
"ProviderPotentialSavingsSummaryResponse",
|
|
423
|
+
"ProviderRecommendationsSummaryData",
|
|
424
|
+
"ProviderRecommendationsSummaryResponse",
|
|
425
|
+
"ProviderSavedSummaryData",
|
|
426
|
+
"ProviderSavedSummaryResponse",
|
|
427
|
+
"ProviderServiceBreakdownData",
|
|
428
|
+
"ProviderServiceBreakdownItem",
|
|
429
|
+
"ProviderServiceBreakdownRawData",
|
|
430
|
+
"ProviderServiceBreakdownRawResponse",
|
|
431
|
+
"ProviderServiceBreakdownResponse",
|
|
432
|
+
"ProviderServiceCostsBreakdownData",
|
|
433
|
+
"ProviderServiceCostsBreakdownResponse",
|
|
434
|
+
"ProviderServiceCostsDataPoint",
|
|
435
|
+
"ProviderSpending",
|
|
436
|
+
"ProviderSpendingSummaryData",
|
|
437
|
+
"ProviderSpendingSummaryResponse",
|
|
438
|
+
"ProviderTimelineData",
|
|
439
|
+
"ProviderTimelineResponse",
|
|
440
|
+
"ProviderTopService",
|
|
441
|
+
"ProvidersSummaryData",
|
|
442
|
+
"ProvidersSummaryResponse",
|
|
443
|
+
"RateLimitError",
|
|
444
|
+
"RecommendationActions",
|
|
445
|
+
"RecommendationDetail",
|
|
446
|
+
"RecommendationDetailResponse",
|
|
447
|
+
"RecommendationFilterOptionsData",
|
|
448
|
+
"RecommendationFilterOptionsResponse",
|
|
449
|
+
"RecommendationItem",
|
|
450
|
+
"RecommendationWizardData",
|
|
451
|
+
"RecommendationWizardDataMetrics",
|
|
452
|
+
"RecommendationWizardResponse",
|
|
453
|
+
"RecommendationsBreakdownData",
|
|
454
|
+
"RecommendationsBreakdownResponse",
|
|
455
|
+
"RecommendationsOverviewData",
|
|
456
|
+
"RecommendationsOverviewResponse",
|
|
457
|
+
"RegisterEndpointResponse",
|
|
458
|
+
"ResourceChange",
|
|
459
|
+
"ResourceSnapshot",
|
|
460
|
+
"RevokeApiKeyData",
|
|
461
|
+
"RevokeApiKeyResponse",
|
|
462
|
+
"RiskAssessment",
|
|
463
|
+
"RiskFactor",
|
|
464
|
+
"SavedBreakdownData",
|
|
465
|
+
"SavedBreakdownResponse",
|
|
466
|
+
"SavedByProviderBreakdownData",
|
|
467
|
+
"SavedByProviderBreakdownResponse",
|
|
468
|
+
"SavedByProviderItem",
|
|
469
|
+
"SavedItem",
|
|
470
|
+
"SavedProviderSummary",
|
|
471
|
+
"SavedSummaryData",
|
|
472
|
+
"SavedSummaryResponse",
|
|
473
|
+
"SavingsDecisionData",
|
|
474
|
+
"SavingsDecisionResponse",
|
|
475
|
+
"SpendingByDateItem",
|
|
476
|
+
"TopRecommendation",
|
|
477
|
+
"TriggerInfo",
|
|
478
|
+
"UnauthorizedError",
|
|
479
|
+
"UnprocessableEntityError",
|
|
480
|
+
"UpdateTagData",
|
|
481
|
+
"UpdateTagResponse",
|
|
482
|
+
"ValidationError",
|
|
483
|
+
"ValidationErrorLocItem",
|
|
484
|
+
"api_keys",
|
|
485
|
+
"evaluation",
|
|
486
|
+
"health",
|
|
487
|
+
"pr_analysis",
|
|
488
|
+
"pr_analysis_actions",
|
|
489
|
+
"pr_analysis_installations",
|
|
490
|
+
"providers",
|
|
491
|
+
"recommendations",
|
|
492
|
+
"savings",
|
|
493
|
+
"spending",
|
|
494
|
+
"webhooks",
|
|
495
|
+
]
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
# isort: skip_file
|
|
4
|
+
|
|
5
|
+
import typing
|
|
6
|
+
from importlib import import_module
|
|
7
|
+
|
|
8
|
+
if typing.TYPE_CHECKING:
|
|
9
|
+
from .types import CreateApiKeyRequestScope
|
|
10
|
+
_dynamic_imports: typing.Dict[str, str] = {"CreateApiKeyRequestScope": ".types"}
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def __getattr__(attr_name: str) -> typing.Any:
|
|
14
|
+
module_name = _dynamic_imports.get(attr_name)
|
|
15
|
+
if module_name is None:
|
|
16
|
+
raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
|
|
17
|
+
try:
|
|
18
|
+
module = import_module(module_name, __package__)
|
|
19
|
+
if module_name == f".{attr_name}":
|
|
20
|
+
return module
|
|
21
|
+
else:
|
|
22
|
+
return getattr(module, attr_name)
|
|
23
|
+
except ImportError as e:
|
|
24
|
+
raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
|
|
25
|
+
except AttributeError as e:
|
|
26
|
+
raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def __dir__():
|
|
30
|
+
lazy_attrs = list(_dynamic_imports.keys())
|
|
31
|
+
return sorted(lazy_attrs)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
__all__ = ["CreateApiKeyRequestScope"]
|