diff --git a/.gitignore b/.gitignore
index 65b06b9..9e274a9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -64,3 +64,6 @@ target/
# Ipython Notebook
.ipynb_checkpoints
+
+# Build artifacts
+api/bundled/
diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES
index cb8d6a8..bdbff12 100644
--- a/.openapi-generator/FILES
+++ b/.openapi-generator/FILES
@@ -1,418 +1,113 @@
-.github/workflows/python.yml
-.gitignore
-.gitlab-ci.yml
-.travis.yml
-README.md
-docs/AapProviderSpec.md
-docs/AbsolutePath.md
-docs/AppType.md
-docs/ApplicationContent.md
-docs/ApplicationEnvVars.md
-docs/ApplicationProviderSpec.md
-docs/ApplicationResourceLimits.md
-docs/ApplicationResources.md
-docs/ApplicationStatusType.md
-docs/ApplicationVolume.md
-docs/ApplicationVolumeProviderSpec.md
-docs/ApplicationVolumeReclaimPolicy.md
-docs/ApplicationVolumeStatus.md
-docs/ApplicationsSummaryStatusType.md
-docs/AuthConfig.md
-docs/AuthDynamicOrganizationAssignment.md
-docs/AuthDynamicRoleAssignment.md
-docs/AuthOrganizationAssignment.md
-docs/AuthPerUserOrganizationAssignment.md
-docs/AuthProvider.md
-docs/AuthProviderList.md
-docs/AuthProviderSpec.md
-docs/AuthRoleAssignment.md
-docs/AuthStaticOrganizationAssignment.md
-docs/AuthStaticRoleAssignment.md
-docs/AuthenticationApi.md
-docs/AuthproviderApi.md
-docs/Batch.md
-docs/BatchLimit.md
-docs/BatchSequence.md
-docs/CertificateSigningRequest.md
-docs/CertificateSigningRequestList.md
-docs/CertificateSigningRequestSpec.md
-docs/CertificateSigningRequestStatus.md
-docs/CertificatesigningrequestApi.md
-docs/Condition.md
-docs/ConditionStatus.md
-docs/ConditionType.md
-docs/ConfigProviderSpec.md
-docs/CpuResourceMonitorSpec.md
-docs/Device.md
-docs/DeviceApi.md
-docs/DeviceApplicationStatus.md
-docs/DeviceApplicationsSummaryStatus.md
-docs/DeviceConfigStatus.md
-docs/DeviceConsole.md
-docs/DeviceDecommission.md
-docs/DeviceDecommissionTargetType.md
-docs/DeviceIntegrityCheckStatus.md
-docs/DeviceIntegrityCheckStatusType.md
-docs/DeviceIntegrityStatus.md
-docs/DeviceIntegrityStatusSummaryType.md
-docs/DeviceLastSeen.md
-docs/DeviceLifecycleHookType.md
-docs/DeviceLifecycleStatus.md
-docs/DeviceLifecycleStatusType.md
-docs/DeviceList.md
-docs/DeviceMultipleOwnersDetectedDetails.md
-docs/DeviceMultipleOwnersResolvedDetails.md
-docs/DeviceOsSpec.md
-docs/DeviceOsStatus.md
-docs/DeviceOwnershipChangedDetails.md
-docs/DeviceResourceStatus.md
-docs/DeviceResourceStatusType.md
-docs/DeviceResumeRequest.md
-docs/DeviceResumeResponse.md
-docs/DeviceSpec.md
-docs/DeviceSpecSystemd.md
-docs/DeviceStatus.md
-docs/DeviceSummaryStatus.md
-docs/DeviceSummaryStatusType.md
-docs/DeviceSystemInfo.md
-docs/DeviceUpdatePolicySpec.md
-docs/DeviceUpdatedStatus.md
-docs/DeviceUpdatedStatusType.md
-docs/DeviceactionsApi.md
-docs/DevicesSummary.md
-docs/DiskResourceMonitorSpec.md
-docs/DisruptionBudget.md
-docs/EncodingType.md
-docs/EnrollmentConfig.md
-docs/EnrollmentRequest.md
-docs/EnrollmentRequestApproval.md
-docs/EnrollmentRequestApprovalStatus.md
-docs/EnrollmentRequestList.md
-docs/EnrollmentRequestSpec.md
-docs/EnrollmentRequestStatus.md
-docs/EnrollmentService.md
-docs/EnrollmentServiceAuth.md
-docs/EnrollmentServiceService.md
-docs/EnrollmentrequestApi.md
-docs/Event.md
-docs/EventApi.md
-docs/EventDetails.md
-docs/EventList.md
-docs/EventSource.md
-docs/FileContent.md
-docs/FileMetadata.md
-docs/FileOperation.md
-docs/FileSpec.md
-docs/Fleet.md
-docs/FleetApi.md
-docs/FleetList.md
-docs/FleetRolloutBatchCompletedDetails.md
-docs/FleetRolloutBatchDispatchedDetails.md
-docs/FleetRolloutCompletedDetails.md
-docs/FleetRolloutDeviceSelectedDetails.md
-docs/FleetRolloutFailedDetails.md
-docs/FleetRolloutStartedDetails.md
-docs/FleetRolloutStatus.md
-docs/FleetSpec.md
-docs/FleetSpecTemplate.md
-docs/FleetStatus.md
-docs/GenericRepoSpec.md
-docs/GitConfigProviderSpec.md
-docs/GitConfigProviderSpecGitRef.md
-docs/GitHubIntrospectionSpec.md
-docs/HookAction.md
-docs/HookActionRun.md
-docs/HookCondition.md
-docs/HookConditionPathOp.md
-docs/HttpConfig.md
-docs/HttpConfigProviderSpec.md
-docs/HttpConfigProviderSpecHttpRef.md
-docs/HttpRepoSpec.md
-docs/ImageApplicationProviderSpec.md
-docs/ImageMountVolumeProviderSpec.md
-docs/ImagePullPolicy.md
-docs/ImageVolumeProviderSpec.md
-docs/ImageVolumeSource.md
-docs/InlineApplicationProviderSpec.md
-docs/InlineConfigProviderSpec.md
-docs/InternalTaskFailedDetails.md
-docs/InternalTaskPermanentlyFailedDetails.md
-docs/JwtIntrospectionSpec.md
-docs/K8sProviderSpec.md
-docs/KubernetesSecretProviderSpec.md
-docs/KubernetesSecretProviderSpecSecretRef.md
-docs/LabelApi.md
-docs/LabelSelector.md
-docs/ListMeta.md
-docs/MatchExpression.md
-docs/MemoryResourceMonitorSpec.md
-docs/MountVolumeProviderSpec.md
-docs/OAuth2Introspection.md
-docs/OAuth2ProviderSpec.md
-docs/OIDCProviderSpec.md
-docs/ObjectMeta.md
-docs/ObjectReference.md
-docs/OpenShiftProviderSpec.md
-docs/Organization.md
-docs/OrganizationApi.md
-docs/OrganizationList.md
-docs/OrganizationSpec.md
-docs/PatchRequestInner.md
-docs/Permission.md
-docs/PermissionList.md
-docs/ReferencedRepositoryUpdatedDetails.md
-docs/RelativePath.md
-docs/RepoSpecType.md
-docs/Repository.md
-docs/RepositoryApi.md
-docs/RepositoryList.md
-docs/RepositorySpec.md
-docs/RepositoryStatus.md
-docs/ResourceAlertRule.md
-docs/ResourceAlertSeverityType.md
-docs/ResourceKind.md
-docs/ResourceMonitor.md
-docs/ResourceMonitorSpec.md
-docs/ResourceSync.md
-docs/ResourceSyncCompletedDetails.md
-docs/ResourceSyncList.md
-docs/ResourceSyncSpec.md
-docs/ResourceSyncStatus.md
-docs/ResourceUpdatedDetails.md
-docs/ResourcesyncApi.md
-docs/Rfc7662IntrospectionSpec.md
-docs/RolloutPolicy.md
-docs/RolloutStrategy.md
-docs/SshConfig.md
-docs/SshRepoSpec.md
-docs/Status.md
-docs/SystemdActiveStateType.md
-docs/SystemdEnableStateType.md
-docs/SystemdLoadStateType.md
-docs/SystemdUnitStatus.md
-docs/TemplateVersion.md
-docs/TemplateVersionList.md
-docs/TemplateVersionSpec.md
-docs/TemplateVersionStatus.md
-docs/TokenRequest.md
-docs/TokenResponse.md
-docs/UpdateSchedule.md
-docs/UserInfoResponse.md
-docs/Version.md
-docs/VersionApi.md
-docs/VolumeMount.md
flightctl/__init__.py
-flightctl/api/__init__.py
-flightctl/api/authentication_api.py
-flightctl/api/authprovider_api.py
-flightctl/api/certificatesigningrequest_api.py
-flightctl/api/device_api.py
-flightctl/api/deviceactions_api.py
-flightctl/api/enrollmentrequest_api.py
-flightctl/api/event_api.py
-flightctl/api/fleet_api.py
-flightctl/api/label_api.py
-flightctl/api/organization_api.py
-flightctl/api/repository_api.py
-flightctl/api/resourcesync_api.py
-flightctl/api/version_api.py
-flightctl/api_client.py
-flightctl/api_response.py
-flightctl/configuration.py
-flightctl/exceptions.py
-flightctl/models/__init__.py
-flightctl/models/aap_provider_spec.py
-flightctl/models/absolute_path.py
-flightctl/models/app_type.py
-flightctl/models/application_content.py
-flightctl/models/application_env_vars.py
-flightctl/models/application_provider_spec.py
-flightctl/models/application_resource_limits.py
-flightctl/models/application_resources.py
-flightctl/models/application_status_type.py
-flightctl/models/application_volume.py
-flightctl/models/application_volume_provider_spec.py
-flightctl/models/application_volume_reclaim_policy.py
-flightctl/models/application_volume_status.py
-flightctl/models/applications_summary_status_type.py
-flightctl/models/auth_config.py
-flightctl/models/auth_dynamic_organization_assignment.py
-flightctl/models/auth_dynamic_role_assignment.py
-flightctl/models/auth_organization_assignment.py
-flightctl/models/auth_per_user_organization_assignment.py
-flightctl/models/auth_provider.py
-flightctl/models/auth_provider_list.py
-flightctl/models/auth_provider_spec.py
-flightctl/models/auth_role_assignment.py
-flightctl/models/auth_static_organization_assignment.py
-flightctl/models/auth_static_role_assignment.py
-flightctl/models/batch.py
-flightctl/models/batch_limit.py
-flightctl/models/batch_sequence.py
-flightctl/models/certificate_signing_request.py
-flightctl/models/certificate_signing_request_list.py
-flightctl/models/certificate_signing_request_spec.py
-flightctl/models/certificate_signing_request_status.py
-flightctl/models/condition.py
-flightctl/models/condition_status.py
-flightctl/models/condition_type.py
-flightctl/models/config_provider_spec.py
-flightctl/models/cpu_resource_monitor_spec.py
-flightctl/models/device.py
-flightctl/models/device_application_status.py
-flightctl/models/device_applications_summary_status.py
-flightctl/models/device_config_status.py
-flightctl/models/device_console.py
-flightctl/models/device_decommission.py
-flightctl/models/device_decommission_target_type.py
-flightctl/models/device_integrity_check_status.py
-flightctl/models/device_integrity_check_status_type.py
-flightctl/models/device_integrity_status.py
-flightctl/models/device_integrity_status_summary_type.py
-flightctl/models/device_last_seen.py
-flightctl/models/device_lifecycle_hook_type.py
-flightctl/models/device_lifecycle_status.py
-flightctl/models/device_lifecycle_status_type.py
-flightctl/models/device_list.py
-flightctl/models/device_multiple_owners_detected_details.py
-flightctl/models/device_multiple_owners_resolved_details.py
-flightctl/models/device_os_spec.py
-flightctl/models/device_os_status.py
-flightctl/models/device_ownership_changed_details.py
-flightctl/models/device_resource_status.py
-flightctl/models/device_resource_status_type.py
-flightctl/models/device_resume_request.py
-flightctl/models/device_resume_response.py
-flightctl/models/device_spec.py
-flightctl/models/device_spec_systemd.py
-flightctl/models/device_status.py
-flightctl/models/device_summary_status.py
-flightctl/models/device_summary_status_type.py
-flightctl/models/device_system_info.py
-flightctl/models/device_update_policy_spec.py
-flightctl/models/device_updated_status.py
-flightctl/models/device_updated_status_type.py
-flightctl/models/devices_summary.py
-flightctl/models/disk_resource_monitor_spec.py
-flightctl/models/disruption_budget.py
-flightctl/models/encoding_type.py
-flightctl/models/enrollment_config.py
-flightctl/models/enrollment_request.py
-flightctl/models/enrollment_request_approval.py
-flightctl/models/enrollment_request_approval_status.py
-flightctl/models/enrollment_request_list.py
-flightctl/models/enrollment_request_spec.py
-flightctl/models/enrollment_request_status.py
-flightctl/models/enrollment_service.py
-flightctl/models/enrollment_service_auth.py
-flightctl/models/enrollment_service_service.py
-flightctl/models/event.py
-flightctl/models/event_details.py
-flightctl/models/event_list.py
-flightctl/models/event_source.py
-flightctl/models/file_content.py
-flightctl/models/file_metadata.py
-flightctl/models/file_operation.py
-flightctl/models/file_spec.py
-flightctl/models/fleet.py
-flightctl/models/fleet_list.py
-flightctl/models/fleet_rollout_batch_completed_details.py
-flightctl/models/fleet_rollout_batch_dispatched_details.py
-flightctl/models/fleet_rollout_completed_details.py
-flightctl/models/fleet_rollout_device_selected_details.py
-flightctl/models/fleet_rollout_failed_details.py
-flightctl/models/fleet_rollout_started_details.py
-flightctl/models/fleet_rollout_status.py
-flightctl/models/fleet_spec.py
-flightctl/models/fleet_spec_template.py
-flightctl/models/fleet_status.py
-flightctl/models/generic_repo_spec.py
-flightctl/models/git_config_provider_spec.py
-flightctl/models/git_config_provider_spec_git_ref.py
-flightctl/models/git_hub_introspection_spec.py
-flightctl/models/hook_action.py
-flightctl/models/hook_action_run.py
-flightctl/models/hook_condition.py
-flightctl/models/hook_condition_path_op.py
-flightctl/models/http_config.py
-flightctl/models/http_config_provider_spec.py
-flightctl/models/http_config_provider_spec_http_ref.py
-flightctl/models/http_repo_spec.py
-flightctl/models/image_application_provider_spec.py
-flightctl/models/image_mount_volume_provider_spec.py
-flightctl/models/image_pull_policy.py
-flightctl/models/image_volume_provider_spec.py
-flightctl/models/image_volume_source.py
-flightctl/models/inline_application_provider_spec.py
-flightctl/models/inline_config_provider_spec.py
-flightctl/models/internal_task_failed_details.py
-flightctl/models/internal_task_permanently_failed_details.py
-flightctl/models/jwt_introspection_spec.py
-flightctl/models/k8s_provider_spec.py
-flightctl/models/kubernetes_secret_provider_spec.py
-flightctl/models/kubernetes_secret_provider_spec_secret_ref.py
-flightctl/models/label_selector.py
-flightctl/models/list_meta.py
-flightctl/models/match_expression.py
-flightctl/models/memory_resource_monitor_spec.py
-flightctl/models/mount_volume_provider_spec.py
-flightctl/models/o_auth2_introspection.py
-flightctl/models/o_auth2_provider_spec.py
-flightctl/models/object_meta.py
-flightctl/models/object_reference.py
-flightctl/models/oidc_provider_spec.py
-flightctl/models/open_shift_provider_spec.py
-flightctl/models/organization.py
-flightctl/models/organization_list.py
-flightctl/models/organization_spec.py
-flightctl/models/patch_request_inner.py
-flightctl/models/permission.py
-flightctl/models/permission_list.py
-flightctl/models/referenced_repository_updated_details.py
-flightctl/models/relative_path.py
-flightctl/models/repo_spec_type.py
-flightctl/models/repository.py
-flightctl/models/repository_list.py
-flightctl/models/repository_spec.py
-flightctl/models/repository_status.py
-flightctl/models/resource_alert_rule.py
-flightctl/models/resource_alert_severity_type.py
-flightctl/models/resource_kind.py
-flightctl/models/resource_monitor.py
-flightctl/models/resource_monitor_spec.py
-flightctl/models/resource_sync.py
-flightctl/models/resource_sync_completed_details.py
-flightctl/models/resource_sync_list.py
-flightctl/models/resource_sync_spec.py
-flightctl/models/resource_sync_status.py
-flightctl/models/resource_updated_details.py
-flightctl/models/rfc7662_introspection_spec.py
-flightctl/models/rollout_policy.py
-flightctl/models/rollout_strategy.py
-flightctl/models/ssh_config.py
-flightctl/models/ssh_repo_spec.py
-flightctl/models/status.py
-flightctl/models/systemd_active_state_type.py
-flightctl/models/systemd_enable_state_type.py
-flightctl/models/systemd_load_state_type.py
-flightctl/models/systemd_unit_status.py
-flightctl/models/template_version.py
-flightctl/models/template_version_list.py
-flightctl/models/template_version_spec.py
-flightctl/models/template_version_status.py
-flightctl/models/token_request.py
-flightctl/models/token_response.py
-flightctl/models/update_schedule.py
-flightctl/models/user_info_response.py
-flightctl/models/version.py
-flightctl/models/volume_mount.py
-flightctl/py.typed
-flightctl/rest.py
-git_push.sh
-pyproject.toml
-requirements.txt
-setup.cfg
-setup.py
-test-requirements.txt
-test/__init__.py
-tox.ini
+flightctl/imagebuilder/__init__.py
+flightctl/imagebuilder/api/__init__.py
+flightctl/imagebuilder/api/imagebuild_api.py
+flightctl/imagebuilder/api/imageexport_api.py
+flightctl/imagebuilder/api_client.py
+flightctl/imagebuilder/api_response.py
+flightctl/imagebuilder/configuration.py
+flightctl/imagebuilder/docs/ApiVersion.md
+flightctl/imagebuilder/docs/BindingType.md
+flightctl/imagebuilder/docs/ConditionBase.md
+flightctl/imagebuilder/docs/ConditionStatus.md
+flightctl/imagebuilder/docs/EarlyBinding.md
+flightctl/imagebuilder/docs/ExportFormatType.md
+flightctl/imagebuilder/docs/ImageBuild.md
+flightctl/imagebuilder/docs/ImageBuildBinding.md
+flightctl/imagebuilder/docs/ImageBuildCondition.md
+flightctl/imagebuilder/docs/ImageBuildConditionReason.md
+flightctl/imagebuilder/docs/ImageBuildConditionType.md
+flightctl/imagebuilder/docs/ImageBuildDestination.md
+flightctl/imagebuilder/docs/ImageBuildList.md
+flightctl/imagebuilder/docs/ImageBuildRefSource.md
+flightctl/imagebuilder/docs/ImageBuildSource.md
+flightctl/imagebuilder/docs/ImageBuildSpec.md
+flightctl/imagebuilder/docs/ImageBuildStatus.md
+flightctl/imagebuilder/docs/ImageBuildUserConfiguration.md
+flightctl/imagebuilder/docs/ImageExport.md
+flightctl/imagebuilder/docs/ImageExportCondition.md
+flightctl/imagebuilder/docs/ImageExportConditionReason.md
+flightctl/imagebuilder/docs/ImageExportConditionType.md
+flightctl/imagebuilder/docs/ImageExportFormatPhase.md
+flightctl/imagebuilder/docs/ImageExportList.md
+flightctl/imagebuilder/docs/ImageExportSourceType.md
+flightctl/imagebuilder/docs/ImageExportSpec.md
+flightctl/imagebuilder/docs/ImageExportStatus.md
+flightctl/imagebuilder/docs/ImagebuildApi.md
+flightctl/imagebuilder/docs/ImageexportApi.md
+flightctl/imagebuilder/docs/LateBinding.md
+flightctl/imagebuilder/docs/ListMeta.md
+flightctl/imagebuilder/docs/ObjectMeta.md
+flightctl/imagebuilder/docs/ResourceKind.md
+flightctl/imagebuilder/docs/Status.md
+flightctl/imagebuilder/exceptions.py
+flightctl/imagebuilder/models/__init__.py
+flightctl/imagebuilder/models/api_version.py
+flightctl/imagebuilder/models/binding_type.py
+flightctl/imagebuilder/models/condition_base.py
+flightctl/imagebuilder/models/condition_status.py
+flightctl/imagebuilder/models/early_binding.py
+flightctl/imagebuilder/models/export_format_type.py
+flightctl/imagebuilder/models/image_build.py
+flightctl/imagebuilder/models/image_build_binding.py
+flightctl/imagebuilder/models/image_build_condition.py
+flightctl/imagebuilder/models/image_build_condition_reason.py
+flightctl/imagebuilder/models/image_build_condition_type.py
+flightctl/imagebuilder/models/image_build_destination.py
+flightctl/imagebuilder/models/image_build_list.py
+flightctl/imagebuilder/models/image_build_ref_source.py
+flightctl/imagebuilder/models/image_build_source.py
+flightctl/imagebuilder/models/image_build_spec.py
+flightctl/imagebuilder/models/image_build_status.py
+flightctl/imagebuilder/models/image_build_user_configuration.py
+flightctl/imagebuilder/models/image_export.py
+flightctl/imagebuilder/models/image_export_condition.py
+flightctl/imagebuilder/models/image_export_condition_reason.py
+flightctl/imagebuilder/models/image_export_condition_type.py
+flightctl/imagebuilder/models/image_export_format_phase.py
+flightctl/imagebuilder/models/image_export_list.py
+flightctl/imagebuilder/models/image_export_source_type.py
+flightctl/imagebuilder/models/image_export_spec.py
+flightctl/imagebuilder/models/image_export_status.py
+flightctl/imagebuilder/models/late_binding.py
+flightctl/imagebuilder/models/list_meta.py
+flightctl/imagebuilder/models/object_meta.py
+flightctl/imagebuilder/models/resource_kind.py
+flightctl/imagebuilder/models/status.py
+flightctl/imagebuilder/rest.py
+flightctl/imagebuilder/test/__init__.py
+flightctl/imagebuilder/test/test_api_version.py
+flightctl/imagebuilder/test/test_binding_type.py
+flightctl/imagebuilder/test/test_condition_base.py
+flightctl/imagebuilder/test/test_condition_status.py
+flightctl/imagebuilder/test/test_early_binding.py
+flightctl/imagebuilder/test/test_export_format_type.py
+flightctl/imagebuilder/test/test_image_build.py
+flightctl/imagebuilder/test/test_image_build_binding.py
+flightctl/imagebuilder/test/test_image_build_condition.py
+flightctl/imagebuilder/test/test_image_build_condition_reason.py
+flightctl/imagebuilder/test/test_image_build_condition_type.py
+flightctl/imagebuilder/test/test_image_build_destination.py
+flightctl/imagebuilder/test/test_image_build_list.py
+flightctl/imagebuilder/test/test_image_build_ref_source.py
+flightctl/imagebuilder/test/test_image_build_source.py
+flightctl/imagebuilder/test/test_image_build_spec.py
+flightctl/imagebuilder/test/test_image_build_status.py
+flightctl/imagebuilder/test/test_image_build_user_configuration.py
+flightctl/imagebuilder/test/test_image_export.py
+flightctl/imagebuilder/test/test_image_export_condition.py
+flightctl/imagebuilder/test/test_image_export_condition_reason.py
+flightctl/imagebuilder/test/test_image_export_condition_type.py
+flightctl/imagebuilder/test/test_image_export_format_phase.py
+flightctl/imagebuilder/test/test_image_export_list.py
+flightctl/imagebuilder/test/test_image_export_source_type.py
+flightctl/imagebuilder/test/test_image_export_spec.py
+flightctl/imagebuilder/test/test_image_export_status.py
+flightctl/imagebuilder/test/test_imagebuild_api.py
+flightctl/imagebuilder/test/test_imageexport_api.py
+flightctl/imagebuilder/test/test_late_binding.py
+flightctl/imagebuilder/test/test_list_meta.py
+flightctl/imagebuilder/test/test_object_meta.py
+flightctl/imagebuilder/test/test_resource_kind.py
+flightctl/imagebuilder/test/test_status.py
+flightctl/imagebuilder_README.md
diff --git a/Makefile b/Makefile
index 325de86..243d49d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,49 @@
-generate-client:
- npx @openapitools/openapi-generator-cli version-manager set 7.17.0
+VERSION = 1.1.0
+GENERATOR_VERSION = 7.17.0
+COMMON_PROPS = packageName=flightctl,useOneOfDiscriminatorLookup=true,packageVersion=$(VERSION)
+GIT_USER = flightctl
+GIT_REPO = python-client
+
+.PHONY: generate-client generate-core generate-v1alpha1 generate-imagebuilder bundle-specs
+
+# Bundle specs (resolve $refs into self-contained files)
+bundle-specs:
+ @mkdir -p api/bundled
+ npx @redocly/cli bundle api/core/v1beta1/openapi.yaml -o api/bundled/core-v1beta1.yaml
+ npx @redocly/cli bundle api/core/v1alpha1/openapi.yaml -o api/bundled/core-v1alpha1.yaml
+ npx @redocly/cli bundle api/imagebuilder/v1alpha1/openapi.yaml -o api/bundled/imagebuilder-v1alpha1.yaml
+
+# Core v1beta1
+generate-core: bundle-specs
+ npx @openapitools/openapi-generator-cli version-manager set $(GENERATOR_VERSION)
npx @openapitools/openapi-generator-cli generate \
- -g python \
- -i ./api/v1alpha1/openapi.yml \
- -o . \
- --additional-properties=packageName=flightctl,useOneOfDiscriminatorLookup=true \
- --git-user-id flightctl \
- --git-repo-id python-client
+ -g python \
+ -i api/bundled/core-v1beta1.yaml \
+ -o . \
+ --additional-properties=$(COMMON_PROPS) \
+ --git-user-id $(GIT_USER) \
+ --git-repo-id $(GIT_REPO)
+
+# Core v1alpha1
+generate-v1alpha1: bundle-specs
+ npx @openapitools/openapi-generator-cli version-manager set $(GENERATOR_VERSION)
+ npx @openapitools/openapi-generator-cli generate \
+ -g python \
+ -i api/bundled/core-v1alpha1.yaml \
+ -o . \
+ --additional-properties=packageName=flightctl.v1alpha1,useOneOfDiscriminatorLookup=true,generateSourceCodeOnly=true,packageVersion=$(VERSION) \
+ --git-user-id $(GIT_USER) \
+ --git-repo-id $(GIT_REPO)
+
+# ImageBuilder v1alpha1
+generate-imagebuilder: bundle-specs
+ npx @openapitools/openapi-generator-cli version-manager set $(GENERATOR_VERSION)
+ npx @openapitools/openapi-generator-cli generate \
+ -g python \
+ -i api/bundled/imagebuilder-v1alpha1.yaml \
+ -o . \
+ --additional-properties=packageName=flightctl.imagebuilder,useOneOfDiscriminatorLookup=true,generateSourceCodeOnly=true,packageVersion=$(VERSION) \
+ --git-user-id $(GIT_USER) \
+ --git-repo-id $(GIT_REPO)
+
+generate-client: generate-core generate-v1alpha1 generate-imagebuilder
\ No newline at end of file
diff --git a/README.md b/README.md
index 8256b8a..6d65bce 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: v1beta1
-- Package version: 1.0.0
+- Package version: 1.1.0
- Generator version: 7.17.0
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
For more information, please visit [https://flightctl.io](https://flightctl.io)
@@ -57,10 +57,10 @@ import flightctl
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -81,93 +81,96 @@ with flightctl.ApiClient(configuration) as api_client:
## Documentation for API Endpoints
-All URIs are relative to *http://localhost*
+All URIs are relative to */api/v1*
Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
-*AuthenticationApi* | [**auth_config**](docs/AuthenticationApi.md#auth_config) | **GET** /api/v1/auth/config |
-*AuthenticationApi* | [**auth_get_permissions**](docs/AuthenticationApi.md#auth_get_permissions) | **GET** /api/v1/auth/permissions |
-*AuthenticationApi* | [**auth_token**](docs/AuthenticationApi.md#auth_token) | **POST** /api/v1/auth/{providername}/token |
-*AuthenticationApi* | [**auth_user_info**](docs/AuthenticationApi.md#auth_user_info) | **GET** /api/v1/auth/userinfo |
-*AuthenticationApi* | [**auth_validate**](docs/AuthenticationApi.md#auth_validate) | **GET** /api/v1/auth/validate |
-*AuthproviderApi* | [**create_auth_provider**](docs/AuthproviderApi.md#create_auth_provider) | **POST** /api/v1/authproviders |
-*AuthproviderApi* | [**delete_auth_provider**](docs/AuthproviderApi.md#delete_auth_provider) | **DELETE** /api/v1/authproviders/{name} |
-*AuthproviderApi* | [**get_auth_provider**](docs/AuthproviderApi.md#get_auth_provider) | **GET** /api/v1/authproviders/{name} |
-*AuthproviderApi* | [**list_auth_providers**](docs/AuthproviderApi.md#list_auth_providers) | **GET** /api/v1/authproviders |
-*AuthproviderApi* | [**patch_auth_provider**](docs/AuthproviderApi.md#patch_auth_provider) | **PATCH** /api/v1/authproviders/{name} |
-*AuthproviderApi* | [**replace_auth_provider**](docs/AuthproviderApi.md#replace_auth_provider) | **PUT** /api/v1/authproviders/{name} |
-*CertificatesigningrequestApi* | [**create_certificate_signing_request**](docs/CertificatesigningrequestApi.md#create_certificate_signing_request) | **POST** /api/v1/certificatesigningrequests |
-*CertificatesigningrequestApi* | [**delete_certificate_signing_request**](docs/CertificatesigningrequestApi.md#delete_certificate_signing_request) | **DELETE** /api/v1/certificatesigningrequests/{name} |
-*CertificatesigningrequestApi* | [**get_certificate_signing_request**](docs/CertificatesigningrequestApi.md#get_certificate_signing_request) | **GET** /api/v1/certificatesigningrequests/{name} |
-*CertificatesigningrequestApi* | [**list_certificate_signing_requests**](docs/CertificatesigningrequestApi.md#list_certificate_signing_requests) | **GET** /api/v1/certificatesigningrequests |
-*CertificatesigningrequestApi* | [**patch_certificate_signing_request**](docs/CertificatesigningrequestApi.md#patch_certificate_signing_request) | **PATCH** /api/v1/certificatesigningrequests/{name} |
-*CertificatesigningrequestApi* | [**replace_certificate_signing_request**](docs/CertificatesigningrequestApi.md#replace_certificate_signing_request) | **PUT** /api/v1/certificatesigningrequests/{name} |
-*CertificatesigningrequestApi* | [**update_certificate_signing_request_approval**](docs/CertificatesigningrequestApi.md#update_certificate_signing_request_approval) | **PUT** /api/v1/certificatesigningrequests/{name}/approval |
-*DeviceApi* | [**create_device**](docs/DeviceApi.md#create_device) | **POST** /api/v1/devices |
-*DeviceApi* | [**decommission_device**](docs/DeviceApi.md#decommission_device) | **PUT** /api/v1/devices/{name}/decommission |
-*DeviceApi* | [**delete_device**](docs/DeviceApi.md#delete_device) | **DELETE** /api/v1/devices/{name} |
-*DeviceApi* | [**get_device**](docs/DeviceApi.md#get_device) | **GET** /api/v1/devices/{name} |
-*DeviceApi* | [**get_device_last_seen**](docs/DeviceApi.md#get_device_last_seen) | **GET** /api/v1/devices/{name}/lastseen |
-*DeviceApi* | [**get_device_status**](docs/DeviceApi.md#get_device_status) | **GET** /api/v1/devices/{name}/status |
-*DeviceApi* | [**get_rendered_device**](docs/DeviceApi.md#get_rendered_device) | **GET** /api/v1/devices/{name}/rendered |
-*DeviceApi* | [**list_devices**](docs/DeviceApi.md#list_devices) | **GET** /api/v1/devices |
-*DeviceApi* | [**patch_device**](docs/DeviceApi.md#patch_device) | **PATCH** /api/v1/devices/{name} |
-*DeviceApi* | [**patch_device_status**](docs/DeviceApi.md#patch_device_status) | **PATCH** /api/v1/devices/{name}/status |
-*DeviceApi* | [**replace_device**](docs/DeviceApi.md#replace_device) | **PUT** /api/v1/devices/{name} |
-*DeviceApi* | [**replace_device_status**](docs/DeviceApi.md#replace_device_status) | **PUT** /api/v1/devices/{name}/status |
-*DeviceactionsApi* | [**resume_devices**](docs/DeviceactionsApi.md#resume_devices) | **POST** /api/v1/deviceactions/resume |
-*EnrollmentrequestApi* | [**approve_enrollment_request**](docs/EnrollmentrequestApi.md#approve_enrollment_request) | **PUT** /api/v1/enrollmentrequests/{name}/approval |
-*EnrollmentrequestApi* | [**create_enrollment_request**](docs/EnrollmentrequestApi.md#create_enrollment_request) | **POST** /api/v1/enrollmentrequests |
-*EnrollmentrequestApi* | [**delete_enrollment_request**](docs/EnrollmentrequestApi.md#delete_enrollment_request) | **DELETE** /api/v1/enrollmentrequests/{name} |
-*EnrollmentrequestApi* | [**get_enrollment_config**](docs/EnrollmentrequestApi.md#get_enrollment_config) | **GET** /api/v1/enrollmentconfig |
-*EnrollmentrequestApi* | [**get_enrollment_request**](docs/EnrollmentrequestApi.md#get_enrollment_request) | **GET** /api/v1/enrollmentrequests/{name} |
-*EnrollmentrequestApi* | [**get_enrollment_request_status**](docs/EnrollmentrequestApi.md#get_enrollment_request_status) | **GET** /api/v1/enrollmentrequests/{name}/status |
-*EnrollmentrequestApi* | [**list_enrollment_requests**](docs/EnrollmentrequestApi.md#list_enrollment_requests) | **GET** /api/v1/enrollmentrequests |
-*EnrollmentrequestApi* | [**patch_enrollment_request**](docs/EnrollmentrequestApi.md#patch_enrollment_request) | **PATCH** /api/v1/enrollmentrequests/{name} |
-*EnrollmentrequestApi* | [**patch_enrollment_request_status**](docs/EnrollmentrequestApi.md#patch_enrollment_request_status) | **PATCH** /api/v1/enrollmentrequests/{name}/status |
-*EnrollmentrequestApi* | [**replace_enrollment_request**](docs/EnrollmentrequestApi.md#replace_enrollment_request) | **PUT** /api/v1/enrollmentrequests/{name} |
-*EnrollmentrequestApi* | [**replace_enrollment_request_status**](docs/EnrollmentrequestApi.md#replace_enrollment_request_status) | **PUT** /api/v1/enrollmentrequests/{name}/status |
-*EventApi* | [**list_events**](docs/EventApi.md#list_events) | **GET** /api/v1/events |
-*FleetApi* | [**create_fleet**](docs/FleetApi.md#create_fleet) | **POST** /api/v1/fleets |
-*FleetApi* | [**delete_fleet**](docs/FleetApi.md#delete_fleet) | **DELETE** /api/v1/fleets/{name} |
-*FleetApi* | [**delete_template_version**](docs/FleetApi.md#delete_template_version) | **DELETE** /api/v1/fleets/{fleet}/templateversions/{name} |
-*FleetApi* | [**get_fleet**](docs/FleetApi.md#get_fleet) | **GET** /api/v1/fleets/{name} |
-*FleetApi* | [**get_fleet_status**](docs/FleetApi.md#get_fleet_status) | **GET** /api/v1/fleets/{name}/status |
-*FleetApi* | [**get_template_version**](docs/FleetApi.md#get_template_version) | **GET** /api/v1/fleets/{fleet}/templateversions/{name} |
-*FleetApi* | [**list_fleets**](docs/FleetApi.md#list_fleets) | **GET** /api/v1/fleets |
-*FleetApi* | [**list_template_versions**](docs/FleetApi.md#list_template_versions) | **GET** /api/v1/fleets/{fleet}/templateversions |
-*FleetApi* | [**patch_fleet**](docs/FleetApi.md#patch_fleet) | **PATCH** /api/v1/fleets/{name} |
-*FleetApi* | [**patch_fleet_status**](docs/FleetApi.md#patch_fleet_status) | **PATCH** /api/v1/fleets/{name}/status |
-*FleetApi* | [**replace_fleet**](docs/FleetApi.md#replace_fleet) | **PUT** /api/v1/fleets/{name} |
-*FleetApi* | [**replace_fleet_status**](docs/FleetApi.md#replace_fleet_status) | **PUT** /api/v1/fleets/{name}/status |
-*LabelApi* | [**list_labels**](docs/LabelApi.md#list_labels) | **GET** /api/v1/labels |
-*OrganizationApi* | [**list_organizations**](docs/OrganizationApi.md#list_organizations) | **GET** /api/v1/organizations | List organizations
-*RepositoryApi* | [**create_repository**](docs/RepositoryApi.md#create_repository) | **POST** /api/v1/repositories |
-*RepositoryApi* | [**delete_repository**](docs/RepositoryApi.md#delete_repository) | **DELETE** /api/v1/repositories/{name} |
-*RepositoryApi* | [**get_repository**](docs/RepositoryApi.md#get_repository) | **GET** /api/v1/repositories/{name} |
-*RepositoryApi* | [**list_repositories**](docs/RepositoryApi.md#list_repositories) | **GET** /api/v1/repositories |
-*RepositoryApi* | [**patch_repository**](docs/RepositoryApi.md#patch_repository) | **PATCH** /api/v1/repositories/{name} |
-*RepositoryApi* | [**replace_repository**](docs/RepositoryApi.md#replace_repository) | **PUT** /api/v1/repositories/{name} |
-*ResourcesyncApi* | [**create_resource_sync**](docs/ResourcesyncApi.md#create_resource_sync) | **POST** /api/v1/resourcesyncs |
-*ResourcesyncApi* | [**delete_resource_sync**](docs/ResourcesyncApi.md#delete_resource_sync) | **DELETE** /api/v1/resourcesyncs/{name} |
-*ResourcesyncApi* | [**get_resource_sync**](docs/ResourcesyncApi.md#get_resource_sync) | **GET** /api/v1/resourcesyncs/{name} |
-*ResourcesyncApi* | [**list_resource_syncs**](docs/ResourcesyncApi.md#list_resource_syncs) | **GET** /api/v1/resourcesyncs |
-*ResourcesyncApi* | [**patch_resource_sync**](docs/ResourcesyncApi.md#patch_resource_sync) | **PATCH** /api/v1/resourcesyncs/{name} |
-*ResourcesyncApi* | [**replace_resource_sync**](docs/ResourcesyncApi.md#replace_resource_sync) | **PUT** /api/v1/resourcesyncs/{name} |
-*VersionApi* | [**get_version**](docs/VersionApi.md#get_version) | **GET** /api/version |
+*AuthenticationApi* | [**auth_config**](docs/AuthenticationApi.md#auth_config) | **GET** /auth/config |
+*AuthenticationApi* | [**auth_get_permissions**](docs/AuthenticationApi.md#auth_get_permissions) | **GET** /auth/permissions |
+*AuthenticationApi* | [**auth_token**](docs/AuthenticationApi.md#auth_token) | **POST** /auth/{providername}/token |
+*AuthenticationApi* | [**auth_user_info**](docs/AuthenticationApi.md#auth_user_info) | **GET** /auth/userinfo |
+*AuthenticationApi* | [**auth_validate**](docs/AuthenticationApi.md#auth_validate) | **GET** /auth/validate |
+*AuthproviderApi* | [**create_auth_provider**](docs/AuthproviderApi.md#create_auth_provider) | **POST** /authproviders |
+*AuthproviderApi* | [**delete_auth_provider**](docs/AuthproviderApi.md#delete_auth_provider) | **DELETE** /authproviders/{name} |
+*AuthproviderApi* | [**get_auth_provider**](docs/AuthproviderApi.md#get_auth_provider) | **GET** /authproviders/{name} |
+*AuthproviderApi* | [**list_auth_providers**](docs/AuthproviderApi.md#list_auth_providers) | **GET** /authproviders |
+*AuthproviderApi* | [**patch_auth_provider**](docs/AuthproviderApi.md#patch_auth_provider) | **PATCH** /authproviders/{name} |
+*AuthproviderApi* | [**replace_auth_provider**](docs/AuthproviderApi.md#replace_auth_provider) | **PUT** /authproviders/{name} |
+*CertificatesigningrequestApi* | [**create_certificate_signing_request**](docs/CertificatesigningrequestApi.md#create_certificate_signing_request) | **POST** /certificatesigningrequests |
+*CertificatesigningrequestApi* | [**delete_certificate_signing_request**](docs/CertificatesigningrequestApi.md#delete_certificate_signing_request) | **DELETE** /certificatesigningrequests/{name} |
+*CertificatesigningrequestApi* | [**get_certificate_signing_request**](docs/CertificatesigningrequestApi.md#get_certificate_signing_request) | **GET** /certificatesigningrequests/{name} |
+*CertificatesigningrequestApi* | [**list_certificate_signing_requests**](docs/CertificatesigningrequestApi.md#list_certificate_signing_requests) | **GET** /certificatesigningrequests |
+*CertificatesigningrequestApi* | [**patch_certificate_signing_request**](docs/CertificatesigningrequestApi.md#patch_certificate_signing_request) | **PATCH** /certificatesigningrequests/{name} |
+*CertificatesigningrequestApi* | [**replace_certificate_signing_request**](docs/CertificatesigningrequestApi.md#replace_certificate_signing_request) | **PUT** /certificatesigningrequests/{name} |
+*CertificatesigningrequestApi* | [**update_certificate_signing_request_approval**](docs/CertificatesigningrequestApi.md#update_certificate_signing_request_approval) | **PUT** /certificatesigningrequests/{name}/approval |
+*DeviceApi* | [**create_device**](docs/DeviceApi.md#create_device) | **POST** /devices |
+*DeviceApi* | [**decommission_device**](docs/DeviceApi.md#decommission_device) | **PUT** /devices/{name}/decommission |
+*DeviceApi* | [**delete_device**](docs/DeviceApi.md#delete_device) | **DELETE** /devices/{name} |
+*DeviceApi* | [**get_device**](docs/DeviceApi.md#get_device) | **GET** /devices/{name} |
+*DeviceApi* | [**get_device_last_seen**](docs/DeviceApi.md#get_device_last_seen) | **GET** /devices/{name}/lastseen |
+*DeviceApi* | [**get_device_status**](docs/DeviceApi.md#get_device_status) | **GET** /devices/{name}/status |
+*DeviceApi* | [**get_rendered_device**](docs/DeviceApi.md#get_rendered_device) | **GET** /devices/{name}/rendered |
+*DeviceApi* | [**list_devices**](docs/DeviceApi.md#list_devices) | **GET** /devices |
+*DeviceApi* | [**patch_device**](docs/DeviceApi.md#patch_device) | **PATCH** /devices/{name} |
+*DeviceApi* | [**patch_device_status**](docs/DeviceApi.md#patch_device_status) | **PATCH** /devices/{name}/status |
+*DeviceApi* | [**replace_device**](docs/DeviceApi.md#replace_device) | **PUT** /devices/{name} |
+*DeviceApi* | [**replace_device_status**](docs/DeviceApi.md#replace_device_status) | **PUT** /devices/{name}/status |
+*DeviceactionsApi* | [**resume_devices**](docs/DeviceactionsApi.md#resume_devices) | **POST** /deviceactions/resume |
+*EnrollmentrequestApi* | [**approve_enrollment_request**](docs/EnrollmentrequestApi.md#approve_enrollment_request) | **PUT** /enrollmentrequests/{name}/approval |
+*EnrollmentrequestApi* | [**create_enrollment_request**](docs/EnrollmentrequestApi.md#create_enrollment_request) | **POST** /enrollmentrequests |
+*EnrollmentrequestApi* | [**delete_enrollment_request**](docs/EnrollmentrequestApi.md#delete_enrollment_request) | **DELETE** /enrollmentrequests/{name} |
+*EnrollmentrequestApi* | [**get_enrollment_config**](docs/EnrollmentrequestApi.md#get_enrollment_config) | **GET** /enrollmentconfig |
+*EnrollmentrequestApi* | [**get_enrollment_request**](docs/EnrollmentrequestApi.md#get_enrollment_request) | **GET** /enrollmentrequests/{name} |
+*EnrollmentrequestApi* | [**get_enrollment_request_status**](docs/EnrollmentrequestApi.md#get_enrollment_request_status) | **GET** /enrollmentrequests/{name}/status |
+*EnrollmentrequestApi* | [**list_enrollment_requests**](docs/EnrollmentrequestApi.md#list_enrollment_requests) | **GET** /enrollmentrequests |
+*EnrollmentrequestApi* | [**patch_enrollment_request**](docs/EnrollmentrequestApi.md#patch_enrollment_request) | **PATCH** /enrollmentrequests/{name} |
+*EnrollmentrequestApi* | [**patch_enrollment_request_status**](docs/EnrollmentrequestApi.md#patch_enrollment_request_status) | **PATCH** /enrollmentrequests/{name}/status |
+*EnrollmentrequestApi* | [**replace_enrollment_request**](docs/EnrollmentrequestApi.md#replace_enrollment_request) | **PUT** /enrollmentrequests/{name} |
+*EnrollmentrequestApi* | [**replace_enrollment_request_status**](docs/EnrollmentrequestApi.md#replace_enrollment_request_status) | **PUT** /enrollmentrequests/{name}/status |
+*EventApi* | [**list_events**](docs/EventApi.md#list_events) | **GET** /events |
+*FleetApi* | [**create_fleet**](docs/FleetApi.md#create_fleet) | **POST** /fleets |
+*FleetApi* | [**delete_fleet**](docs/FleetApi.md#delete_fleet) | **DELETE** /fleets/{name} |
+*FleetApi* | [**delete_template_version**](docs/FleetApi.md#delete_template_version) | **DELETE** /fleets/{fleet}/templateversions/{name} |
+*FleetApi* | [**get_fleet**](docs/FleetApi.md#get_fleet) | **GET** /fleets/{name} |
+*FleetApi* | [**get_fleet_status**](docs/FleetApi.md#get_fleet_status) | **GET** /fleets/{name}/status |
+*FleetApi* | [**get_template_version**](docs/FleetApi.md#get_template_version) | **GET** /fleets/{fleet}/templateversions/{name} |
+*FleetApi* | [**list_fleets**](docs/FleetApi.md#list_fleets) | **GET** /fleets |
+*FleetApi* | [**list_template_versions**](docs/FleetApi.md#list_template_versions) | **GET** /fleets/{fleet}/templateversions |
+*FleetApi* | [**patch_fleet**](docs/FleetApi.md#patch_fleet) | **PATCH** /fleets/{name} |
+*FleetApi* | [**patch_fleet_status**](docs/FleetApi.md#patch_fleet_status) | **PATCH** /fleets/{name}/status |
+*FleetApi* | [**replace_fleet**](docs/FleetApi.md#replace_fleet) | **PUT** /fleets/{name} |
+*FleetApi* | [**replace_fleet_status**](docs/FleetApi.md#replace_fleet_status) | **PUT** /fleets/{name}/status |
+*LabelApi* | [**list_labels**](docs/LabelApi.md#list_labels) | **GET** /labels |
+*OrganizationApi* | [**list_organizations**](docs/OrganizationApi.md#list_organizations) | **GET** /organizations | List organizations
+*RepositoryApi* | [**create_repository**](docs/RepositoryApi.md#create_repository) | **POST** /repositories |
+*RepositoryApi* | [**delete_repository**](docs/RepositoryApi.md#delete_repository) | **DELETE** /repositories/{name} |
+*RepositoryApi* | [**get_repository**](docs/RepositoryApi.md#get_repository) | **GET** /repositories/{name} |
+*RepositoryApi* | [**list_repositories**](docs/RepositoryApi.md#list_repositories) | **GET** /repositories |
+*RepositoryApi* | [**patch_repository**](docs/RepositoryApi.md#patch_repository) | **PATCH** /repositories/{name} |
+*RepositoryApi* | [**replace_repository**](docs/RepositoryApi.md#replace_repository) | **PUT** /repositories/{name} |
+*ResourcesyncApi* | [**create_resource_sync**](docs/ResourcesyncApi.md#create_resource_sync) | **POST** /resourcesyncs |
+*ResourcesyncApi* | [**delete_resource_sync**](docs/ResourcesyncApi.md#delete_resource_sync) | **DELETE** /resourcesyncs/{name} |
+*ResourcesyncApi* | [**get_resource_sync**](docs/ResourcesyncApi.md#get_resource_sync) | **GET** /resourcesyncs/{name} |
+*ResourcesyncApi* | [**list_resource_syncs**](docs/ResourcesyncApi.md#list_resource_syncs) | **GET** /resourcesyncs |
+*ResourcesyncApi* | [**patch_resource_sync**](docs/ResourcesyncApi.md#patch_resource_sync) | **PATCH** /resourcesyncs/{name} |
+*ResourcesyncApi* | [**replace_resource_sync**](docs/ResourcesyncApi.md#replace_resource_sync) | **PUT** /resourcesyncs/{name} |
+*VersionApi* | [**get_version**](docs/VersionApi.md#get_version) | **GET** /version |
## Documentation For Models
- [AapProviderSpec](docs/AapProviderSpec.md)
- [AbsolutePath](docs/AbsolutePath.md)
+ - [ApiVersion](docs/ApiVersion.md)
- [AppType](docs/AppType.md)
- [ApplicationContent](docs/ApplicationContent.md)
- [ApplicationEnvVars](docs/ApplicationEnvVars.md)
+ - [ApplicationProviderBase](docs/ApplicationProviderBase.md)
- [ApplicationProviderSpec](docs/ApplicationProviderSpec.md)
- [ApplicationResourceLimits](docs/ApplicationResourceLimits.md)
- [ApplicationResources](docs/ApplicationResources.md)
- [ApplicationStatusType](docs/ApplicationStatusType.md)
+ - [ApplicationUser](docs/ApplicationUser.md)
- [ApplicationVolume](docs/ApplicationVolume.md)
- [ApplicationVolumeProviderSpec](docs/ApplicationVolumeProviderSpec.md)
- [ApplicationVolumeReclaimPolicy](docs/ApplicationVolumeReclaimPolicy.md)
@@ -191,10 +194,14 @@ Class | Method | HTTP request | Description
- [CertificateSigningRequestList](docs/CertificateSigningRequestList.md)
- [CertificateSigningRequestSpec](docs/CertificateSigningRequestSpec.md)
- [CertificateSigningRequestStatus](docs/CertificateSigningRequestStatus.md)
+ - [ComposeApplication](docs/ComposeApplication.md)
- [Condition](docs/Condition.md)
+ - [ConditionBase](docs/ConditionBase.md)
- [ConditionStatus](docs/ConditionStatus.md)
- [ConditionType](docs/ConditionType.md)
- [ConfigProviderSpec](docs/ConfigProviderSpec.md)
+ - [ContainerApplication](docs/ContainerApplication.md)
+ - [ContainerApplicationProperties](docs/ContainerApplicationProperties.md)
- [CpuResourceMonitorSpec](docs/CpuResourceMonitorSpec.md)
- [Device](docs/Device.md)
- [DeviceApplicationStatus](docs/DeviceApplicationStatus.md)
@@ -233,6 +240,7 @@ Class | Method | HTTP request | Description
- [DevicesSummary](docs/DevicesSummary.md)
- [DiskResourceMonitorSpec](docs/DiskResourceMonitorSpec.md)
- [DisruptionBudget](docs/DisruptionBudget.md)
+ - [DockerAuth](docs/DockerAuth.md)
- [EncodingType](docs/EncodingType.md)
- [EnrollmentConfig](docs/EnrollmentConfig.md)
- [EnrollmentRequest](docs/EnrollmentRequest.md)
@@ -264,10 +272,11 @@ Class | Method | HTTP request | Description
- [FleetSpec](docs/FleetSpec.md)
- [FleetSpecTemplate](docs/FleetSpecTemplate.md)
- [FleetStatus](docs/FleetStatus.md)
- - [GenericRepoSpec](docs/GenericRepoSpec.md)
- [GitConfigProviderSpec](docs/GitConfigProviderSpec.md)
- [GitConfigProviderSpecGitRef](docs/GitConfigProviderSpecGitRef.md)
- [GitHubIntrospectionSpec](docs/GitHubIntrospectionSpec.md)
+ - [GitRepoSpec](docs/GitRepoSpec.md)
+ - [HelmApplication](docs/HelmApplication.md)
- [HookAction](docs/HookAction.md)
- [HookActionRun](docs/HookActionRun.md)
- [HookCondition](docs/HookCondition.md)
@@ -299,6 +308,8 @@ Class | Method | HTTP request | Description
- [OIDCProviderSpec](docs/OIDCProviderSpec.md)
- [ObjectMeta](docs/ObjectMeta.md)
- [ObjectReference](docs/ObjectReference.md)
+ - [OciAuthType](docs/OciAuthType.md)
+ - [OciRepoSpec](docs/OciRepoSpec.md)
- [OpenShiftProviderSpec](docs/OpenShiftProviderSpec.md)
- [Organization](docs/Organization.md)
- [OrganizationList](docs/OrganizationList.md)
@@ -306,6 +317,7 @@ Class | Method | HTTP request | Description
- [PatchRequestInner](docs/PatchRequestInner.md)
- [Permission](docs/Permission.md)
- [PermissionList](docs/PermissionList.md)
+ - [QuadletApplication](docs/QuadletApplication.md)
- [ReferencedRepositoryUpdatedDetails](docs/ReferencedRepositoryUpdatedDetails.md)
- [RelativePath](docs/RelativePath.md)
- [RepoSpecType](docs/RepoSpecType.md)
@@ -323,12 +335,12 @@ Class | Method | HTTP request | Description
- [ResourceSyncList](docs/ResourceSyncList.md)
- [ResourceSyncSpec](docs/ResourceSyncSpec.md)
- [ResourceSyncStatus](docs/ResourceSyncStatus.md)
+ - [ResourceSyncType](docs/ResourceSyncType.md)
- [ResourceUpdatedDetails](docs/ResourceUpdatedDetails.md)
- [Rfc7662IntrospectionSpec](docs/Rfc7662IntrospectionSpec.md)
- [RolloutPolicy](docs/RolloutPolicy.md)
- [RolloutStrategy](docs/RolloutStrategy.md)
- [SshConfig](docs/SshConfig.md)
- - [SshRepoSpec](docs/SshRepoSpec.md)
- [Status](docs/Status.md)
- [SystemdActiveStateType](docs/SystemdActiveStateType.md)
- [SystemdEnableStateType](docs/SystemdEnableStateType.md)
diff --git a/api/core/v1alpha1/openapi.yaml b/api/core/v1alpha1/openapi.yaml
new file mode 100644
index 0000000..fbd092a
--- /dev/null
+++ b/api/core/v1alpha1/openapi.yaml
@@ -0,0 +1,1394 @@
+openapi: 3.0.1
+info:
+ title: Flight Control API
+ version: v1alpha1
+ description: |
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+ contact:
+ name: The Flight Control Team
+ url: https://flightctl.io
+ email: team@flightctl.io
+ license:
+ name: Apache 2.0
+ url: https://www.apache.org/licenses/LICENSE-2.0.html
+servers:
+ - url: /api/v1
+tags:
+ - name: catalog
+ description: Operations on Catalog resources.
+paths:
+ /catalogitems:
+ x-resource: catalogitems
+ get:
+ tags:
+ - catalog
+ description: List CatalogItems across all Catalogs.
+ operationId: listAllCatalogItems
+ parameters:
+ - name: continue
+ in: query
+ description: An optional parameter to query more results from the server. The value of the parameter must match the value of the 'continue' field in the previous list response.
+ required: false
+ schema:
+ type: string
+ - name: labelSelector
+ in: query
+ description: A selector to restrict the list of returned objects by their labels. Defaults to everything.
+ schema:
+ type: string
+ - name: fieldSelector
+ in: query
+ description: A selector to restrict the list of returned objects by their fields, supporting operators like '=', '==', and '!=' (e.g., "key1=value1,key2!=value2").
+ schema:
+ type: string
+ - name: limit
+ in: query
+ description: The maximum number of results returned in the list response. The server will set the 'continue' field in the list response if more results exist. The continue value may then be specified as parameter in a subsequent query.
+ required: false
+ schema:
+ type: integer
+ format: int32
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CatalogItemList'
+ "400":
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '../v1beta1/openapi.yaml#/components/schemas/Status'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '../v1beta1/openapi.yaml#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '../v1beta1/openapi.yaml#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '../v1beta1/openapi.yaml#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '../v1beta1/openapi.yaml#/components/schemas/Status'
+ /catalogs:
+ x-resource: catalogs
+ get:
+ tags:
+ - catalog
+ description: List Catalog resources.
+ operationId: listCatalogs
+ parameters:
+ - name: continue
+ in: query
+ description: An optional parameter to query more results from the server. The value of the paramter must match the value of the 'continue' field in the previous list response.
+ required: false
+ schema:
+ type: string
+ - name: labelSelector
+ in: query
+ description: A selector to restrict the list of returned objects by their labels. Defaults to everything.
+ schema:
+ type: string
+ - name: fieldSelector
+ in: query
+ description: A selector to restrict the list of returned objects by their fields, supporting operators like '=', '==', and '!=' (e.g., "key1=value1,key2!=value2").
+ schema:
+ type: string
+ - name: limit
+ in: query
+ description: The maximum number of results returned in the list response. The server will set the 'continue' field in the list response if more results exist. The continue value may then be specified as parameter in a subsequent query.
+ required: false
+ schema:
+ type: integer
+ format: int32
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CatalogList'
+ "400":
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ post:
+ tags:
+ - catalog
+ description: Create a Catalog resource.
+ operationId: createCatalog
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Catalog'
+ required: true
+ responses:
+ "201":
+ description: Created
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Catalog'
+ "400":
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "409":
+ description: Conflict
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ /catalogs/{name}:
+ x-resource: catalogs
+ get:
+ tags:
+ - catalog
+ description: Get a Catalog resource.
+ operationId: getCatalog
+ parameters:
+ - name: name
+ in: path
+ description: The name of the Catalog resource to get.
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Catalog'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ put:
+ tags:
+ - catalog
+ description: Update a Catalog resource.
+ operationId: replaceCatalog
+ parameters:
+ - name: name
+ in: path
+ description: The name of the Catalog resource to update.
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Catalog'
+ required: true
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Catalog'
+ "201":
+ description: Created
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Catalog'
+ "400":
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "409":
+ description: Conflict
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ delete:
+ tags:
+ - catalog
+ description: Delete a Catalog resource.
+ operationId: deleteCatalog
+ parameters:
+ - name: name
+ in: path
+ description: The name of the Catalog resource to delete.
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ patch:
+ tags:
+ - catalog
+ description: Patch a Catalog resource.
+ operationId: patchCatalog
+ parameters:
+ - name: name
+ in: path
+ description: The name of the Catalog resource to patch.
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json-patch+json:
+ schema:
+ $ref: '../v1beta1/openapi.yaml#/components/schemas/PatchRequest'
+ required: true
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Catalog'
+ "400":
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "409":
+ description: Conflict
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ /catalogs/{name}/status:
+ x-resource: catalogs
+ get:
+ tags:
+ - catalog
+ description: Get status of a Catalog resource.
+ operationId: getCatalogStatus
+ parameters:
+ - name: name
+ in: path
+ description: The name of the Catalog resource.
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Catalog'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ put:
+ tags:
+ - catalog
+ description: Update status of a Catalog resource.
+ operationId: replaceCatalogStatus
+ parameters:
+ - name: name
+ in: path
+ description: The name of the Catalog resource.
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Catalog'
+ required: true
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Catalog'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "409":
+ description: Conflict
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ patch:
+ tags:
+ - catalog
+ description: Patch status of a Catalog resource.
+ operationId: patchCatalogStatus
+ parameters:
+ - name: name
+ in: path
+ description: The name of the Catalog resource.
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json-patch+json:
+ schema:
+ $ref: '../v1beta1/openapi.yaml#/components/schemas/PatchRequest'
+ required: true
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Catalog'
+ "400":
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ /catalogs/{catalog}/items:
+ x-resource: catalogs/items
+ get:
+ tags:
+ - catalog
+ description: List CatalogItems from a Catalog.
+ operationId: listCatalogItems
+ parameters:
+ - name: catalog
+ in: path
+ description: The name of the Catalog resource.
+ required: true
+ schema:
+ type: string
+ - name: continue
+ in: query
+ description: An optional parameter to query more results from the server.
+ required: false
+ schema:
+ type: string
+ - name: labelSelector
+ in: query
+ description: A selector to restrict the list of returned objects by their labels.
+ schema:
+ type: string
+ - name: limit
+ in: query
+ description: The maximum number of results returned in the list response.
+ required: false
+ schema:
+ type: integer
+ format: int32
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CatalogItemList'
+ "400":
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ post:
+ tags:
+ - catalog
+ description: Create a CatalogItem in a Catalog.
+ operationId: createCatalogItem
+ parameters:
+ - name: catalog
+ in: path
+ description: The name of the Catalog resource.
+ required: true
+ schema:
+ type: string
+ requestBody:
+ description: The CatalogItem resource to create.
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CatalogItem'
+ responses:
+ "201":
+ description: Created
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CatalogItem'
+ "400":
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "409":
+ description: Conflict
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ /catalogs/{catalog}/items/{name}:
+ x-resource: catalogs/items
+ get:
+ tags:
+ - catalog
+ description: Get a CatalogItem from a Catalog.
+ operationId: getCatalogItem
+ parameters:
+ - name: catalog
+ in: path
+ description: The name of the Catalog resource.
+ required: true
+ schema:
+ type: string
+ - name: name
+ in: path
+ description: The name of the CatalogItem resource.
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CatalogItem'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ put:
+ tags:
+ - catalog
+ description: Replace a CatalogItem in a Catalog.
+ operationId: replaceCatalogItem
+ parameters:
+ - name: catalog
+ in: path
+ description: The name of the Catalog resource.
+ required: true
+ schema:
+ type: string
+ - name: name
+ in: path
+ description: The name of the CatalogItem resource.
+ required: true
+ schema:
+ type: string
+ requestBody:
+ description: The CatalogItem resource to replace.
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CatalogItem'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CatalogItem'
+ "201":
+ description: Created
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CatalogItem'
+ "400":
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "409":
+ description: Conflict
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ delete:
+ tags:
+ - catalog
+ description: Delete a CatalogItem from a Catalog.
+ operationId: deleteCatalogItem
+ parameters:
+ - name: catalog
+ in: path
+ description: The name of the Catalog resource.
+ required: true
+ schema:
+ type: string
+ - name: name
+ in: path
+ description: The name of the CatalogItem resource.
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ patch:
+ tags:
+ - catalog
+ description: Patch a CatalogItem in a Catalog.
+ operationId: patchCatalogItem
+ parameters:
+ - name: catalog
+ in: path
+ description: The name of the Catalog resource.
+ required: true
+ schema:
+ type: string
+ - name: name
+ in: path
+ description: The name of the CatalogItem resource to patch.
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json-patch+json:
+ schema:
+ $ref: '../v1beta1/openapi.yaml#/components/schemas/PatchRequest'
+ required: true
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CatalogItem'
+ "400":
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "409":
+ description: Conflict
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+components:
+ securitySchemes:
+ bearerAuth:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+ orgId:
+ type: apiKey
+ in: query
+ name: org_id
+ description: The UUID of the organization that owns the resource. Maps to an organizations metadata.name.
+ schemas:
+ ApiVersion:
+ type: string
+ x-go-type: string
+ description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ enum:
+ - v1alpha1
+ - flightctl.io/v1alpha1
+ # Catalog-specific schemas (shared types come from v1beta1 via external refs)
+ Catalog:
+ type: object
+ properties:
+ apiVersion:
+ $ref: '#/components/schemas/ApiVersion'
+ kind:
+ type: string
+ description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
+ metadata:
+ $ref: '../v1beta1/openapi.yaml#/components/schemas/ObjectMeta'
+ spec:
+ $ref: '#/components/schemas/CatalogSpec'
+ status:
+ $ref: '#/components/schemas/CatalogStatus'
+ required:
+ - apiVersion
+ - kind
+ - metadata
+ - spec
+ CatalogSpec:
+ type: object
+ description: CatalogSpec describes the configuration of a catalog. Catalogs are containers for locally-managed CatalogItems.
+ properties:
+ displayName:
+ type: string
+ description: Human-readable display name shown in catalog listings.
+ shortDescription:
+ type: string
+ description: A brief one-line description of the catalog.
+ icon:
+ type: string
+ description: URL or data URI of the catalog icon for display in UI.
+ provider:
+ type: string
+ description: Provider or publisher of the catalog (company or team name).
+ support:
+ type: string
+ description: Link to support resources or documentation for getting help.
+ CatalogStatus:
+ type: object
+ description: CatalogStatus represents the current status of a catalog source.
+ properties:
+ conditions:
+ type: array
+ description: Current state of the catalog source.
+ items:
+ $ref: '../v1beta1/openapi.yaml#/components/schemas/Condition'
+ required:
+ - conditions
+ CatalogList:
+ type: object
+ description: CatalogList is a list of Catalogs.
+ properties:
+ apiVersion:
+ $ref: '#/components/schemas/ApiVersion'
+ kind:
+ type: string
+ description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
+ metadata:
+ $ref: '../v1beta1/openapi.yaml#/components/schemas/ListMeta'
+ items:
+ type: array
+ description: 'List of Catalogs.'
+ items:
+ $ref: '#/components/schemas/Catalog'
+ required:
+ - apiVersion
+ - kind
+ - metadata
+ - items
+ CatalogItemMeta:
+ type: object
+ description: 'Metadata for CatalogItem resources. Extends ObjectMeta with catalog scoping.'
+ allOf:
+ - $ref: '../v1beta1/openapi.yaml#/components/schemas/ObjectMeta'
+ - type: object
+ properties:
+ catalog:
+ type: string
+ description: 'The catalog this item belongs to. Similar to namespace in Kubernetes.'
+ example: edge-apps
+ required:
+ - catalog
+ CatalogItem:
+ type: object
+ description: CatalogItem represents an application template from a catalog. It provides default configuration values that can be customized when adding the application to a fleet.
+ properties:
+ apiVersion:
+ $ref: '#/components/schemas/ApiVersion'
+ kind:
+ type: string
+ description: 'Kind is a string value representing the REST resource this object represents.'
+ metadata:
+ $ref: '#/components/schemas/CatalogItemMeta'
+ spec:
+ $ref: '#/components/schemas/CatalogItemSpec'
+ required:
+ - apiVersion
+ - kind
+ - metadata
+ - spec
+ CatalogItemArtifact:
+ type: object
+ description: 'An artifact reference. The type field is the discriminator and must be unique within the artifacts list.'
+ properties:
+ type:
+ $ref: '#/components/schemas/CatalogItemArtifactType'
+ name:
+ type: string
+ description: 'Optional human-readable display name for this artifact.'
+ example: QCOW2 Disk Image
+ uri:
+ type: string
+ minLength: 1
+ description: 'Artifact URI without version qualifier. The version reference (tag or digest) is applied at resolution time.'
+ example: quay.io/redhat/rhel-bootc-qcow2
+ required:
+ - type
+ - uri
+ CatalogItemArtifactType:
+ type: string
+ description: 'Artifact format discriminator. Must be unique within the artifacts list. Includes bootc-image-builder output formats.'
+ enum:
+ - container
+ - qcow2
+ - ami
+ - iso
+ - anaconda-iso
+ - vmdk
+ - vhd
+ - raw
+ - gce
+ x-enum-varnames:
+ - CatalogItemArtifactTypeContainer
+ - CatalogItemArtifactTypeQcow2
+ - CatalogItemArtifactTypeAmi
+ - CatalogItemArtifactTypeIso
+ - CatalogItemArtifactTypeAnacondaIso
+ - CatalogItemArtifactTypeVmdk
+ - CatalogItemArtifactTypeVhd
+ - CatalogItemArtifactTypeRaw
+ - CatalogItemArtifactTypeGce
+ CatalogItemConfigurable:
+ type: object
+ description: 'Configuration fields that can be specified at item level (as defaults) and overridden at version level. Version-level values fully replace item-level values (not merged).'
+ properties:
+ config:
+ type: object
+ additionalProperties: true
+ description: 'Configuration values (envVars, ports, volumes, resources, etc.).'
+ example:
+ envVars:
+ LOG_LEVEL: info
+ ports:
+ - "9090:9090"
+ configSchema:
+ type: object
+ additionalProperties: true
+ description: 'JSON Schema defining configurable parameters and their validation.'
+ readme:
+ type: string
+ description: 'Detailed documentation, preferably in markdown format.'
+ CatalogItemSpec:
+ type: object
+ description: CatalogItemSpec defines the configuration for a catalog item.
+ properties:
+ category:
+ $ref: '#/components/schemas/CatalogItemCategory'
+ type:
+ $ref: '#/components/schemas/CatalogItemType'
+ artifacts:
+ type: array
+ items:
+ $ref: '#/components/schemas/CatalogItemArtifact'
+ minItems: 1
+ description: 'Artifact definitions for this catalog item. Defined once; version references resolve each artifact independently. Type must be unique within the list.'
+ example:
+ - type: container
+ uri: quay.io/prometheus/prometheus
+ versions:
+ type: array
+ items:
+ $ref: '#/components/schemas/CatalogItemVersion'
+ description: 'Available versions using Cincinnati model. Use replaces for primary edge, skips when stable channel skips intermediate versions.'
+ example:
+ - version: "2.45.0"
+ references:
+ container: "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
+ channels: [stable, fast]
+ replaces: "2.44.0"
+ skips: ["2.43.0"]
+ - version: "2.44.0"
+ references:
+ container: "v2.44.0"
+ channels: [fast]
+ replaces: "2.43.0"
+ defaults:
+ $ref: '#/components/schemas/CatalogItemConfigurable'
+ displayName:
+ type: string
+ description: Human-readable display name shown in catalog listings.
+ shortDescription:
+ type: string
+ description: A brief one-line description of the catalog item.
+ icon:
+ type: string
+ description: URL or data URI of the catalog item icon for display in UI.
+ deprecation:
+ $ref: '#/components/schemas/CatalogItemDeprecation'
+ provider:
+ type: string
+ description: Provider or publisher of the catalog item (company or team name).
+ support:
+ type: string
+ description: Link to support resources or documentation for getting help.
+ homepage:
+ type: string
+ description: The homepage URL for the catalog item project.
+ documentationUrl:
+ type: string
+ description: Link to external documentation.
+ required:
+ - type
+ - artifacts
+ - versions
+ CatalogItemVersion:
+ type: object
+ description: |
+ A version of a catalog item following the Cincinnati model where versions
+ are nodes in an upgrade graph and channels are labels on those nodes.
+ Upgrade edges are defined by replaces (single), skips (multiple), or
+ skipRange (semver range). Includes CatalogItemConfigurable fields that
+ override item-level defaults.
+ allOf:
+ - $ref: '#/components/schemas/CatalogItemConfigurable'
+ - type: object
+ properties:
+ version:
+ type: string
+ description: 'Semantic version identifier (e.g., 1.2.3, v2.0.0-rc1). Required for version ordering and upgrade graph.'
+ example: "2.45.0"
+ references:
+ type: object
+ minProperties: 1
+ additionalProperties:
+ type: string
+ minLength: 1
+ description: 'Map of artifact type to image tag or digest. Keys must match a type in spec.artifacts. Only keyed artifacts are available for this version.'
+ example:
+ container: "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
+ qcow2: "v2.45.0"
+ channels:
+ type: array
+ items:
+ type: string
+ description: 'Channels this version belongs to.'
+ replaces:
+ type: string
+ description: 'The single version this one replaces, defining the primary upgrade edge.'
+ skips:
+ type: array
+ items:
+ type: string
+ description: 'Additional versions that can upgrade directly to this one. Use when stable channel skips intermediate fast-only versions.'
+ example: ["1.0.0", "1.1.0"]
+ skipRange:
+ type: string
+ description: 'Semver range of versions that can upgrade directly to this one. Use for z-stream updates or hotfixes.'
+ example: ">=1.0.0 <1.3.0"
+ deprecation:
+ $ref: '#/components/schemas/CatalogItemDeprecation'
+ required:
+ - version
+ - channels
+ - references
+ CatalogItemList:
+ type: object
+ description: CatalogItemList is a list of CatalogItems.
+ properties:
+ apiVersion:
+ $ref: '#/components/schemas/ApiVersion'
+ kind:
+ type: string
+ description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
+ metadata:
+ $ref: '../v1beta1/openapi.yaml#/components/schemas/ListMeta'
+ items:
+ type: array
+ description: 'List of CatalogItems.'
+ items:
+ $ref: '#/components/schemas/CatalogItem'
+ required:
+ - apiVersion
+ - kind
+ - metadata
+ - items
+ CatalogItemCategory:
+ type: string
+ description: 'Category of a catalog item.'
+ enum:
+ - system
+ - application
+ default: application
+ x-enum-varnames:
+ - CatalogItemCategorySystem
+ - CatalogItemCategoryApplication
+ CatalogItemType:
+ type: string
+ description: 'Type of catalog item within its category.'
+ enum:
+ # System category types
+ - os
+ - firmware
+ - driver
+ # Application category types
+ - container
+ - helm
+ - quadlet
+ - compose
+ - data
+ x-enum-varnames:
+ - CatalogItemTypeOS
+ - CatalogItemTypeFirmware
+ - CatalogItemTypeDriver
+ - CatalogItemTypeContainer
+ - CatalogItemTypeHelm
+ - CatalogItemTypeQuadlet
+ - CatalogItemTypeCompose
+ - CatalogItemTypeData
+ CatalogItemDeprecation:
+ type: object
+ description: 'Deprecation information for a catalog item or version. Presence indicates deprecated status.'
+ properties:
+ message:
+ type: string
+ description: 'Required message explaining why this is deprecated and what to do instead.'
+ example: "This item is deprecated. Use nginx-plus instead."
+ replacement:
+ type: string
+ description: 'Optional name of the replacement catalog item (item-level only).'
+ example: nginx-plus
+ required:
+ - message
+ Status:
+ type: object
+ properties:
+ apiVersion:
+ $ref: '#/components/schemas/ApiVersion'
+ kind:
+ type: string
+ description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
+ code:
+ type: integer
+ format: int32
+ description: Suggested HTTP return code for this status, 0 if not set.
+ message:
+ type: string
+ description: A human-readable description of the status of this operation.
+ reason:
+ type: string
+ description: A machine-readable description of why this operation is in the "Failure" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.
+ status:
+ type: string
+ description: 'Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.'
+ description: Status is a return value for calls that don't return other objects.
+ required:
+ - apiVersion
+ - kind
+ - status
+ - code
+ - reason
+ - message
diff --git a/api/v1alpha1/openapi.yml b/api/core/v1beta1/openapi.yaml
similarity index 94%
rename from api/v1alpha1/openapi.yml
rename to api/core/v1beta1/openapi.yaml
index edbb4f9..aeed9c5 100644
--- a/api/v1alpha1/openapi.yml
+++ b/api/core/v1beta1/openapi.yaml
@@ -12,7 +12,7 @@ info:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
- - url: /
+ - url: /api/v1
tags:
- name: authentication
description: Operations for authentication.
@@ -41,7 +41,7 @@ tags:
- name: version
description: Operations for receiving service version.
paths:
- /api/version:
+ /version:
get:
tags:
- version
@@ -54,6 +54,12 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Version'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
"403":
description: Forbidden
content:
@@ -72,7 +78,7 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/auth/config:
+ /auth/config:
get:
tags:
- authentication
@@ -97,7 +103,7 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/auth/validate:
+ /auth/validate:
get:
tags:
- authentication
@@ -146,7 +152,7 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/auth/permissions:
+ /auth/permissions:
get:
tags:
- authentication
@@ -183,7 +189,7 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/auth/{providername}/token:
+ /auth/{providername}/token:
post:
tags:
- authentication
@@ -218,7 +224,7 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/TokenResponse'
- /api/v1/auth/userinfo:
+ /auth/userinfo:
get:
tags:
- authentication
@@ -255,7 +261,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/resourcesyncs:
+ /resourcesyncs:
+ x-resource: resourcesyncs
get:
tags:
- resourcesync
@@ -376,7 +383,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/resourcesyncs/{name}:
+ /resourcesyncs/{name}:
+ x-resource: resourcesyncs
get:
tags:
- resourcesync
@@ -615,7 +623,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/repositories:
+ /repositories:
+ x-resource: repositories
get:
tags:
- repository
@@ -736,7 +745,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/repositories/{name}:
+ /repositories/{name}:
+ x-resource: repositories
get:
tags:
- repository
@@ -975,7 +985,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/devices:
+ /devices:
+ x-resource: devices
get:
tags:
- device
@@ -1102,7 +1113,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/devices/{name}:
+ /devices/{name}:
+ x-resource: devices
get:
tags:
- device
@@ -1341,7 +1353,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/devices/{name}/status:
+ /devices/{name}/status:
+ x-resource: devices/status
get:
tags:
- device
@@ -1519,7 +1532,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/devices/{name}/decommission:
+ /devices/{name}/decommission:
+ x-resource: devices/decommission
put:
tags:
- device
@@ -1581,7 +1595,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/devices/{name}/rendered:
+ /devices/{name}/rendered:
+ x-resource: devices/rendered
get:
tags:
- device
@@ -1646,7 +1661,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/devices/{name}/lastseen:
+ /devices/{name}/lastseen:
+ x-resource: devices/lastseen
get:
tags:
- device
@@ -1699,7 +1715,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/deviceactions/resume:
+ /deviceactions/resume:
+ x-resource: devices/resume
post:
tags:
- deviceactions
@@ -1751,7 +1768,7 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/enrollmentconfig:
+ /enrollmentconfig:
get:
tags:
- enrollmentrequest
@@ -1808,7 +1825,8 @@ paths:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/enrollmentrequests:
+ /enrollmentrequests:
+ x-resource: enrollmentrequests
get:
tags:
- enrollmentrequest
@@ -1929,7 +1947,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/enrollmentrequests/{name}:
+ /enrollmentrequests/{name}:
+ x-resource: enrollmentrequests
get:
tags:
- enrollmentrequest
@@ -2174,7 +2193,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/enrollmentrequests/{name}/status:
+ /enrollmentrequests/{name}/status:
+ x-resource: enrollmentrequests/status
get:
tags:
- enrollmentrequest
@@ -2346,7 +2366,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/enrollmentrequests/{name}/approval:
+ /enrollmentrequests/{name}/approval:
+ x-resource: enrollmentrequests/approval
put:
tags:
- enrollmentrequest
@@ -2408,7 +2429,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/certificatesigningrequests:
+ /certificatesigningrequests:
+ x-resource: certificatesigningrequests
get:
tags:
- certificatesigningrequest
@@ -2529,7 +2551,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/certificatesigningrequests/{name}:
+ /certificatesigningrequests/{name}:
+ x-resource: certificatesigningrequests
patch:
tags:
- certificatesigningrequest
@@ -2769,7 +2792,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/certificatesigningrequests/{name}/approval:
+ /certificatesigningrequests/{name}/approval:
+ x-resource: certificatesigningrequests/approval
put:
tags:
- certificatesigningrequest
@@ -2837,7 +2861,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/fleets:
+ /fleets:
+ x-resource: fleets
get:
tags:
- fleet
@@ -2964,7 +2989,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/fleets/{name}:
+ /fleets/{name}:
+ x-resource: fleets
get:
tags:
- fleet
@@ -3209,7 +3235,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/fleets/{name}/status:
+ /fleets/{name}/status:
+ x-resource: fleets/status
get:
tags:
- fleet
@@ -3375,7 +3402,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/fleets/{fleet}/templateversions:
+ /fleets/{fleet}/templateversions:
+ x-resource: fleets/templateversions
get:
tags:
- fleet
@@ -3448,7 +3476,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/fleets/{fleet}/templateversions/{name}:
+ /fleets/{fleet}/templateversions/{name}:
+ x-resource: fleets/templateversions
get:
tags:
- fleet
@@ -3559,7 +3588,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/labels:
+ /labels:
+ x-resource: labels
get:
tags:
- label
@@ -3636,7 +3666,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/events:
+ /events:
+ x-resource: events
get:
tags:
- event
@@ -3706,7 +3737,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/organizations:
+ /organizations:
+ x-resource: organizations
get:
tags:
- organization
@@ -3756,7 +3788,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/authproviders:
+ /authproviders:
+ x-resource: authproviders
get:
tags:
- authprovider
@@ -3877,7 +3910,8 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Status'
- /api/v1/authproviders/{name}:
+ /authproviders/{name}:
+ x-resource: authproviders
get:
tags:
- authprovider
@@ -4128,6 +4162,18 @@ components:
name: org_id
description: The UUID of the organization that owns the resource. Maps to an organizations metadata.name.
schemas:
+ ApiVersion:
+ type: string
+ x-go-type: string
+ description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ enum:
+ - v1beta1
+ - flightctl.io/v1beta1
+ - "" # to provide backward compatibility for older clients that are not setting the apiVersion field
+ x-enum-varnames:
+ - ApiVersionV1beta1
+ - ApiVersionFlightctlIoV1beta1
+ - ApiVersionEmpty
ResourceKind:
type: string
enum: [CertificateSigningRequest, EnrollmentRequest, Device, Fleet, Repository, ResourceSync, TemplateVersion, AuthProvider]
@@ -4209,8 +4255,7 @@ components:
type: object
properties:
apiVersion:
- type: string
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ $ref: '#/components/schemas/ApiVersion'
kind:
type: string
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
@@ -4258,13 +4303,19 @@ components:
format: password
HttpRepoSpec:
type: object
+ description: HTTP endpoint specification for fetching configuration.
additionalProperties: false
properties:
url:
type: string
- description: 'The HTTP URL to call or clone from.'
+ description: 'The HTTP URL to call.'
type:
- $ref: "#/components/schemas/RepoSpecType"
+ type: string
+ description: The repository type discriminator.
+ enum:
+ - http
+ x-enum-varnames:
+ - HttpRepoSpecTypeHttp
httpConfig:
$ref: "#/components/schemas/HttpConfig"
validationSuffix:
@@ -4273,7 +4324,6 @@ components:
required:
- url
- type
- - httpConfig
SshConfig:
type: object
description: Configuration for SSH transport.
@@ -4290,40 +4340,117 @@ components:
skipServerVerification:
type: boolean
description: 'Skip remote server verification.'
- SshRepoSpec:
+ GitRepoSpec:
type: object
+ description: Git repository specification. Supports no auth (public repos), HTTP/HTTPS auth, or SSH auth.
additionalProperties: false
properties:
url:
type: string
- description: 'The SSH Git repository URL to clone from.'
+ description: 'The Git repository URL to clone from.'
type:
- $ref: "#/components/schemas/RepoSpecType"
+ type: string
+ description: The repository type discriminator.
+ enum:
+ - git
+ x-enum-varnames:
+ - GitRepoSpecTypeGit
+ httpConfig:
+ $ref: "#/components/schemas/HttpConfig"
sshConfig:
$ref: "#/components/schemas/SshConfig"
required:
- url
- type
- - sshConfig
- GenericRepoSpec:
+ not:
+ required:
+ - httpConfig
+ - sshConfig
+ OciAuthType:
+ type: string
+ description: The type of authentication for OCI registries.
+ enum:
+ - docker
+ DockerAuth:
type: object
+ description: Docker-style authentication for OCI registries.
additionalProperties: false
properties:
- url:
+ authType:
+ $ref: "#/components/schemas/OciAuthType"
+ username:
+ type: string
+ description: The username for registry authentication.
+ password:
type: string
- description: 'The (possibly remote) repository URL.'
+ description: The password or token for registry authentication.
+ format: password
+ required:
+ - authType
+ - username
+ - password
+ OciAuth:
+ type: object
+ description: Authentication for OCI registries.
+ discriminator:
+ propertyName: authType
+ mapping:
+ docker: "#/components/schemas/DockerAuth"
+ oneOf:
+ - $ref: "#/components/schemas/DockerAuth"
+ OciRepoSpec:
+ type: object
+ description: OCI container registry specification.
+ additionalProperties: false
+ properties:
+ registry:
+ type: string
+ description: 'The OCI registry hostname, FQDN, or IP address with optional port (e.g., quay.io, registry.redhat.io, myregistry.com:5000, 192.168.1.1:5000, [::1]:5000).'
+ scheme:
+ type: string
+ description: 'URL scheme for connecting to the registry.'
+ enum:
+ - http
+ - https
+ default: https
type:
- $ref: "#/components/schemas/RepoSpecType"
+ type: string
+ description: The repository type discriminator.
+ enum:
+ - oci
+ x-enum-varnames:
+ - OciRepoSpecTypeOci
+ accessMode:
+ type: string
+ description: 'Access mode for the registry: "Read" for read-only (pull), "ReadWrite" for read-write (pull and push).'
+ enum:
+ - Read
+ - ReadWrite
+ default: Read
+ ociAuth:
+ $ref: "#/components/schemas/OciAuth"
+ ca.crt:
+ type: string
+ description: Base64 encoded root CA.
+ skipServerVerification:
+ type: boolean
+ description: Skip remote server verification.
required:
- - url
+ - registry
- type
RepositorySpec:
type: object
description: RepositorySpec describes a configuration repository.
oneOf:
- - $ref: "#/components/schemas/GenericRepoSpec"
+ - $ref: "#/components/schemas/GitRepoSpec"
- $ref: "#/components/schemas/HttpRepoSpec"
- - $ref: "#/components/schemas/SshRepoSpec"
+ - $ref: "#/components/schemas/OciRepoSpec"
+ discriminator:
+ propertyName: type
+ mapping:
+ git: '#/components/schemas/GitRepoSpec'
+ http: '#/components/schemas/HttpRepoSpec'
+ oci: '#/components/schemas/OciRepoSpec'
RepositoryStatus:
type: object
description: RepositoryStatus represents information about the status of a repository.
@@ -4339,8 +4466,7 @@ components:
type: object
properties:
apiVersion:
- type: string
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ $ref: '#/components/schemas/ApiVersion'
kind:
type: string
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
@@ -4363,12 +4489,16 @@ components:
enum:
- git
- http
+ - oci
+ x-enum-varnames:
+ - RepoSpecTypeGit
+ - RepoSpecTypeHttp
+ - RepoSpecTypeOci
Device:
type: object
properties:
apiVersion:
- type: string
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ $ref: '#/components/schemas/ApiVersion'
kind:
type: string
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
@@ -4448,6 +4578,15 @@ components:
mountPath:
type: string
description: Path in the device's file system at which the secret should be mounted.
+ user:
+ type: string
+ description: The file's owner, specified either as a name or numeric ID. Defaults to "root".
+ x-go-type: Username
+ x-go-type-skip-optional-pointer: true
+ group:
+ type: string
+ description: The file's group, specified either as a name or numeric ID. Defaults to "root".
+ x-go-type-skip-optional-pointer: true
required:
- name
- namespace
@@ -4522,9 +4661,12 @@ components:
user:
type: string
description: The file's owner, specified either as a name or numeric ID. Defaults to "root".
+ x-go-type: Username
+ x-go-type-skip-optional-pointer: true
group:
type: string
description: The file's group, specified either as a name or numeric ID. Defaults to "root".
+ x-go-type-skip-optional-pointer: true
HttpConfigProviderSpec:
type: object
properties:
@@ -4551,30 +4693,64 @@ components:
- name
- httpRef
ApplicationProviderSpec:
+ oneOf:
+ - $ref: '#/components/schemas/ComposeApplication'
+ - $ref: '#/components/schemas/QuadletApplication'
+ - $ref: '#/components/schemas/ContainerApplication'
+ - $ref: '#/components/schemas/HelmApplication'
+ discriminator:
+ propertyName: appType
+ mapping:
+ compose: '#/components/schemas/ComposeApplication'
+ quadlet: '#/components/schemas/QuadletApplication'
+ container: '#/components/schemas/ContainerApplication'
+ helm: '#/components/schemas/HelmApplication'
+
+ ApplicationProviderBase:
+ type: object
+ description: Common properties for all application types.
+ properties:
+ name:
+ type: string
+ description: The application name must be 1–253 characters long, start with a letter or number, and contain no whitespace.
+ appType:
+ $ref: '#/components/schemas/AppType'
+ required:
+ - appType
+
+ ComposeApplication:
type: object
allOf:
+ - $ref: '#/components/schemas/ApplicationProviderBase'
- $ref: '#/components/schemas/ApplicationEnvVars'
- - type: object
- properties:
- name:
- type: string
- description: The application name must be 1–253 characters long, start with a letter or number, and contain no whitespace.
- appType:
- $ref: '#/components/schemas/AppType'
- required:
- - appType
+ - $ref: '#/components/schemas/ApplicationVolumeProviderSpec'
- oneOf:
- $ref: '#/components/schemas/ImageApplicationProviderSpec'
- $ref: '#/components/schemas/InlineApplicationProviderSpec'
- ImageApplicationProviderSpec:
+
+ QuadletApplication:
+ type: object
+ allOf:
+ - $ref: '#/components/schemas/ApplicationProviderBase'
+ - $ref: '#/components/schemas/ApplicationEnvVars'
+ - $ref: '#/components/schemas/ApplicationUser'
+ - $ref: '#/components/schemas/ApplicationVolumeProviderSpec'
+ - oneOf:
+ - $ref: '#/components/schemas/ImageApplicationProviderSpec'
+ - $ref: '#/components/schemas/InlineApplicationProviderSpec'
+
+ ContainerApplication:
type: object
allOf:
+ - $ref: '#/components/schemas/ApplicationProviderBase'
+ - $ref: '#/components/schemas/ApplicationEnvVars'
+ - $ref: '#/components/schemas/ApplicationUser'
- $ref: '#/components/schemas/ApplicationVolumeProviderSpec'
- type: object
properties:
image:
type: string
- description: Reference to the OCI image or artifact for the application package.
+ description: Reference to the image for this container.
ports:
type: array
description: Port mappings.
@@ -4584,10 +4760,81 @@ components:
$ref: '#/components/schemas/ApplicationResources'
required:
- image
+
+ HelmApplication:
+ type: object
+ allOf:
+ - $ref: '#/components/schemas/ApplicationProviderBase'
+ - type: object
+ properties:
+ image:
+ type: string
+ description: Reference to the chart for this helm application.
+ namespace:
+ type: string
+ description: The target namespace for the application deployment.
+ example: "my-app-namespace"
+ values:
+ type: object
+ additionalProperties: true
+ description: Configuration values for the application. Supports arbitrarily nested structures.
+ example:
+ replicaCount: 3
+ image:
+ repository: nginx
+ tag: "1.21"
+ service:
+ type: ClusterIP
+ port: 80
+ ingress:
+ enabled: true
+ hosts:
+ - host: example.com
+ paths:
+ - path: /
+ pathType: Prefix
+ valuesFiles:
+ type: array
+ description: List of values files to apply during deployment. Files are relative paths and applied in array order before user-provided values.
+ items:
+ type: string
+ example:
+ - "values-production.yaml"
+ - "values-overrides.yml"
+ required:
+ - image
+ ApplicationUser:
+ type: object
+ properties:
+ runAs:
+ type: string
+ description: The username of the system user this application should be run under. This is not the same as the user within any containers of the application (if applicable). Defaults to the user that the agent runs as (generally root) if not specified.
+ x-go-type: Username
+ x-go-type-skip-optional-pointer: true
+ ContainerApplicationProperties:
+ type: object
+ description: Properties for container application deployments.
+ properties:
+ ports:
+ type: array
+ description: Port mappings.
+ items:
+ $ref: '#/components/schemas/ApplicationPort'
+ resources:
+ $ref: '#/components/schemas/ApplicationResources'
+ ImageApplicationProviderSpec:
+ type: object
+ allOf:
+ - type: object
+ properties:
+ image:
+ type: string
+ description: Reference to the OCI image or artifact for the application package.
+ required:
+ - image
InlineApplicationProviderSpec:
type: object
allOf:
- - $ref: '#/components/schemas/ApplicationVolumeProviderSpec'
- type: object
properties:
inline:
@@ -4723,10 +4970,12 @@ components:
- "compose"
- "quadlet"
- "container"
+ - "helm"
x-enum-varnames:
- "AppTypeCompose"
- "AppTypeQuadlet"
- "AppTypeContainer"
+ - "AppTypeHelm"
ResourceMonitor:
oneOf:
- $ref: '#/components/schemas/CpuResourceMonitorSpec'
@@ -4960,8 +5209,7 @@ components:
type: object
properties:
apiVersion:
- type: string
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ $ref: '#/components/schemas/ApiVersion'
kind:
type: string
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
@@ -5223,6 +5471,11 @@ components:
description: Whether the application is embedded in the bootc image.
appType:
$ref: "#/components/schemas/AppType"
+ runAs:
+ type: string
+ description: The username of the system user this application is runing under. If blank, the application is run as the same user as the agent (generally root).
+ x-go-type: Username
+ x-go-type-skip-optional-pointer: true
volumes:
type: array
description: Status of volumes used by this application.
@@ -5555,8 +5808,7 @@ components:
type: object
properties:
apiVersion:
- type: string
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ $ref: '#/components/schemas/ApiVersion'
kind:
type: string
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
@@ -5576,8 +5828,7 @@ components:
type: object
properties:
apiVersion:
- type: string
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ $ref: '#/components/schemas/ApiVersion'
kind:
type: string
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
@@ -5635,8 +5886,7 @@ components:
description: ResourceSync represents a reference to one or more files in a repository to sync to resource definitions.
properties:
apiVersion:
- type: string
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ $ref: '#/components/schemas/ApiVersion'
kind:
type: string
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
@@ -5655,6 +5905,8 @@ components:
type: object
description: ResourceSyncSpec describes the file(s) to sync from a repository.
properties:
+ type:
+ $ref: '#/components/schemas/ResourceSyncType'
repository:
type: string
description: The name of the repository resource to use as the sync source.
@@ -5668,6 +5920,16 @@ components:
- repository
- targetRevision
- path
+ ResourceSyncType:
+ type: string
+ description: 'The type of resources this ResourceSync manages. Defaults to fleet if not specified.'
+ default: fleet
+ enum:
+ - fleet
+ - catalog
+ x-enum-varnames:
+ - ResourceSyncTypeFleet
+ - ResourceSyncTypeCatalog
ResourceSyncStatus:
type: object
properties:
@@ -5690,8 +5952,7 @@ components:
type: object
properties:
apiVersion:
- type: string
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ $ref: '#/components/schemas/ApiVersion'
kind:
type: string
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
@@ -5711,8 +5972,7 @@ components:
type: object
properties:
apiVersion:
- type: string
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ $ref: '#/components/schemas/ApiVersion'
kind:
type: string
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
@@ -5732,8 +5992,7 @@ components:
type: object
properties:
apiVersion:
- type: string
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ $ref: '#/components/schemas/ApiVersion'
kind:
type: string
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
@@ -5958,8 +6217,7 @@ components:
type: object
properties:
apiVersion:
- type: string
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ $ref: '#/components/schemas/ApiVersion'
kind:
type: string
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
@@ -6005,8 +6263,7 @@ components:
type: object
properties:
apiVersion:
- type: string
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ $ref: '#/components/schemas/ApiVersion'
kind:
type: string
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
@@ -6027,8 +6284,7 @@ components:
type: object
properties:
apiVersion:
- type: string
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ $ref: '#/components/schemas/ApiVersion'
providers:
type: array
description: List of all available authentication providers.
@@ -6235,8 +6491,7 @@ components:
type: object
properties:
apiVersion:
- type: string
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ $ref: '#/components/schemas/ApiVersion'
kind:
type: string
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
@@ -6261,17 +6516,15 @@ components:
- code
- reason
- message
- Condition:
+ ConditionBase:
+ type: object
+ description: Base condition structure following Kubernetes API conventions. Use with allOf to add a specific type enum.
required:
- - type
- status
- lastTransitionTime
- reason
- message
- type: object
properties:
- type:
- $ref: '#/components/schemas/ConditionType'
status:
$ref: '#/components/schemas/ConditionStatus'
observedGeneration:
@@ -6288,7 +6541,16 @@ components:
reason:
type: string
description: A (brief) reason for the condition's last transition.
+ Condition:
description: Condition contains details for one aspect of the current state of this API Resource.
+ allOf:
+ - $ref: '#/components/schemas/ConditionBase'
+ - type: object
+ required:
+ - type
+ properties:
+ type:
+ $ref: '#/components/schemas/ConditionType'
ConditionType:
type: string
description: Type of condition in CamelCase.
@@ -6341,8 +6603,7 @@ components:
type: object
properties:
apiVersion:
- type: string
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ $ref: '#/components/schemas/ApiVersion'
kind:
type: string
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
@@ -6362,8 +6623,7 @@ components:
type: object
properties:
apiVersion:
- type: string
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ $ref: '#/components/schemas/ApiVersion'
kind:
type: string
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
@@ -6453,8 +6713,7 @@ components:
- actor
properties:
apiVersion:
- type: string
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ $ref: '#/components/schemas/ApiVersion'
kind:
type: string
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
@@ -6565,8 +6824,7 @@ components:
type: object
properties:
apiVersion:
- type: string
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ $ref: '#/components/schemas/ApiVersion'
kind:
type: string
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
@@ -6900,8 +7158,7 @@ components:
- metadata
properties:
apiVersion:
- type: string
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ $ref: '#/components/schemas/ApiVersion'
kind:
type: string
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
@@ -6928,8 +7185,7 @@ components:
- items
properties:
apiVersion:
- type: string
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ $ref: '#/components/schemas/ApiVersion'
kind:
type: string
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
@@ -6945,8 +7201,7 @@ components:
type: object
properties:
apiVersion:
- type: string
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ $ref: '#/components/schemas/ApiVersion'
kind:
type: string
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
@@ -7391,8 +7646,7 @@ components:
type: object
properties:
apiVersion:
- type: string
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ $ref: '#/components/schemas/ApiVersion'
kind:
type: string
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
@@ -7434,4 +7688,4 @@ components:
type: string
required:
- resource
- - operations
\ No newline at end of file
+ - operations
diff --git a/api/imagebuilder/v1alpha1/openapi.yaml b/api/imagebuilder/v1alpha1/openapi.yaml
new file mode 100644
index 0000000..e34eb61
--- /dev/null
+++ b/api/imagebuilder/v1alpha1/openapi.yaml
@@ -0,0 +1,1240 @@
+openapi: 3.0.1
+info:
+ title: Flight Control Image Builder API
+ version: v1alpha1
+ description: |
+ Image Builder service for Flight Control.
+ This service manages image build resources for building and pushing container images.
+ contact:
+ name: The Flight Control Team
+ url: https://flightctl.io
+ email: team@flightctl.io
+ license:
+ name: Apache 2.0
+ url: https://www.apache.org/licenses/LICENSE-2.0.html
+servers:
+ - url: /
+tags:
+ - name: imagebuild
+ description: Operations on ImageBuild resources.
+ - name: imageexport
+ description: Operations on ImageExport resources.
+# Note: Security is handled by Chi middleware (auth.CreateAuthNMiddleware), not OpenAPI validation
+# The securitySchemes are defined in components for documentation purposes
+paths:
+ /api/v1/imagebuilds:
+ x-resource: imagebuilds
+ get:
+ tags:
+ - imagebuild
+ description: List ImageBuild resources.
+ operationId: listImageBuilds
+ parameters:
+ - name: labelSelector
+ in: query
+ description: A selector to restrict the list of returned objects by their labels.
+ schema:
+ type: string
+ - name: fieldSelector
+ in: query
+ description: A selector to restrict the list of returned objects by their fields.
+ schema:
+ type: string
+ - name: limit
+ in: query
+ description: The maximum number of results returned in the list response.
+ schema:
+ type: integer
+ format: int32
+ - name: continue
+ in: query
+ description: An optional parameter to query more results from the server.
+ schema:
+ type: string
+ - name: withExports
+ in: query
+ description: If true, includes related ImageExport resources in each ImageBuild in the response.
+ schema:
+ type: boolean
+ default: false
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ImageBuildList'
+ "400":
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ post:
+ tags:
+ - imagebuild
+ description: Create an ImageBuild resource.
+ operationId: createImageBuild
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ImageBuild'
+ required: true
+ responses:
+ "201":
+ description: Created
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ImageBuild'
+ "400":
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "409":
+ description: Conflict
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ /api/v1/imagebuilds/{name}:
+ x-resource: imagebuilds
+ get:
+ tags:
+ - imagebuild
+ description: Get an ImageBuild resource.
+ operationId: getImageBuild
+ parameters:
+ - name: name
+ in: path
+ description: The name of the ImageBuild resource.
+ required: true
+ schema:
+ type: string
+ - name: withExports
+ in: query
+ description: If true, includes related ImageExport resources in the response.
+ schema:
+ type: boolean
+ default: false
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ImageBuild'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ delete:
+ tags:
+ - imagebuild
+ description: Delete an ImageBuild resource.
+ operationId: deleteImageBuild
+ parameters:
+ - name: name
+ in: path
+ description: The name of the ImageBuild resource.
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ImageBuild'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ /api/v1/imagebuilds/{name}/log:
+ x-resource: imagebuilds/log
+ get:
+ tags:
+ - imagebuild
+ description: Get logs for an ImageBuild resource. For active builds, streams logs live. For completed builds, returns last 500 lines.
+ operationId: getImageBuildLog
+ parameters:
+ - name: name
+ in: path
+ description: The name of the ImageBuild resource.
+ required: true
+ schema:
+ type: string
+ - name: follow
+ in: query
+ description: If true, stream logs continuously (like kubectl logs -f). For active builds, keeps connection open. For completed builds, returns all logs and closes.
+ schema:
+ type: boolean
+ default: false
+ responses:
+ "200":
+ description: OK
+ content:
+ text/plain:
+ schema:
+ type: string
+ description: Log output as plain text (when follow=false or for completed builds)
+ text/event-stream:
+ schema:
+ type: string
+ description: Log output as Server-Sent Events stream (when follow=true for active builds)
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ /api/v1/imagebuilds/{name}/cancel:
+ x-resource: imagebuilds/cancel
+ post:
+ tags:
+ - imagebuild
+ description: Cancel a running ImageBuild. Only builds in Pending, Building, or Pushing state can be canceled.
+ operationId: cancelImageBuild
+ parameters:
+ - name: name
+ in: path
+ description: The name of the ImageBuild resource to cancel.
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ImageBuild'
+ "400":
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "409":
+ description: Conflict - Build not in cancelable state
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ /api/v1/imageexports:
+ x-resource: imageexports
+ get:
+ tags:
+ - imageexport
+ description: List ImageExport resources.
+ operationId: listImageExports
+ parameters:
+ - name: labelSelector
+ in: query
+ description: A selector to restrict the list of returned objects by their labels.
+ schema:
+ type: string
+ - name: fieldSelector
+ in: query
+ description: A selector to restrict the list of returned objects by their fields.
+ schema:
+ type: string
+ - name: limit
+ in: query
+ description: The maximum number of results returned in the list response.
+ schema:
+ type: integer
+ format: int32
+ - name: continue
+ in: query
+ description: An optional parameter to query more results from the server.
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ImageExportList'
+ "400":
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ post:
+ tags:
+ - imageexport
+ description: Create an ImageExport resource.
+ operationId: createImageExport
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ImageExport'
+ required: true
+ responses:
+ "201":
+ description: Created
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ImageExport'
+ "400":
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "409":
+ description: Conflict
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ /api/v1/imageexports/{name}:
+ x-resource: imageexports
+ get:
+ tags:
+ - imageexport
+ description: Get an ImageExport resource.
+ operationId: getImageExport
+ parameters:
+ - name: name
+ in: path
+ description: The name of the ImageExport resource.
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ImageExport'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ delete:
+ tags:
+ - imageexport
+ description: Delete an ImageExport resource.
+ operationId: deleteImageExport
+ parameters:
+ - name: name
+ in: path
+ description: The name of the ImageExport resource.
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ImageExport'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ /api/v1/imageexports/{name}/cancel:
+ x-resource: imageexports/cancel
+ post:
+ tags:
+ - imageexport
+ description: Cancel a running ImageExport. Only exports in Pending, Converting, or Pushing state can be canceled.
+ operationId: cancelImageExport
+ parameters:
+ - name: name
+ in: path
+ description: The name of the ImageExport resource to cancel.
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ImageExport'
+ "400":
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "409":
+ description: Conflict - Export not in cancelable state
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ /api/v1/imageexports/{name}/download:
+ x-resource: imageexports/download
+ get:
+ tags:
+ - imageexport
+ description: Download an ImageExport artifact from the registry.
+ operationId: downloadImageExport
+ parameters:
+ - name: name
+ in: path
+ description: The name of the ImageExport resource.
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK - Artifact blob content
+ content:
+ application/octet-stream:
+ schema:
+ type: string
+ format: binary
+ "302":
+ description: Found - Redirect to registry blob URL
+ headers:
+ Location:
+ schema:
+ type: string
+ "307":
+ description: Temporary Redirect - Redirect to registry blob URL
+ headers:
+ Location:
+ schema:
+ type: string
+ "400":
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "500":
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ /api/v1/imageexports/{name}/log:
+ x-resource: imageexports/log
+ get:
+ tags:
+ - imageexport
+ description: Get logs for an ImageExport resource. For active exports, streams logs live. For completed exports, returns last 500 lines.
+ operationId: getImageExportLog
+ parameters:
+ - name: name
+ in: path
+ description: The name of the ImageExport resource.
+ required: true
+ schema:
+ type: string
+ - name: follow
+ in: query
+ description: If true, stream logs continuously (like kubectl logs -f). For active exports, keeps connection open. For completed exports, returns all logs and closes.
+ schema:
+ type: boolean
+ default: false
+ responses:
+ "200":
+ description: OK
+ content:
+ text/plain:
+ schema:
+ type: string
+ description: Log output as plain text (when follow=false or for completed exports)
+ text/event-stream:
+ schema:
+ type: string
+ description: Log output as Server-Sent Events stream (when follow=true for active exports)
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "429":
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ "503":
+ description: Service Unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+components:
+ securitySchemes:
+ bearerAuth:
+ $ref: '../../core/v1beta1/openapi.yaml#/components/securitySchemes/bearerAuth'
+ orgId:
+ $ref: '../../core/v1beta1/openapi.yaml#/components/securitySchemes/orgId'
+ schemas:
+ ApiVersion:
+ type: string
+ x-go-type: string
+ description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.'
+ enum:
+ - v1alpha1
+ - flightctl.io/v1alpha1
+ x-enum-varnames:
+ - ApiVersionV1alpha1
+ - ApiVersionFlightctlIoV1alpha1
+ ResourceKind:
+ type: string
+ enum: [ImageBuild, ImageExport]
+ description: Resource types exposed via the ImageBuilder API.
+ ImageBuild:
+ type: object
+ description: ImageBuild represents a build request for a container image.
+ properties:
+ apiVersion:
+ $ref: '#/components/schemas/ApiVersion'
+ kind:
+ type: string
+ description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
+ metadata:
+ $ref: '../../core/v1beta1/openapi.yaml#/components/schemas/ObjectMeta'
+ spec:
+ $ref: '#/components/schemas/ImageBuildSpec'
+ status:
+ $ref: '#/components/schemas/ImageBuildStatus'
+ imageexports:
+ type: array
+ description: Array of ImageExport resources that reference this ImageBuild. Only populated when withExports query parameter is true.
+ items:
+ $ref: '#/components/schemas/ImageExport'
+ required:
+ - apiVersion
+ - kind
+ - metadata
+ - spec
+
+ ImageBuildList:
+ type: object
+ description: ImageBuildList is a list of ImageBuild resources.
+ properties:
+ apiVersion:
+ $ref: '#/components/schemas/ApiVersion'
+ kind:
+ type: string
+ description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
+ metadata:
+ $ref: '../../core/v1beta1/openapi.yaml#/components/schemas/ListMeta'
+ items:
+ type: array
+ description: 'List of ImageBuild resources.'
+ items:
+ $ref: '#/components/schemas/ImageBuild'
+ required:
+ - apiVersion
+ - kind
+ - metadata
+ - items
+
+ ImageBuildSpec:
+ type: object
+ description: ImageBuildSpec describes the specification for an image build.
+ properties:
+ source:
+ $ref: '#/components/schemas/ImageBuildSource'
+ destination:
+ $ref: '#/components/schemas/ImageBuildDestination'
+ binding:
+ $ref: '#/components/schemas/ImageBuildBinding'
+ userConfiguration:
+ $ref: '#/components/schemas/ImageBuildUserConfiguration'
+ required:
+ - source
+ - destination
+ - binding
+
+ ImageBuildSource:
+ type: object
+ description: ImageBuildSource specifies the source image for the build.
+ properties:
+ repository:
+ type: string
+ description: The name of the Repository resource of type OCI containing the source image.
+ imageName:
+ type: string
+ description: The name of the source image.
+ imageTag:
+ type: string
+ description: The tag of the source image.
+ required:
+ - repository
+ - imageName
+ - imageTag
+
+ ImageBuildDestination:
+ type: object
+ description: ImageBuildDestination specifies the destination for the built image.
+ properties:
+ repository:
+ type: string
+ description: The name of the Repository resource of type OCI to push the built image to.
+ imageName:
+ type: string
+ description: The name of the output image.
+ imageTag:
+ type: string
+ description: The tag of the output image.
+ required:
+ - repository
+ - imageName
+ - imageTag
+
+ ImageBuildBinding:
+ description: ImageBuildBinding specifies binding configuration for the build.
+ oneOf:
+ - $ref: '#/components/schemas/EarlyBinding'
+ - $ref: '#/components/schemas/LateBinding'
+ discriminator:
+ propertyName: type
+ mapping:
+ early: '#/components/schemas/EarlyBinding'
+ late: '#/components/schemas/LateBinding'
+
+ ImageBuildUserConfiguration:
+ type: object
+ description: ImageBuildUserConfiguration specifies user configuration for the build.
+ properties:
+ username:
+ type: string
+ description: The username for the user configuration.
+ publickey:
+ type: string
+ description: The public key for the user configuration.
+ required:
+ - username
+ - publickey
+
+ EarlyBinding:
+ type: object
+ description: Early binding configuration - embeds certificate in the image.
+ required:
+ - type
+ properties:
+ type:
+ type: string
+ enum: [early]
+ description: The type of binding.
+
+ LateBinding:
+ type: object
+ description: Late binding configuration - device binds at first boot.
+ required:
+ - type
+ properties:
+ type:
+ type: string
+ enum: [late]
+ description: The type of binding.
+
+ BindingType:
+ type: string
+ description: The type of binding for the image build.
+ enum:
+ - early
+ - late
+ x-enum-varnames:
+ - BindingTypeEarly
+ - BindingTypeLate
+
+ ImageBuildStatus:
+ type: object
+ description: ImageBuildStatus represents the current status of an ImageBuild.
+ properties:
+ conditions:
+ type: array
+ description: Current conditions of the ImageBuild.
+ items:
+ $ref: '#/components/schemas/ImageBuildCondition'
+ imageReference:
+ type: string
+ description: The full image reference of the built image (e.g., quay.io/org/imagename:tag).
+ architecture:
+ type: string
+ description: The architecture of the built image.
+ manifestDigest:
+ type: string
+ description: The digest of the built image manifest.
+ lastSeen:
+ type: string
+ format: date-time
+ description: The last time the build was seen (heartbeat).
+
+ ImageBuildCondition:
+ description: Condition for ImageBuild resources.
+ allOf:
+ - $ref: '../../core/v1beta1/openapi.yaml#/components/schemas/ConditionBase'
+ - type: object
+ required:
+ - type
+ properties:
+ type:
+ $ref: '#/components/schemas/ImageBuildConditionType'
+ ImageBuildConditionType:
+ type: string
+ description: Type of ImageBuild condition.
+ enum:
+ - Ready
+ x-enum-varnames:
+ - ImageBuildConditionTypeReady
+ ImageBuildConditionReason:
+ type: string
+ description: Reason for the ImageBuild Ready condition.
+ enum:
+ - Pending
+ - Building
+ - Pushing
+ - Completed
+ - Failed
+ - Canceling
+ - Canceled
+ x-enum-varnames:
+ - ImageBuildConditionReasonPending
+ - ImageBuildConditionReasonBuilding
+ - ImageBuildConditionReasonPushing
+ - ImageBuildConditionReasonCompleted
+ - ImageBuildConditionReasonFailed
+ - ImageBuildConditionReasonCanceling
+ - ImageBuildConditionReasonCanceled
+ # ImageExport schemas
+ ImageExport:
+ type: object
+ description: ImageExport represents an export request to convert and push images to different formats.
+ properties:
+ apiVersion:
+ $ref: '#/components/schemas/ApiVersion'
+ kind:
+ type: string
+ description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
+ metadata:
+ $ref: '../../core/v1beta1/openapi.yaml#/components/schemas/ObjectMeta'
+ spec:
+ $ref: '#/components/schemas/ImageExportSpec'
+ status:
+ $ref: '#/components/schemas/ImageExportStatus'
+ required:
+ - apiVersion
+ - kind
+ - metadata
+ - spec
+
+ ImageExportList:
+ type: object
+ description: ImageExportList is a list of ImageExport resources.
+ properties:
+ apiVersion:
+ $ref: '#/components/schemas/ApiVersion'
+ kind:
+ type: string
+ description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
+ metadata:
+ $ref: '../../core/v1beta1/openapi.yaml#/components/schemas/ListMeta'
+ items:
+ type: array
+ description: 'List of ImageExport resources.'
+ items:
+ $ref: '#/components/schemas/ImageExport'
+ required:
+ - apiVersion
+ - kind
+ - metadata
+ - items
+
+ ImageExportSpec:
+ type: object
+ description: ImageExportSpec describes the specification for an image export.
+ properties:
+ source:
+ $ref: '#/components/schemas/ImageExportSource'
+ format:
+ $ref: '#/components/schemas/ExportFormatType'
+ required:
+ - source
+ - format
+
+ ImageExportSource:
+ description: ImageExportSource specifies the source image for the export.
+ oneOf:
+ - $ref: '#/components/schemas/ImageBuildRefSource'
+ discriminator:
+ propertyName: type
+ mapping:
+ imageBuild: '#/components/schemas/ImageBuildRefSource'
+
+ ImageBuildRefSource:
+ type: object
+ description: ImageBuildRefSource specifies a source image from an ImageBuild resource.
+ required:
+ - type
+ - imageBuildRef
+ properties:
+ type:
+ type: string
+ enum: [imageBuild]
+ description: The type of source.
+ imageBuildRef:
+ type: string
+ description: The name of the ImageBuild resource to use as source.
+
+ ImageExportSourceType:
+ type: string
+ description: The type of source for the image export.
+ enum:
+ - imageBuild
+ x-enum-varnames:
+ - ImageExportSourceTypeImageBuild
+
+ ExportFormatType:
+ type: string
+ description: The type of format to export the image to.
+ enum:
+ - vmdk
+ - qcow2
+ - iso
+ - qcow2-disk-container
+ x-enum-varnames:
+ - ExportFormatTypeVMDK
+ - ExportFormatTypeQCOW2
+ - ExportFormatTypeISO
+ - ExportFormatTypeQCOW2DiskContainer
+
+ ImageExportStatus:
+ type: object
+ description: ImageExportStatus represents the current status of an ImageExport.
+ properties:
+ conditions:
+ type: array
+ description: Current conditions of the ImageExport.
+ items:
+ $ref: '#/components/schemas/ImageExportCondition'
+ manifestDigest:
+ type: string
+ description: The digest of the exported image manifest for this format.
+ lastSeen:
+ type: string
+ format: date-time
+ description: The last time the export was seen (heartbeat).
+
+ ImageExportCondition:
+ description: Condition for ImageExport resources.
+ allOf:
+ - $ref: '../../core/v1beta1/openapi.yaml#/components/schemas/ConditionBase'
+ - type: object
+ required:
+ - type
+ properties:
+ type:
+ $ref: '#/components/schemas/ImageExportConditionType'
+ ImageExportConditionType:
+ type: string
+ description: Type of ImageExport condition.
+ enum:
+ - Ready
+ x-enum-varnames:
+ - ImageExportConditionTypeReady
+ ImageExportConditionReason:
+ type: string
+ description: Reason for the ImageExport Ready condition.
+ enum:
+ - Pending
+ - Converting
+ - Pushing
+ - Completed
+ - Failed
+ - Canceling
+ - Canceled
+ x-enum-varnames:
+ - ImageExportConditionReasonPending
+ - ImageExportConditionReasonConverting
+ - ImageExportConditionReasonPushing
+ - ImageExportConditionReasonCompleted
+ - ImageExportConditionReasonFailed
+ - ImageExportConditionReasonCanceling
+ - ImageExportConditionReasonCanceled
+
+ ImageExportFormatPhase:
+ type: string
+ description: The phase of a single format conversion.
+ enum:
+ - queued
+ - converting
+ - pushing
+ - complete
+ - failed
+ x-enum-varnames:
+ - ImageExportFormatPhaseQueued
+ - ImageExportFormatPhaseConverting
+ - ImageExportFormatPhasePushing
+ - ImageExportFormatPhaseComplete
+ - ImageExportFormatPhaseFailed
+ Status:
+ type: object
+ properties:
+ apiVersion:
+ $ref: '#/components/schemas/ApiVersion'
+ kind:
+ type: string
+ description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.'
+ code:
+ type: integer
+ format: int32
+ description: Suggested HTTP return code for this status, 0 if not set.
+ message:
+ type: string
+ description: A human-readable description of the status of this operation.
+ reason:
+ type: string
+ description: A machine-readable description of why this operation is in the "Failure" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.
+ status:
+ type: string
+ description: 'Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.'
+ description: Status is a return value for calls that don't return other objects.
+ required:
+ - apiVersion
+ - kind
+ - status
+ - code
+ - reason
+ - message
diff --git a/docs/ApiVersion.md b/docs/ApiVersion.md
new file mode 100644
index 0000000..027f8c2
--- /dev/null
+++ b/docs/ApiVersion.md
@@ -0,0 +1,15 @@
+# ApiVersion
+
+APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.
+
+## Enum
+
+* `ApiVersionV1beta1` (value: `'v1beta1'`)
+
+* `ApiVersionFlightctlIoV1beta1` (value: `'flightctl.io/v1beta1'`)
+
+* `ApiVersionEmpty` (value: `''`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/AppType.md b/docs/AppType.md
index bb1eaa1..4f5a212 100644
--- a/docs/AppType.md
+++ b/docs/AppType.md
@@ -10,6 +10,8 @@ The type of the application.
* `AppTypeContainer` (value: `'container'`)
+* `AppTypeHelm` (value: `'helm'`)
+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/docs/ApplicationProviderBase.md b/docs/ApplicationProviderBase.md
new file mode 100644
index 0000000..a06d510
--- /dev/null
+++ b/docs/ApplicationProviderBase.md
@@ -0,0 +1,31 @@
+# ApplicationProviderBase
+
+Common properties for all application types.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | The application name must be 1–253 characters long, start with a letter or number, and contain no whitespace. | [optional]
+**app_type** | [**AppType**](AppType.md) | |
+
+## Example
+
+```python
+from flightctl.models.application_provider_base import ApplicationProviderBase
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ApplicationProviderBase from a JSON string
+application_provider_base_instance = ApplicationProviderBase.from_json(json)
+# print the JSON string representation of the object
+print(ApplicationProviderBase.to_json())
+
+# convert the object into a dict
+application_provider_base_dict = application_provider_base_instance.to_dict()
+# create an instance of ApplicationProviderBase from a dict
+application_provider_base_from_dict = ApplicationProviderBase.from_dict(application_provider_base_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ApplicationProviderSpec.md b/docs/ApplicationProviderSpec.md
index ff01e40..6fe6905 100644
--- a/docs/ApplicationProviderSpec.md
+++ b/docs/ApplicationProviderSpec.md
@@ -5,14 +5,18 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**env_vars** | **Dict[str, str]** | Environment variable key-value pairs, injected during runtime. The key and value each must be between 1 and 253 characters. | [optional]
**name** | **str** | The application name must be 1–253 characters long, start with a letter or number, and contain no whitespace. | [optional]
**app_type** | [**AppType**](AppType.md) | |
+**env_vars** | **Dict[str, str]** | Environment variable key-value pairs, injected during runtime. The key and value each must be between 1 and 253 characters. | [optional]
**volumes** | [**List[ApplicationVolume]**](ApplicationVolume.md) | List of application volumes. | [optional]
-**image** | **str** | Reference to the OCI image or artifact for the application package. |
+**image** | **str** | Reference to the chart for this helm application. |
+**inline** | [**List[ApplicationContent]**](ApplicationContent.md) | A list of application content. |
+**run_as** | **str** | The username of the system user this application should be run under. This is not the same as the user within any containers of the application (if applicable). Defaults to the user that the agent runs as (generally root) if not specified. | [optional]
**ports** | **List[str]** | Port mappings. | [optional]
**resources** | [**ApplicationResources**](ApplicationResources.md) | | [optional]
-**inline** | [**List[ApplicationContent]**](ApplicationContent.md) | A list of application content. |
+**namespace** | **str** | The target namespace for the application deployment. | [optional]
+**values** | **Dict[str, object]** | Configuration values for the application. Supports arbitrarily nested structures. | [optional]
+**values_files** | **List[str]** | List of values files to apply during deployment. Files are relative paths and applied in array order before user-provided values. | [optional]
## Example
diff --git a/docs/ApplicationUser.md b/docs/ApplicationUser.md
new file mode 100644
index 0000000..840f025
--- /dev/null
+++ b/docs/ApplicationUser.md
@@ -0,0 +1,29 @@
+# ApplicationUser
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**run_as** | **str** | The username of the system user this application should be run under. This is not the same as the user within any containers of the application (if applicable). Defaults to the user that the agent runs as (generally root) if not specified. | [optional]
+
+## Example
+
+```python
+from flightctl.models.application_user import ApplicationUser
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ApplicationUser from a JSON string
+application_user_instance = ApplicationUser.from_json(json)
+# print the JSON string representation of the object
+print(ApplicationUser.to_json())
+
+# convert the object into a dict
+application_user_dict = application_user_instance.to_dict()
+# create an instance of ApplicationUser from a dict
+application_user_from_dict = ApplicationUser.from_dict(application_user_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/AuthConfig.md b/docs/AuthConfig.md
index d0b3a2d..f594404 100644
--- a/docs/AuthConfig.md
+++ b/docs/AuthConfig.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**api_version** | **str** | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
**providers** | [**List[AuthProvider]**](AuthProvider.md) | List of all available authentication providers. | [optional]
**default_provider** | **str** | Name of the default authentication provider. | [optional]
**organizations_enabled** | **bool** | Whether organizations are enabled for authentication. | [optional]
diff --git a/docs/AuthProvider.md b/docs/AuthProvider.md
index e8558fd..e56b389 100644
--- a/docs/AuthProvider.md
+++ b/docs/AuthProvider.md
@@ -6,7 +6,7 @@ AuthProvider represents an authentication provider configuration supporting both
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**api_version** | **str** | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
**metadata** | [**ObjectMeta**](ObjectMeta.md) | |
**spec** | [**AuthProviderSpec**](AuthProviderSpec.md) | |
diff --git a/docs/AuthProviderList.md b/docs/AuthProviderList.md
index c325096..0ff4cca 100644
--- a/docs/AuthProviderList.md
+++ b/docs/AuthProviderList.md
@@ -6,7 +6,7 @@ AuthProviderList is a list of auth providers.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**api_version** | **str** | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
**metadata** | [**ListMeta**](ListMeta.md) | |
**items** | [**List[AuthProvider]**](AuthProvider.md) | List of auth providers. |
diff --git a/docs/AuthenticationApi.md b/docs/AuthenticationApi.md
index 0041109..d306b59 100644
--- a/docs/AuthenticationApi.md
+++ b/docs/AuthenticationApi.md
@@ -1,14 +1,14 @@
# flightctl.AuthenticationApi
-All URIs are relative to *http://localhost*
+All URIs are relative to */api/v1*
Method | HTTP request | Description
------------- | ------------- | -------------
-[**auth_config**](AuthenticationApi.md#auth_config) | **GET** /api/v1/auth/config |
-[**auth_get_permissions**](AuthenticationApi.md#auth_get_permissions) | **GET** /api/v1/auth/permissions |
-[**auth_token**](AuthenticationApi.md#auth_token) | **POST** /api/v1/auth/{providername}/token |
-[**auth_user_info**](AuthenticationApi.md#auth_user_info) | **GET** /api/v1/auth/userinfo |
-[**auth_validate**](AuthenticationApi.md#auth_validate) | **GET** /api/v1/auth/validate |
+[**auth_config**](AuthenticationApi.md#auth_config) | **GET** /auth/config |
+[**auth_get_permissions**](AuthenticationApi.md#auth_get_permissions) | **GET** /auth/permissions |
+[**auth_token**](AuthenticationApi.md#auth_token) | **POST** /auth/{providername}/token |
+[**auth_user_info**](AuthenticationApi.md#auth_user_info) | **GET** /auth/userinfo |
+[**auth_validate**](AuthenticationApi.md#auth_validate) | **GET** /auth/validate |
# **auth_config**
@@ -25,10 +25,10 @@ from flightctl.models.auth_config import AuthConfig
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -88,10 +88,10 @@ from flightctl.models.permission_list import PermissionList
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -154,10 +154,10 @@ from flightctl.models.token_response import TokenResponse
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -222,10 +222,10 @@ from flightctl.models.user_info_response import UserInfoResponse
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -287,10 +287,10 @@ from flightctl.models.status import Status
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
diff --git a/docs/AuthproviderApi.md b/docs/AuthproviderApi.md
index 93c4b70..d3f65bb 100644
--- a/docs/AuthproviderApi.md
+++ b/docs/AuthproviderApi.md
@@ -1,15 +1,15 @@
# flightctl.AuthproviderApi
-All URIs are relative to *http://localhost*
+All URIs are relative to */api/v1*
Method | HTTP request | Description
------------- | ------------- | -------------
-[**create_auth_provider**](AuthproviderApi.md#create_auth_provider) | **POST** /api/v1/authproviders |
-[**delete_auth_provider**](AuthproviderApi.md#delete_auth_provider) | **DELETE** /api/v1/authproviders/{name} |
-[**get_auth_provider**](AuthproviderApi.md#get_auth_provider) | **GET** /api/v1/authproviders/{name} |
-[**list_auth_providers**](AuthproviderApi.md#list_auth_providers) | **GET** /api/v1/authproviders |
-[**patch_auth_provider**](AuthproviderApi.md#patch_auth_provider) | **PATCH** /api/v1/authproviders/{name} |
-[**replace_auth_provider**](AuthproviderApi.md#replace_auth_provider) | **PUT** /api/v1/authproviders/{name} |
+[**create_auth_provider**](AuthproviderApi.md#create_auth_provider) | **POST** /authproviders |
+[**delete_auth_provider**](AuthproviderApi.md#delete_auth_provider) | **DELETE** /authproviders/{name} |
+[**get_auth_provider**](AuthproviderApi.md#get_auth_provider) | **GET** /authproviders/{name} |
+[**list_auth_providers**](AuthproviderApi.md#list_auth_providers) | **GET** /authproviders |
+[**patch_auth_provider**](AuthproviderApi.md#patch_auth_provider) | **PATCH** /authproviders/{name} |
+[**replace_auth_provider**](AuthproviderApi.md#replace_auth_provider) | **PUT** /authproviders/{name} |
# **create_auth_provider**
@@ -26,10 +26,10 @@ from flightctl.models.auth_provider import AuthProvider
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -97,10 +97,10 @@ from flightctl.models.status import Status
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -167,10 +167,10 @@ from flightctl.models.auth_provider import AuthProvider
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -237,10 +237,10 @@ from flightctl.models.auth_provider_list import AuthProviderList
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -314,10 +314,10 @@ from flightctl.models.patch_request_inner import PatchRequestInner
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -388,10 +388,10 @@ from flightctl.models.auth_provider import AuthProvider
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
diff --git a/docs/CertificateSigningRequest.md b/docs/CertificateSigningRequest.md
index 356761d..ee5813d 100644
--- a/docs/CertificateSigningRequest.md
+++ b/docs/CertificateSigningRequest.md
@@ -6,7 +6,7 @@ CertificateSigningRequest represents a request for a signed certificate from the
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**api_version** | **str** | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
**metadata** | [**ObjectMeta**](ObjectMeta.md) | |
**spec** | [**CertificateSigningRequestSpec**](CertificateSigningRequestSpec.md) | |
diff --git a/docs/CertificateSigningRequestList.md b/docs/CertificateSigningRequestList.md
index b1379a9..41fb967 100644
--- a/docs/CertificateSigningRequestList.md
+++ b/docs/CertificateSigningRequestList.md
@@ -6,7 +6,7 @@ CertificateSigningRequestList is a list of CertificateSigningRequest.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**api_version** | **str** | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
**metadata** | [**ListMeta**](ListMeta.md) | |
**items** | [**List[CertificateSigningRequest]**](CertificateSigningRequest.md) | List of CertificateSigningRequest. |
diff --git a/docs/CertificatesigningrequestApi.md b/docs/CertificatesigningrequestApi.md
index 9162ae0..10827b4 100644
--- a/docs/CertificatesigningrequestApi.md
+++ b/docs/CertificatesigningrequestApi.md
@@ -1,16 +1,16 @@
# flightctl.CertificatesigningrequestApi
-All URIs are relative to *http://localhost*
+All URIs are relative to */api/v1*
Method | HTTP request | Description
------------- | ------------- | -------------
-[**create_certificate_signing_request**](CertificatesigningrequestApi.md#create_certificate_signing_request) | **POST** /api/v1/certificatesigningrequests |
-[**delete_certificate_signing_request**](CertificatesigningrequestApi.md#delete_certificate_signing_request) | **DELETE** /api/v1/certificatesigningrequests/{name} |
-[**get_certificate_signing_request**](CertificatesigningrequestApi.md#get_certificate_signing_request) | **GET** /api/v1/certificatesigningrequests/{name} |
-[**list_certificate_signing_requests**](CertificatesigningrequestApi.md#list_certificate_signing_requests) | **GET** /api/v1/certificatesigningrequests |
-[**patch_certificate_signing_request**](CertificatesigningrequestApi.md#patch_certificate_signing_request) | **PATCH** /api/v1/certificatesigningrequests/{name} |
-[**replace_certificate_signing_request**](CertificatesigningrequestApi.md#replace_certificate_signing_request) | **PUT** /api/v1/certificatesigningrequests/{name} |
-[**update_certificate_signing_request_approval**](CertificatesigningrequestApi.md#update_certificate_signing_request_approval) | **PUT** /api/v1/certificatesigningrequests/{name}/approval |
+[**create_certificate_signing_request**](CertificatesigningrequestApi.md#create_certificate_signing_request) | **POST** /certificatesigningrequests |
+[**delete_certificate_signing_request**](CertificatesigningrequestApi.md#delete_certificate_signing_request) | **DELETE** /certificatesigningrequests/{name} |
+[**get_certificate_signing_request**](CertificatesigningrequestApi.md#get_certificate_signing_request) | **GET** /certificatesigningrequests/{name} |
+[**list_certificate_signing_requests**](CertificatesigningrequestApi.md#list_certificate_signing_requests) | **GET** /certificatesigningrequests |
+[**patch_certificate_signing_request**](CertificatesigningrequestApi.md#patch_certificate_signing_request) | **PATCH** /certificatesigningrequests/{name} |
+[**replace_certificate_signing_request**](CertificatesigningrequestApi.md#replace_certificate_signing_request) | **PUT** /certificatesigningrequests/{name} |
+[**update_certificate_signing_request_approval**](CertificatesigningrequestApi.md#update_certificate_signing_request_approval) | **PUT** /certificatesigningrequests/{name}/approval |
# **create_certificate_signing_request**
@@ -27,10 +27,10 @@ from flightctl.models.certificate_signing_request import CertificateSigningReque
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -98,10 +98,10 @@ from flightctl.models.status import Status
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -168,10 +168,10 @@ from flightctl.models.certificate_signing_request import CertificateSigningReque
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -238,10 +238,10 @@ from flightctl.models.certificate_signing_request_list import CertificateSigning
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -315,10 +315,10 @@ from flightctl.models.patch_request_inner import PatchRequestInner
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -367,8 +367,8 @@ No authorization required
**200** | OK | - |
**400** | Bad Request | - |
**401** | Unauthorized | - |
-**404** | Not Found | - |
**403** | Forbidden | - |
+**404** | Not Found | - |
**409** | Conflict | - |
**429** | Too Many Requests | - |
**503** | Service Unavailable | - |
@@ -389,10 +389,10 @@ from flightctl.models.certificate_signing_request import CertificateSigningReque
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -464,10 +464,10 @@ from flightctl.models.certificate_signing_request import CertificateSigningReque
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
diff --git a/docs/ComposeApplication.md b/docs/ComposeApplication.md
new file mode 100644
index 0000000..dad1e06
--- /dev/null
+++ b/docs/ComposeApplication.md
@@ -0,0 +1,34 @@
+# ComposeApplication
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | The application name must be 1–253 characters long, start with a letter or number, and contain no whitespace. | [optional]
+**app_type** | [**AppType**](AppType.md) | |
+**env_vars** | **Dict[str, str]** | Environment variable key-value pairs, injected during runtime. The key and value each must be between 1 and 253 characters. | [optional]
+**volumes** | [**List[ApplicationVolume]**](ApplicationVolume.md) | List of application volumes. | [optional]
+**image** | **str** | Reference to the OCI image or artifact for the application package. |
+**inline** | [**List[ApplicationContent]**](ApplicationContent.md) | A list of application content. |
+
+## Example
+
+```python
+from flightctl.models.compose_application import ComposeApplication
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ComposeApplication from a JSON string
+compose_application_instance = ComposeApplication.from_json(json)
+# print the JSON string representation of the object
+print(ComposeApplication.to_json())
+
+# convert the object into a dict
+compose_application_dict = compose_application_instance.to_dict()
+# create an instance of ComposeApplication from a dict
+compose_application_from_dict = ComposeApplication.from_dict(compose_application_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/Condition.md b/docs/Condition.md
index dacef2b..8620861 100644
--- a/docs/Condition.md
+++ b/docs/Condition.md
@@ -6,12 +6,12 @@ Condition contains details for one aspect of the current state of this API Resou
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**type** | [**ConditionType**](ConditionType.md) | |
**status** | [**ConditionStatus**](ConditionStatus.md) | |
**observed_generation** | **int** | The .metadata.generation that the condition was set based upon. | [optional]
**last_transition_time** | **datetime** | The last time the condition transitioned from one status to another. |
**message** | **str** | Human readable message indicating details about last transition. |
**reason** | **str** | A (brief) reason for the condition's last transition. |
+**type** | [**ConditionType**](ConditionType.md) | |
## Example
diff --git a/docs/ConditionBase.md b/docs/ConditionBase.md
new file mode 100644
index 0000000..cc4d0d5
--- /dev/null
+++ b/docs/ConditionBase.md
@@ -0,0 +1,34 @@
+# ConditionBase
+
+Base condition structure following Kubernetes API conventions. Use with allOf to add a specific type enum.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**status** | [**ConditionStatus**](ConditionStatus.md) | |
+**observed_generation** | **int** | The .metadata.generation that the condition was set based upon. | [optional]
+**last_transition_time** | **datetime** | The last time the condition transitioned from one status to another. |
+**message** | **str** | Human readable message indicating details about last transition. |
+**reason** | **str** | A (brief) reason for the condition's last transition. |
+
+## Example
+
+```python
+from flightctl.models.condition_base import ConditionBase
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ConditionBase from a JSON string
+condition_base_instance = ConditionBase.from_json(json)
+# print the JSON string representation of the object
+print(ConditionBase.to_json())
+
+# convert the object into a dict
+condition_base_dict = condition_base_instance.to_dict()
+# create an instance of ConditionBase from a dict
+condition_base_from_dict = ConditionBase.from_dict(condition_base_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ContainerApplication.md b/docs/ContainerApplication.md
new file mode 100644
index 0000000..cd85cb8
--- /dev/null
+++ b/docs/ContainerApplication.md
@@ -0,0 +1,36 @@
+# ContainerApplication
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | The application name must be 1–253 characters long, start with a letter or number, and contain no whitespace. | [optional]
+**app_type** | [**AppType**](AppType.md) | |
+**env_vars** | **Dict[str, str]** | Environment variable key-value pairs, injected during runtime. The key and value each must be between 1 and 253 characters. | [optional]
+**run_as** | **str** | The username of the system user this application should be run under. This is not the same as the user within any containers of the application (if applicable). Defaults to the user that the agent runs as (generally root) if not specified. | [optional]
+**volumes** | [**List[ApplicationVolume]**](ApplicationVolume.md) | List of application volumes. | [optional]
+**image** | **str** | Reference to the image for this container. |
+**ports** | **List[str]** | Port mappings. | [optional]
+**resources** | [**ApplicationResources**](ApplicationResources.md) | | [optional]
+
+## Example
+
+```python
+from flightctl.models.container_application import ContainerApplication
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ContainerApplication from a JSON string
+container_application_instance = ContainerApplication.from_json(json)
+# print the JSON string representation of the object
+print(ContainerApplication.to_json())
+
+# convert the object into a dict
+container_application_dict = container_application_instance.to_dict()
+# create an instance of ContainerApplication from a dict
+container_application_from_dict = ContainerApplication.from_dict(container_application_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ContainerApplicationProperties.md b/docs/ContainerApplicationProperties.md
new file mode 100644
index 0000000..ca28d44
--- /dev/null
+++ b/docs/ContainerApplicationProperties.md
@@ -0,0 +1,31 @@
+# ContainerApplicationProperties
+
+Properties for container application deployments.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**ports** | **List[str]** | Port mappings. | [optional]
+**resources** | [**ApplicationResources**](ApplicationResources.md) | | [optional]
+
+## Example
+
+```python
+from flightctl.models.container_application_properties import ContainerApplicationProperties
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ContainerApplicationProperties from a JSON string
+container_application_properties_instance = ContainerApplicationProperties.from_json(json)
+# print the JSON string representation of the object
+print(ContainerApplicationProperties.to_json())
+
+# convert the object into a dict
+container_application_properties_dict = container_application_properties_instance.to_dict()
+# create an instance of ContainerApplicationProperties from a dict
+container_application_properties_from_dict = ContainerApplicationProperties.from_dict(container_application_properties_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/Device.md b/docs/Device.md
index c693bf6..6156fdc 100644
--- a/docs/Device.md
+++ b/docs/Device.md
@@ -6,7 +6,7 @@ Device represents a physical device.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**api_version** | **str** | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
**metadata** | [**ObjectMeta**](ObjectMeta.md) | |
**spec** | [**DeviceSpec**](DeviceSpec.md) | | [optional]
diff --git a/docs/DeviceApi.md b/docs/DeviceApi.md
index 625d3ce..dcd999d 100644
--- a/docs/DeviceApi.md
+++ b/docs/DeviceApi.md
@@ -1,21 +1,21 @@
# flightctl.DeviceApi
-All URIs are relative to *http://localhost*
+All URIs are relative to */api/v1*
Method | HTTP request | Description
------------- | ------------- | -------------
-[**create_device**](DeviceApi.md#create_device) | **POST** /api/v1/devices |
-[**decommission_device**](DeviceApi.md#decommission_device) | **PUT** /api/v1/devices/{name}/decommission |
-[**delete_device**](DeviceApi.md#delete_device) | **DELETE** /api/v1/devices/{name} |
-[**get_device**](DeviceApi.md#get_device) | **GET** /api/v1/devices/{name} |
-[**get_device_last_seen**](DeviceApi.md#get_device_last_seen) | **GET** /api/v1/devices/{name}/lastseen |
-[**get_device_status**](DeviceApi.md#get_device_status) | **GET** /api/v1/devices/{name}/status |
-[**get_rendered_device**](DeviceApi.md#get_rendered_device) | **GET** /api/v1/devices/{name}/rendered |
-[**list_devices**](DeviceApi.md#list_devices) | **GET** /api/v1/devices |
-[**patch_device**](DeviceApi.md#patch_device) | **PATCH** /api/v1/devices/{name} |
-[**patch_device_status**](DeviceApi.md#patch_device_status) | **PATCH** /api/v1/devices/{name}/status |
-[**replace_device**](DeviceApi.md#replace_device) | **PUT** /api/v1/devices/{name} |
-[**replace_device_status**](DeviceApi.md#replace_device_status) | **PUT** /api/v1/devices/{name}/status |
+[**create_device**](DeviceApi.md#create_device) | **POST** /devices |
+[**decommission_device**](DeviceApi.md#decommission_device) | **PUT** /devices/{name}/decommission |
+[**delete_device**](DeviceApi.md#delete_device) | **DELETE** /devices/{name} |
+[**get_device**](DeviceApi.md#get_device) | **GET** /devices/{name} |
+[**get_device_last_seen**](DeviceApi.md#get_device_last_seen) | **GET** /devices/{name}/lastseen |
+[**get_device_status**](DeviceApi.md#get_device_status) | **GET** /devices/{name}/status |
+[**get_rendered_device**](DeviceApi.md#get_rendered_device) | **GET** /devices/{name}/rendered |
+[**list_devices**](DeviceApi.md#list_devices) | **GET** /devices |
+[**patch_device**](DeviceApi.md#patch_device) | **PATCH** /devices/{name} |
+[**patch_device_status**](DeviceApi.md#patch_device_status) | **PATCH** /devices/{name}/status |
+[**replace_device**](DeviceApi.md#replace_device) | **PUT** /devices/{name} |
+[**replace_device_status**](DeviceApi.md#replace_device_status) | **PUT** /devices/{name}/status |
# **create_device**
@@ -32,10 +32,10 @@ from flightctl.models.device import Device
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -104,10 +104,10 @@ from flightctl.models.device_decommission import DeviceDecommission
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -177,10 +177,10 @@ from flightctl.models.status import Status
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -247,10 +247,10 @@ from flightctl.models.device import Device
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -317,10 +317,10 @@ from flightctl.models.device_last_seen import DeviceLastSeen
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -388,10 +388,10 @@ from flightctl.models.device import Device
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -458,10 +458,10 @@ from flightctl.models.device import Device
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -532,10 +532,10 @@ from flightctl.models.device_list import DeviceList
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -611,10 +611,10 @@ from flightctl.models.patch_request_inner import PatchRequestInner
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -686,10 +686,10 @@ from flightctl.models.patch_request_inner import PatchRequestInner
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -759,10 +759,10 @@ from flightctl.models.device import Device
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -834,10 +834,10 @@ from flightctl.models.device import Device
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
diff --git a/docs/DeviceApplicationStatus.md b/docs/DeviceApplicationStatus.md
index cea42cb..8e9a4ba 100644
--- a/docs/DeviceApplicationStatus.md
+++ b/docs/DeviceApplicationStatus.md
@@ -11,6 +11,7 @@ Name | Type | Description | Notes
**status** | [**ApplicationStatusType**](ApplicationStatusType.md) | |
**embedded** | **bool** | Whether the application is embedded in the bootc image. |
**app_type** | [**AppType**](AppType.md) | |
+**run_as** | **str** | The username of the system user this application is runing under. If blank, the application is run as the same user as the agent (generally root). | [optional]
**volumes** | [**List[ApplicationVolumeStatus]**](ApplicationVolumeStatus.md) | Status of volumes used by this application. | [optional]
## Example
diff --git a/docs/DeviceList.md b/docs/DeviceList.md
index 2890764..137048f 100644
--- a/docs/DeviceList.md
+++ b/docs/DeviceList.md
@@ -6,7 +6,7 @@ DeviceList is a list of Devices.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**api_version** | **str** | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
**metadata** | [**ListMeta**](ListMeta.md) | |
**items** | [**List[Device]**](Device.md) | List of Devices. |
diff --git a/docs/DeviceactionsApi.md b/docs/DeviceactionsApi.md
index c14fa39..d62713a 100644
--- a/docs/DeviceactionsApi.md
+++ b/docs/DeviceactionsApi.md
@@ -1,10 +1,10 @@
# flightctl.DeviceactionsApi
-All URIs are relative to *http://localhost*
+All URIs are relative to */api/v1*
Method | HTTP request | Description
------------- | ------------- | -------------
-[**resume_devices**](DeviceactionsApi.md#resume_devices) | **POST** /api/v1/deviceactions/resume |
+[**resume_devices**](DeviceactionsApi.md#resume_devices) | **POST** /deviceactions/resume |
# **resume_devices**
@@ -22,10 +22,10 @@ from flightctl.models.device_resume_response import DeviceResumeResponse
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
diff --git a/docs/DockerAuth.md b/docs/DockerAuth.md
new file mode 100644
index 0000000..e8f1659
--- /dev/null
+++ b/docs/DockerAuth.md
@@ -0,0 +1,32 @@
+# DockerAuth
+
+Docker-style authentication for OCI registries.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**auth_type** | [**OciAuthType**](OciAuthType.md) | |
+**username** | **str** | The username for registry authentication. |
+**password** | **str** | The password or token for registry authentication. |
+
+## Example
+
+```python
+from flightctl.models.docker_auth import DockerAuth
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of DockerAuth from a JSON string
+docker_auth_instance = DockerAuth.from_json(json)
+# print the JSON string representation of the object
+print(DockerAuth.to_json())
+
+# convert the object into a dict
+docker_auth_dict = docker_auth_instance.to_dict()
+# create an instance of DockerAuth from a dict
+docker_auth_from_dict = DockerAuth.from_dict(docker_auth_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/EnrollmentRequest.md b/docs/EnrollmentRequest.md
index f01faa5..c5ed3e8 100644
--- a/docs/EnrollmentRequest.md
+++ b/docs/EnrollmentRequest.md
@@ -6,7 +6,7 @@ EnrollmentRequest represents a request for approval to enroll a device.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**api_version** | **str** | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
**metadata** | [**ObjectMeta**](ObjectMeta.md) | |
**spec** | [**EnrollmentRequestSpec**](EnrollmentRequestSpec.md) | |
diff --git a/docs/EnrollmentRequestList.md b/docs/EnrollmentRequestList.md
index 4a9b172..78cb1de 100644
--- a/docs/EnrollmentRequestList.md
+++ b/docs/EnrollmentRequestList.md
@@ -6,7 +6,7 @@ EnrollmentRequestList is a list of EnrollmentRequest.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**api_version** | **str** | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
**metadata** | [**ListMeta**](ListMeta.md) | |
**items** | [**List[EnrollmentRequest]**](EnrollmentRequest.md) | List of EnrollmentRequest. |
diff --git a/docs/EnrollmentrequestApi.md b/docs/EnrollmentrequestApi.md
index d11913e..e0355db 100644
--- a/docs/EnrollmentrequestApi.md
+++ b/docs/EnrollmentrequestApi.md
@@ -1,20 +1,20 @@
# flightctl.EnrollmentrequestApi
-All URIs are relative to *http://localhost*
+All URIs are relative to */api/v1*
Method | HTTP request | Description
------------- | ------------- | -------------
-[**approve_enrollment_request**](EnrollmentrequestApi.md#approve_enrollment_request) | **PUT** /api/v1/enrollmentrequests/{name}/approval |
-[**create_enrollment_request**](EnrollmentrequestApi.md#create_enrollment_request) | **POST** /api/v1/enrollmentrequests |
-[**delete_enrollment_request**](EnrollmentrequestApi.md#delete_enrollment_request) | **DELETE** /api/v1/enrollmentrequests/{name} |
-[**get_enrollment_config**](EnrollmentrequestApi.md#get_enrollment_config) | **GET** /api/v1/enrollmentconfig |
-[**get_enrollment_request**](EnrollmentrequestApi.md#get_enrollment_request) | **GET** /api/v1/enrollmentrequests/{name} |
-[**get_enrollment_request_status**](EnrollmentrequestApi.md#get_enrollment_request_status) | **GET** /api/v1/enrollmentrequests/{name}/status |
-[**list_enrollment_requests**](EnrollmentrequestApi.md#list_enrollment_requests) | **GET** /api/v1/enrollmentrequests |
-[**patch_enrollment_request**](EnrollmentrequestApi.md#patch_enrollment_request) | **PATCH** /api/v1/enrollmentrequests/{name} |
-[**patch_enrollment_request_status**](EnrollmentrequestApi.md#patch_enrollment_request_status) | **PATCH** /api/v1/enrollmentrequests/{name}/status |
-[**replace_enrollment_request**](EnrollmentrequestApi.md#replace_enrollment_request) | **PUT** /api/v1/enrollmentrequests/{name} |
-[**replace_enrollment_request_status**](EnrollmentrequestApi.md#replace_enrollment_request_status) | **PUT** /api/v1/enrollmentrequests/{name}/status |
+[**approve_enrollment_request**](EnrollmentrequestApi.md#approve_enrollment_request) | **PUT** /enrollmentrequests/{name}/approval |
+[**create_enrollment_request**](EnrollmentrequestApi.md#create_enrollment_request) | **POST** /enrollmentrequests |
+[**delete_enrollment_request**](EnrollmentrequestApi.md#delete_enrollment_request) | **DELETE** /enrollmentrequests/{name} |
+[**get_enrollment_config**](EnrollmentrequestApi.md#get_enrollment_config) | **GET** /enrollmentconfig |
+[**get_enrollment_request**](EnrollmentrequestApi.md#get_enrollment_request) | **GET** /enrollmentrequests/{name} |
+[**get_enrollment_request_status**](EnrollmentrequestApi.md#get_enrollment_request_status) | **GET** /enrollmentrequests/{name}/status |
+[**list_enrollment_requests**](EnrollmentrequestApi.md#list_enrollment_requests) | **GET** /enrollmentrequests |
+[**patch_enrollment_request**](EnrollmentrequestApi.md#patch_enrollment_request) | **PATCH** /enrollmentrequests/{name} |
+[**patch_enrollment_request_status**](EnrollmentrequestApi.md#patch_enrollment_request_status) | **PATCH** /enrollmentrequests/{name}/status |
+[**replace_enrollment_request**](EnrollmentrequestApi.md#replace_enrollment_request) | **PUT** /enrollmentrequests/{name} |
+[**replace_enrollment_request_status**](EnrollmentrequestApi.md#replace_enrollment_request_status) | **PUT** /enrollmentrequests/{name}/status |
# **approve_enrollment_request**
@@ -32,10 +32,10 @@ from flightctl.models.enrollment_request_approval_status import EnrollmentReques
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -105,10 +105,10 @@ from flightctl.models.enrollment_request import EnrollmentRequest
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -176,10 +176,10 @@ from flightctl.models.status import Status
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -247,10 +247,10 @@ from flightctl.models.enrollment_config import EnrollmentConfig
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -318,10 +318,10 @@ from flightctl.models.enrollment_request import EnrollmentRequest
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -388,10 +388,10 @@ from flightctl.models.enrollment_request import EnrollmentRequest
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -458,10 +458,10 @@ from flightctl.models.enrollment_request_list import EnrollmentRequestList
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -535,10 +535,10 @@ from flightctl.models.patch_request_inner import PatchRequestInner
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -610,10 +610,10 @@ from flightctl.models.patch_request_inner import PatchRequestInner
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -684,10 +684,10 @@ from flightctl.models.enrollment_request import EnrollmentRequest
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -759,10 +759,10 @@ from flightctl.models.enrollment_request import EnrollmentRequest
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
diff --git a/docs/Event.md b/docs/Event.md
index 08067b5..f0a51f3 100644
--- a/docs/Event.md
+++ b/docs/Event.md
@@ -6,7 +6,7 @@ Event represents a single event that occurred in the system.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**api_version** | **str** | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
**metadata** | [**ObjectMeta**](ObjectMeta.md) | |
**involved_object** | [**ObjectReference**](ObjectReference.md) | |
diff --git a/docs/EventApi.md b/docs/EventApi.md
index dabead2..c5ff0fd 100644
--- a/docs/EventApi.md
+++ b/docs/EventApi.md
@@ -1,10 +1,10 @@
# flightctl.EventApi
-All URIs are relative to *http://localhost*
+All URIs are relative to */api/v1*
Method | HTTP request | Description
------------- | ------------- | -------------
-[**list_events**](EventApi.md#list_events) | **GET** /api/v1/events |
+[**list_events**](EventApi.md#list_events) | **GET** /events |
# **list_events**
@@ -22,10 +22,10 @@ from flightctl.models.event_list import EventList
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
diff --git a/docs/EventList.md b/docs/EventList.md
index ea44276..545f010 100644
--- a/docs/EventList.md
+++ b/docs/EventList.md
@@ -6,7 +6,7 @@ EventList is a list of Events.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**api_version** | **str** | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
**metadata** | [**ListMeta**](ListMeta.md) | |
**items** | [**List[Event]**](Event.md) | List of Events. |
diff --git a/docs/Fleet.md b/docs/Fleet.md
index 278c577..8317c19 100644
--- a/docs/Fleet.md
+++ b/docs/Fleet.md
@@ -6,7 +6,7 @@ Fleet represents a set of devices.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**api_version** | **str** | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
**metadata** | [**ObjectMeta**](ObjectMeta.md) | |
**spec** | [**FleetSpec**](FleetSpec.md) | |
diff --git a/docs/FleetApi.md b/docs/FleetApi.md
index b6c0164..a34539d 100644
--- a/docs/FleetApi.md
+++ b/docs/FleetApi.md
@@ -1,21 +1,21 @@
# flightctl.FleetApi
-All URIs are relative to *http://localhost*
+All URIs are relative to */api/v1*
Method | HTTP request | Description
------------- | ------------- | -------------
-[**create_fleet**](FleetApi.md#create_fleet) | **POST** /api/v1/fleets |
-[**delete_fleet**](FleetApi.md#delete_fleet) | **DELETE** /api/v1/fleets/{name} |
-[**delete_template_version**](FleetApi.md#delete_template_version) | **DELETE** /api/v1/fleets/{fleet}/templateversions/{name} |
-[**get_fleet**](FleetApi.md#get_fleet) | **GET** /api/v1/fleets/{name} |
-[**get_fleet_status**](FleetApi.md#get_fleet_status) | **GET** /api/v1/fleets/{name}/status |
-[**get_template_version**](FleetApi.md#get_template_version) | **GET** /api/v1/fleets/{fleet}/templateversions/{name} |
-[**list_fleets**](FleetApi.md#list_fleets) | **GET** /api/v1/fleets |
-[**list_template_versions**](FleetApi.md#list_template_versions) | **GET** /api/v1/fleets/{fleet}/templateversions |
-[**patch_fleet**](FleetApi.md#patch_fleet) | **PATCH** /api/v1/fleets/{name} |
-[**patch_fleet_status**](FleetApi.md#patch_fleet_status) | **PATCH** /api/v1/fleets/{name}/status |
-[**replace_fleet**](FleetApi.md#replace_fleet) | **PUT** /api/v1/fleets/{name} |
-[**replace_fleet_status**](FleetApi.md#replace_fleet_status) | **PUT** /api/v1/fleets/{name}/status |
+[**create_fleet**](FleetApi.md#create_fleet) | **POST** /fleets |
+[**delete_fleet**](FleetApi.md#delete_fleet) | **DELETE** /fleets/{name} |
+[**delete_template_version**](FleetApi.md#delete_template_version) | **DELETE** /fleets/{fleet}/templateversions/{name} |
+[**get_fleet**](FleetApi.md#get_fleet) | **GET** /fleets/{name} |
+[**get_fleet_status**](FleetApi.md#get_fleet_status) | **GET** /fleets/{name}/status |
+[**get_template_version**](FleetApi.md#get_template_version) | **GET** /fleets/{fleet}/templateversions/{name} |
+[**list_fleets**](FleetApi.md#list_fleets) | **GET** /fleets |
+[**list_template_versions**](FleetApi.md#list_template_versions) | **GET** /fleets/{fleet}/templateversions |
+[**patch_fleet**](FleetApi.md#patch_fleet) | **PATCH** /fleets/{name} |
+[**patch_fleet_status**](FleetApi.md#patch_fleet_status) | **PATCH** /fleets/{name}/status |
+[**replace_fleet**](FleetApi.md#replace_fleet) | **PUT** /fleets/{name} |
+[**replace_fleet_status**](FleetApi.md#replace_fleet_status) | **PUT** /fleets/{name}/status |
# **create_fleet**
@@ -32,10 +32,10 @@ from flightctl.models.fleet import Fleet
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -103,10 +103,10 @@ from flightctl.models.status import Status
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -173,10 +173,10 @@ from flightctl.models.status import Status
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -245,10 +245,10 @@ from flightctl.models.fleet import Fleet
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -317,10 +317,10 @@ from flightctl.models.fleet import Fleet
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -387,10 +387,10 @@ from flightctl.models.template_version import TemplateVersion
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -459,10 +459,10 @@ from flightctl.models.fleet_list import FleetList
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -537,10 +537,10 @@ from flightctl.models.template_version_list import TemplateVersionList
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -616,10 +616,10 @@ from flightctl.models.patch_request_inner import PatchRequestInner
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -691,10 +691,10 @@ from flightctl.models.patch_request_inner import PatchRequestInner
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -764,10 +764,10 @@ from flightctl.models.fleet import Fleet
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -817,8 +817,8 @@ No authorization required
**201** | Created | - |
**400** | Bad Request | - |
**401** | Unauthorized | - |
-**404** | Not Found | - |
**403** | Forbidden | - |
+**404** | Not Found | - |
**409** | Conflict | - |
**429** | Too Many Requests | - |
**503** | Service Unavailable | - |
@@ -839,10 +839,10 @@ from flightctl.models.fleet import Fleet
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
diff --git a/docs/FleetList.md b/docs/FleetList.md
index 9411377..963861c 100644
--- a/docs/FleetList.md
+++ b/docs/FleetList.md
@@ -6,7 +6,7 @@ FleetList is a list of Fleets.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**api_version** | **str** | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
**metadata** | [**ListMeta**](ListMeta.md) | |
**items** | [**List[Fleet]**](Fleet.md) | List of Fleets. |
diff --git a/docs/GitRepoSpec.md b/docs/GitRepoSpec.md
new file mode 100644
index 0000000..bc4c321
--- /dev/null
+++ b/docs/GitRepoSpec.md
@@ -0,0 +1,33 @@
+# GitRepoSpec
+
+Git repository specification. Supports no auth (public repos), HTTP/HTTPS auth, or SSH auth.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**url** | **str** | The Git repository URL to clone from. |
+**type** | **str** | The repository type discriminator. |
+**http_config** | [**HttpConfig**](HttpConfig.md) | | [optional]
+**ssh_config** | [**SshConfig**](SshConfig.md) | | [optional]
+
+## Example
+
+```python
+from flightctl.models.git_repo_spec import GitRepoSpec
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of GitRepoSpec from a JSON string
+git_repo_spec_instance = GitRepoSpec.from_json(json)
+# print the JSON string representation of the object
+print(GitRepoSpec.to_json())
+
+# convert the object into a dict
+git_repo_spec_dict = git_repo_spec_instance.to_dict()
+# create an instance of GitRepoSpec from a dict
+git_repo_spec_from_dict = GitRepoSpec.from_dict(git_repo_spec_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/HelmApplication.md b/docs/HelmApplication.md
new file mode 100644
index 0000000..07a1c53
--- /dev/null
+++ b/docs/HelmApplication.md
@@ -0,0 +1,34 @@
+# HelmApplication
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | The application name must be 1–253 characters long, start with a letter or number, and contain no whitespace. | [optional]
+**app_type** | [**AppType**](AppType.md) | |
+**image** | **str** | Reference to the chart for this helm application. |
+**namespace** | **str** | The target namespace for the application deployment. | [optional]
+**values** | **Dict[str, object]** | Configuration values for the application. Supports arbitrarily nested structures. | [optional]
+**values_files** | **List[str]** | List of values files to apply during deployment. Files are relative paths and applied in array order before user-provided values. | [optional]
+
+## Example
+
+```python
+from flightctl.models.helm_application import HelmApplication
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of HelmApplication from a JSON string
+helm_application_instance = HelmApplication.from_json(json)
+# print the JSON string representation of the object
+print(HelmApplication.to_json())
+
+# convert the object into a dict
+helm_application_dict = helm_application_instance.to_dict()
+# create an instance of HelmApplication from a dict
+helm_application_from_dict = HelmApplication.from_dict(helm_application_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/HttpRepoSpec.md b/docs/HttpRepoSpec.md
index cc52014..55c32a9 100644
--- a/docs/HttpRepoSpec.md
+++ b/docs/HttpRepoSpec.md
@@ -1,13 +1,14 @@
# HttpRepoSpec
+HTTP endpoint specification for fetching configuration.
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**url** | **str** | The HTTP URL to call or clone from. |
-**type** | [**RepoSpecType**](RepoSpecType.md) | |
-**http_config** | [**HttpConfig**](HttpConfig.md) | |
+**url** | **str** | The HTTP URL to call. |
+**type** | **str** | The repository type discriminator. |
+**http_config** | [**HttpConfig**](HttpConfig.md) | | [optional]
**validation_suffix** | **str** | URL suffix used only for validating access to the repository. Users might use the URL field as a root URL to be used by config sources adding suffixes. This will help with the validation of the http endpoint. | [optional]
## Example
diff --git a/docs/ImageApplicationProviderSpec.md b/docs/ImageApplicationProviderSpec.md
index 834f38a..d279bec 100644
--- a/docs/ImageApplicationProviderSpec.md
+++ b/docs/ImageApplicationProviderSpec.md
@@ -5,10 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**volumes** | [**List[ApplicationVolume]**](ApplicationVolume.md) | List of application volumes. | [optional]
**image** | **str** | Reference to the OCI image or artifact for the application package. |
-**ports** | **List[str]** | Port mappings. | [optional]
-**resources** | [**ApplicationResources**](ApplicationResources.md) | | [optional]
## Example
diff --git a/docs/InlineApplicationProviderSpec.md b/docs/InlineApplicationProviderSpec.md
index 445ce7e..08763ad 100644
--- a/docs/InlineApplicationProviderSpec.md
+++ b/docs/InlineApplicationProviderSpec.md
@@ -5,7 +5,6 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**volumes** | [**List[ApplicationVolume]**](ApplicationVolume.md) | List of application volumes. | [optional]
**inline** | [**List[ApplicationContent]**](ApplicationContent.md) | A list of application content. |
## Example
diff --git a/docs/KubernetesSecretProviderSpecSecretRef.md b/docs/KubernetesSecretProviderSpecSecretRef.md
index f77d007..277f6f6 100644
--- a/docs/KubernetesSecretProviderSpecSecretRef.md
+++ b/docs/KubernetesSecretProviderSpecSecretRef.md
@@ -9,6 +9,8 @@ Name | Type | Description | Notes
**name** | **str** | The name of the secret. |
**namespace** | **str** | The namespace of the secret. |
**mount_path** | **str** | Path in the device's file system at which the secret should be mounted. |
+**user** | **str** | The file's owner, specified either as a name or numeric ID. Defaults to \"root\". | [optional]
+**group** | **str** | The file's group, specified either as a name or numeric ID. Defaults to \"root\". | [optional]
## Example
diff --git a/docs/LabelApi.md b/docs/LabelApi.md
index e52aa58..954cfc5 100644
--- a/docs/LabelApi.md
+++ b/docs/LabelApi.md
@@ -1,10 +1,10 @@
# flightctl.LabelApi
-All URIs are relative to *http://localhost*
+All URIs are relative to */api/v1*
Method | HTTP request | Description
------------- | ------------- | -------------
-[**list_labels**](LabelApi.md#list_labels) | **GET** /api/v1/labels |
+[**list_labels**](LabelApi.md#list_labels) | **GET** /labels |
# **list_labels**
@@ -21,10 +21,10 @@ import flightctl
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
diff --git a/docs/OciAuthType.md b/docs/OciAuthType.md
new file mode 100644
index 0000000..dc79f2e
--- /dev/null
+++ b/docs/OciAuthType.md
@@ -0,0 +1,11 @@
+# OciAuthType
+
+The type of authentication for OCI registries.
+
+## Enum
+
+* `DOCKER` (value: `'docker'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/OciRepoSpec.md b/docs/OciRepoSpec.md
new file mode 100644
index 0000000..586fe20
--- /dev/null
+++ b/docs/OciRepoSpec.md
@@ -0,0 +1,36 @@
+# OciRepoSpec
+
+OCI container registry specification.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**registry** | **str** | The OCI registry hostname, FQDN, or IP address with optional port (e.g., quay.io, registry.redhat.io, myregistry.com:5000, 192.168.1.1:5000, [::1]:5000). |
+**scheme** | **str** | URL scheme for connecting to the registry. | [optional] [default to 'https']
+**type** | **str** | The repository type discriminator. |
+**access_mode** | **str** | Access mode for the registry: \"Read\" for read-only (pull), \"ReadWrite\" for read-write (pull and push). | [optional] [default to 'Read']
+**oci_auth** | [**DockerAuth**](DockerAuth.md) | | [optional]
+**ca_crt** | **str** | Base64 encoded root CA. | [optional]
+**skip_server_verification** | **bool** | Skip remote server verification. | [optional]
+
+## Example
+
+```python
+from flightctl.models.oci_repo_spec import OciRepoSpec
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of OciRepoSpec from a JSON string
+oci_repo_spec_instance = OciRepoSpec.from_json(json)
+# print the JSON string representation of the object
+print(OciRepoSpec.to_json())
+
+# convert the object into a dict
+oci_repo_spec_dict = oci_repo_spec_instance.to_dict()
+# create an instance of OciRepoSpec from a dict
+oci_repo_spec_from_dict = OciRepoSpec.from_dict(oci_repo_spec_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/Organization.md b/docs/Organization.md
index e8a19c1..fe7f1df 100644
--- a/docs/Organization.md
+++ b/docs/Organization.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**api_version** | **str** | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
**metadata** | [**ObjectMeta**](ObjectMeta.md) | |
**spec** | [**OrganizationSpec**](OrganizationSpec.md) | | [optional]
diff --git a/docs/OrganizationApi.md b/docs/OrganizationApi.md
index 30a4928..441a4e6 100644
--- a/docs/OrganizationApi.md
+++ b/docs/OrganizationApi.md
@@ -1,10 +1,10 @@
# flightctl.OrganizationApi
-All URIs are relative to *http://localhost*
+All URIs are relative to */api/v1*
Method | HTTP request | Description
------------- | ------------- | -------------
-[**list_organizations**](OrganizationApi.md#list_organizations) | **GET** /api/v1/organizations | List organizations
+[**list_organizations**](OrganizationApi.md#list_organizations) | **GET** /organizations | List organizations
# **list_organizations**
@@ -23,10 +23,10 @@ from flightctl.models.organization_list import OrganizationList
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
diff --git a/docs/OrganizationList.md b/docs/OrganizationList.md
index 8876c32..6bdfb3a 100644
--- a/docs/OrganizationList.md
+++ b/docs/OrganizationList.md
@@ -6,7 +6,7 @@ OrganizationList is a list of Organizations.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**api_version** | **str** | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
**metadata** | [**ListMeta**](ListMeta.md) | |
**items** | [**List[Organization]**](Organization.md) | List of Organizations. |
diff --git a/docs/QuadletApplication.md b/docs/QuadletApplication.md
new file mode 100644
index 0000000..dedd460
--- /dev/null
+++ b/docs/QuadletApplication.md
@@ -0,0 +1,35 @@
+# QuadletApplication
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | The application name must be 1–253 characters long, start with a letter or number, and contain no whitespace. | [optional]
+**app_type** | [**AppType**](AppType.md) | |
+**env_vars** | **Dict[str, str]** | Environment variable key-value pairs, injected during runtime. The key and value each must be between 1 and 253 characters. | [optional]
+**run_as** | **str** | The username of the system user this application should be run under. This is not the same as the user within any containers of the application (if applicable). Defaults to the user that the agent runs as (generally root) if not specified. | [optional]
+**volumes** | [**List[ApplicationVolume]**](ApplicationVolume.md) | List of application volumes. | [optional]
+**image** | **str** | Reference to the OCI image or artifact for the application package. |
+**inline** | [**List[ApplicationContent]**](ApplicationContent.md) | A list of application content. |
+
+## Example
+
+```python
+from flightctl.models.quadlet_application import QuadletApplication
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of QuadletApplication from a JSON string
+quadlet_application_instance = QuadletApplication.from_json(json)
+# print the JSON string representation of the object
+print(QuadletApplication.to_json())
+
+# convert the object into a dict
+quadlet_application_dict = quadlet_application_instance.to_dict()
+# create an instance of QuadletApplication from a dict
+quadlet_application_from_dict = QuadletApplication.from_dict(quadlet_application_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/RepoSpecType.md b/docs/RepoSpecType.md
index a5a5770..7cd27c6 100644
--- a/docs/RepoSpecType.md
+++ b/docs/RepoSpecType.md
@@ -4,9 +4,11 @@ RepoSpecType is the type of the repository.
## Enum
-* `GIT` (value: `'git'`)
+* `RepoSpecTypeGit` (value: `'git'`)
-* `HTTP` (value: `'http'`)
+* `RepoSpecTypeHttp` (value: `'http'`)
+
+* `RepoSpecTypeOci` (value: `'oci'`)
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/docs/Repository.md b/docs/Repository.md
index 027a431..a02b704 100644
--- a/docs/Repository.md
+++ b/docs/Repository.md
@@ -6,7 +6,7 @@ Repository represents a Git repository or an HTTP endpoint.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**api_version** | **str** | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
**metadata** | [**ObjectMeta**](ObjectMeta.md) | |
**spec** | [**RepositorySpec**](RepositorySpec.md) | |
diff --git a/docs/RepositoryApi.md b/docs/RepositoryApi.md
index cd35e64..9125310 100644
--- a/docs/RepositoryApi.md
+++ b/docs/RepositoryApi.md
@@ -1,15 +1,15 @@
# flightctl.RepositoryApi
-All URIs are relative to *http://localhost*
+All URIs are relative to */api/v1*
Method | HTTP request | Description
------------- | ------------- | -------------
-[**create_repository**](RepositoryApi.md#create_repository) | **POST** /api/v1/repositories |
-[**delete_repository**](RepositoryApi.md#delete_repository) | **DELETE** /api/v1/repositories/{name} |
-[**get_repository**](RepositoryApi.md#get_repository) | **GET** /api/v1/repositories/{name} |
-[**list_repositories**](RepositoryApi.md#list_repositories) | **GET** /api/v1/repositories |
-[**patch_repository**](RepositoryApi.md#patch_repository) | **PATCH** /api/v1/repositories/{name} |
-[**replace_repository**](RepositoryApi.md#replace_repository) | **PUT** /api/v1/repositories/{name} |
+[**create_repository**](RepositoryApi.md#create_repository) | **POST** /repositories |
+[**delete_repository**](RepositoryApi.md#delete_repository) | **DELETE** /repositories/{name} |
+[**get_repository**](RepositoryApi.md#get_repository) | **GET** /repositories/{name} |
+[**list_repositories**](RepositoryApi.md#list_repositories) | **GET** /repositories |
+[**patch_repository**](RepositoryApi.md#patch_repository) | **PATCH** /repositories/{name} |
+[**replace_repository**](RepositoryApi.md#replace_repository) | **PUT** /repositories/{name} |
# **create_repository**
@@ -26,10 +26,10 @@ from flightctl.models.repository import Repository
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -97,10 +97,10 @@ from flightctl.models.status import Status
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -167,10 +167,10 @@ from flightctl.models.repository import Repository
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -237,10 +237,10 @@ from flightctl.models.repository_list import RepositoryList
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -314,10 +314,10 @@ from flightctl.models.repository import Repository
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -388,10 +388,10 @@ from flightctl.models.repository import Repository
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
diff --git a/docs/RepositoryList.md b/docs/RepositoryList.md
index 36abd80..43effba 100644
--- a/docs/RepositoryList.md
+++ b/docs/RepositoryList.md
@@ -6,7 +6,7 @@ RepositoryList is a list of Repositories.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**api_version** | **str** | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
**metadata** | [**ListMeta**](ListMeta.md) | |
**items** | [**List[Repository]**](Repository.md) | List of repositories. |
diff --git a/docs/RepositorySpec.md b/docs/RepositorySpec.md
index 71295d4..5de54c2 100644
--- a/docs/RepositorySpec.md
+++ b/docs/RepositorySpec.md
@@ -6,11 +6,17 @@ RepositorySpec describes a configuration repository.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**url** | **str** | The SSH Git repository URL to clone from. |
-**type** | [**RepoSpecType**](RepoSpecType.md) | |
-**http_config** | [**HttpConfig**](HttpConfig.md) | |
+**url** | **str** | The HTTP URL to call. |
+**type** | **str** | The repository type discriminator. |
+**http_config** | [**HttpConfig**](HttpConfig.md) | | [optional]
+**ssh_config** | [**SshConfig**](SshConfig.md) | | [optional]
**validation_suffix** | **str** | URL suffix used only for validating access to the repository. Users might use the URL field as a root URL to be used by config sources adding suffixes. This will help with the validation of the http endpoint. | [optional]
-**ssh_config** | [**SshConfig**](SshConfig.md) | |
+**registry** | **str** | The OCI registry hostname, FQDN, or IP address with optional port (e.g., quay.io, registry.redhat.io, myregistry.com:5000, 192.168.1.1:5000, [::1]:5000). |
+**scheme** | **str** | URL scheme for connecting to the registry. | [optional] [default to 'https']
+**access_mode** | **str** | Access mode for the registry: \"Read\" for read-only (pull), \"ReadWrite\" for read-write (pull and push). | [optional] [default to 'Read']
+**oci_auth** | [**DockerAuth**](DockerAuth.md) | | [optional]
+**ca_crt** | **str** | Base64 encoded root CA. | [optional]
+**skip_server_verification** | **bool** | Skip remote server verification. | [optional]
## Example
diff --git a/docs/ResourceSync.md b/docs/ResourceSync.md
index df3e21e..c8d924a 100644
--- a/docs/ResourceSync.md
+++ b/docs/ResourceSync.md
@@ -6,7 +6,7 @@ ResourceSync represents a reference to one or more files in a repository to sync
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**api_version** | **str** | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
**metadata** | [**ObjectMeta**](ObjectMeta.md) | |
**spec** | [**ResourceSyncSpec**](ResourceSyncSpec.md) | |
diff --git a/docs/ResourceSyncList.md b/docs/ResourceSyncList.md
index d16cd23..f3f0f34 100644
--- a/docs/ResourceSyncList.md
+++ b/docs/ResourceSyncList.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**api_version** | **str** | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
**metadata** | [**ListMeta**](ListMeta.md) | |
**items** | [**List[ResourceSync]**](ResourceSync.md) | List of resourcesync. |
diff --git a/docs/ResourceSyncSpec.md b/docs/ResourceSyncSpec.md
index b33ec2a..c10f8a6 100644
--- a/docs/ResourceSyncSpec.md
+++ b/docs/ResourceSyncSpec.md
@@ -6,6 +6,7 @@ ResourceSyncSpec describes the file(s) to sync from a repository.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
+**type** | [**ResourceSyncType**](ResourceSyncType.md) | | [optional] [default to ResourceSyncType.NUMBER_ResourceSyncTypeFleet]
**repository** | **str** | The name of the repository resource to use as the sync source. |
**target_revision** | **str** | The desired revision in the repository. |
**path** | **str** | The path of a file or directory in the repository. If a directory, the directory should contain only resource definitions with no subdirectories. Each file should contain the definition of one or more resources. |
diff --git a/docs/ResourceSyncType.md b/docs/ResourceSyncType.md
new file mode 100644
index 0000000..c33201c
--- /dev/null
+++ b/docs/ResourceSyncType.md
@@ -0,0 +1,13 @@
+# ResourceSyncType
+
+The type of resources this ResourceSync manages. Defaults to fleet if not specified.
+
+## Enum
+
+* `ResourceSyncTypeFleet` (value: `'fleet'`)
+
+* `ResourceSyncTypeCatalog` (value: `'catalog'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ResourcesyncApi.md b/docs/ResourcesyncApi.md
index e0af484..f30d95c 100644
--- a/docs/ResourcesyncApi.md
+++ b/docs/ResourcesyncApi.md
@@ -1,15 +1,15 @@
# flightctl.ResourcesyncApi
-All URIs are relative to *http://localhost*
+All URIs are relative to */api/v1*
Method | HTTP request | Description
------------- | ------------- | -------------
-[**create_resource_sync**](ResourcesyncApi.md#create_resource_sync) | **POST** /api/v1/resourcesyncs |
-[**delete_resource_sync**](ResourcesyncApi.md#delete_resource_sync) | **DELETE** /api/v1/resourcesyncs/{name} |
-[**get_resource_sync**](ResourcesyncApi.md#get_resource_sync) | **GET** /api/v1/resourcesyncs/{name} |
-[**list_resource_syncs**](ResourcesyncApi.md#list_resource_syncs) | **GET** /api/v1/resourcesyncs |
-[**patch_resource_sync**](ResourcesyncApi.md#patch_resource_sync) | **PATCH** /api/v1/resourcesyncs/{name} |
-[**replace_resource_sync**](ResourcesyncApi.md#replace_resource_sync) | **PUT** /api/v1/resourcesyncs/{name} |
+[**create_resource_sync**](ResourcesyncApi.md#create_resource_sync) | **POST** /resourcesyncs |
+[**delete_resource_sync**](ResourcesyncApi.md#delete_resource_sync) | **DELETE** /resourcesyncs/{name} |
+[**get_resource_sync**](ResourcesyncApi.md#get_resource_sync) | **GET** /resourcesyncs/{name} |
+[**list_resource_syncs**](ResourcesyncApi.md#list_resource_syncs) | **GET** /resourcesyncs |
+[**patch_resource_sync**](ResourcesyncApi.md#patch_resource_sync) | **PATCH** /resourcesyncs/{name} |
+[**replace_resource_sync**](ResourcesyncApi.md#replace_resource_sync) | **PUT** /resourcesyncs/{name} |
# **create_resource_sync**
@@ -26,10 +26,10 @@ from flightctl.models.resource_sync import ResourceSync
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -97,10 +97,10 @@ from flightctl.models.status import Status
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -167,10 +167,10 @@ from flightctl.models.resource_sync import ResourceSync
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -237,10 +237,10 @@ from flightctl.models.resource_sync_list import ResourceSyncList
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -314,10 +314,10 @@ from flightctl.models.resource_sync import ResourceSync
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -388,10 +388,10 @@ from flightctl.models.resource_sync import ResourceSync
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
diff --git a/docs/Status.md b/docs/Status.md
index 0150458..66fe2ea 100644
--- a/docs/Status.md
+++ b/docs/Status.md
@@ -6,7 +6,7 @@ Status is a return value for calls that don't return other objects.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**api_version** | **str** | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
**code** | **int** | Suggested HTTP return code for this status, 0 if not set. |
**message** | **str** | A human-readable description of the status of this operation. |
diff --git a/docs/TemplateVersion.md b/docs/TemplateVersion.md
index 8180e75..4580309 100644
--- a/docs/TemplateVersion.md
+++ b/docs/TemplateVersion.md
@@ -6,7 +6,7 @@ TemplateVersion represents a version of a template.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**api_version** | **str** | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
**metadata** | [**ObjectMeta**](ObjectMeta.md) | |
**spec** | [**TemplateVersionSpec**](TemplateVersionSpec.md) | |
diff --git a/docs/TemplateVersionList.md b/docs/TemplateVersionList.md
index e9a96fd..ea13421 100644
--- a/docs/TemplateVersionList.md
+++ b/docs/TemplateVersionList.md
@@ -6,7 +6,7 @@ TemplateVersionList is a list of TemplateVersions.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**api_version** | **str** | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
**metadata** | [**ListMeta**](ListMeta.md) | |
**items** | [**List[TemplateVersion]**](TemplateVersion.md) | List of TemplateVersions. |
diff --git a/docs/VersionApi.md b/docs/VersionApi.md
index 7f460c4..03428c1 100644
--- a/docs/VersionApi.md
+++ b/docs/VersionApi.md
@@ -1,10 +1,10 @@
# flightctl.VersionApi
-All URIs are relative to *http://localhost*
+All URIs are relative to */api/v1*
Method | HTTP request | Description
------------- | ------------- | -------------
-[**get_version**](VersionApi.md#get_version) | **GET** /api/version |
+[**get_version**](VersionApi.md#get_version) | **GET** /version |
# **get_version**
@@ -21,10 +21,10 @@ from flightctl.models.version import Version
from flightctl.rest import ApiException
from pprint import pprint
-# Defining the host is optional and defaults to http://localhost
+# Defining the host is optional and defaults to /api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = flightctl.Configuration(
- host = "http://localhost"
+ host = "/api/v1"
)
@@ -65,6 +65,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
**200** | OK | - |
+**401** | Unauthorized | - |
**403** | Forbidden | - |
**429** | Too Many Requests | - |
**503** | Service Unavailable | - |
diff --git a/flightctl/__init__.py b/flightctl/__init__.py
index 9ff06a7..e69de29 100644
--- a/flightctl/__init__.py
+++ b/flightctl/__init__.py
@@ -1,443 +0,0 @@
-# coding: utf-8
-
-# flake8: noqa
-
-"""
- Flight Control API
-
- [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
-
- The version of the OpenAPI document: v1beta1
- Contact: team@flightctl.io
- Generated by OpenAPI Generator (https://openapi-generator.tech)
-
- Do not edit the class manually.
-""" # noqa: E501
-
-
-__version__ = "1.0.0"
-
-# Define package exports
-__all__ = [
- "AuthenticationApi",
- "AuthproviderApi",
- "CertificatesigningrequestApi",
- "DeviceApi",
- "DeviceactionsApi",
- "EnrollmentrequestApi",
- "EventApi",
- "FleetApi",
- "LabelApi",
- "OrganizationApi",
- "RepositoryApi",
- "ResourcesyncApi",
- "VersionApi",
- "ApiResponse",
- "ApiClient",
- "Configuration",
- "OpenApiException",
- "ApiTypeError",
- "ApiValueError",
- "ApiKeyError",
- "ApiAttributeError",
- "ApiException",
- "AapProviderSpec",
- "AbsolutePath",
- "AppType",
- "ApplicationContent",
- "ApplicationEnvVars",
- "ApplicationProviderSpec",
- "ApplicationResourceLimits",
- "ApplicationResources",
- "ApplicationStatusType",
- "ApplicationVolume",
- "ApplicationVolumeProviderSpec",
- "ApplicationVolumeReclaimPolicy",
- "ApplicationVolumeStatus",
- "ApplicationsSummaryStatusType",
- "AuthConfig",
- "AuthDynamicOrganizationAssignment",
- "AuthDynamicRoleAssignment",
- "AuthOrganizationAssignment",
- "AuthPerUserOrganizationAssignment",
- "AuthProvider",
- "AuthProviderList",
- "AuthProviderSpec",
- "AuthRoleAssignment",
- "AuthStaticOrganizationAssignment",
- "AuthStaticRoleAssignment",
- "Batch",
- "BatchLimit",
- "BatchSequence",
- "CertificateSigningRequest",
- "CertificateSigningRequestList",
- "CertificateSigningRequestSpec",
- "CertificateSigningRequestStatus",
- "Condition",
- "ConditionStatus",
- "ConditionType",
- "ConfigProviderSpec",
- "CpuResourceMonitorSpec",
- "Device",
- "DeviceApplicationStatus",
- "DeviceApplicationsSummaryStatus",
- "DeviceConfigStatus",
- "DeviceConsole",
- "DeviceDecommission",
- "DeviceDecommissionTargetType",
- "DeviceIntegrityCheckStatus",
- "DeviceIntegrityCheckStatusType",
- "DeviceIntegrityStatus",
- "DeviceIntegrityStatusSummaryType",
- "DeviceLastSeen",
- "DeviceLifecycleHookType",
- "DeviceLifecycleStatus",
- "DeviceLifecycleStatusType",
- "DeviceList",
- "DeviceMultipleOwnersDetectedDetails",
- "DeviceMultipleOwnersResolvedDetails",
- "DeviceOsSpec",
- "DeviceOsStatus",
- "DeviceOwnershipChangedDetails",
- "DeviceResourceStatus",
- "DeviceResourceStatusType",
- "DeviceResumeRequest",
- "DeviceResumeResponse",
- "DeviceSpec",
- "DeviceSpecSystemd",
- "DeviceStatus",
- "DeviceSummaryStatus",
- "DeviceSummaryStatusType",
- "DeviceSystemInfo",
- "DeviceUpdatePolicySpec",
- "DeviceUpdatedStatus",
- "DeviceUpdatedStatusType",
- "DevicesSummary",
- "DiskResourceMonitorSpec",
- "DisruptionBudget",
- "EncodingType",
- "EnrollmentConfig",
- "EnrollmentRequest",
- "EnrollmentRequestApproval",
- "EnrollmentRequestApprovalStatus",
- "EnrollmentRequestList",
- "EnrollmentRequestSpec",
- "EnrollmentRequestStatus",
- "EnrollmentService",
- "EnrollmentServiceAuth",
- "EnrollmentServiceService",
- "Event",
- "EventDetails",
- "EventList",
- "EventSource",
- "FileContent",
- "FileMetadata",
- "FileOperation",
- "FileSpec",
- "Fleet",
- "FleetList",
- "FleetRolloutBatchCompletedDetails",
- "FleetRolloutBatchDispatchedDetails",
- "FleetRolloutCompletedDetails",
- "FleetRolloutDeviceSelectedDetails",
- "FleetRolloutFailedDetails",
- "FleetRolloutStartedDetails",
- "FleetRolloutStatus",
- "FleetSpec",
- "FleetSpecTemplate",
- "FleetStatus",
- "GenericRepoSpec",
- "GitConfigProviderSpec",
- "GitConfigProviderSpecGitRef",
- "GitHubIntrospectionSpec",
- "HookAction",
- "HookActionRun",
- "HookCondition",
- "HookConditionPathOp",
- "HttpConfig",
- "HttpConfigProviderSpec",
- "HttpConfigProviderSpecHttpRef",
- "HttpRepoSpec",
- "ImageApplicationProviderSpec",
- "ImageMountVolumeProviderSpec",
- "ImagePullPolicy",
- "ImageVolumeProviderSpec",
- "ImageVolumeSource",
- "InlineApplicationProviderSpec",
- "InlineConfigProviderSpec",
- "InternalTaskFailedDetails",
- "InternalTaskPermanentlyFailedDetails",
- "JwtIntrospectionSpec",
- "K8sProviderSpec",
- "KubernetesSecretProviderSpec",
- "KubernetesSecretProviderSpecSecretRef",
- "LabelSelector",
- "ListMeta",
- "MatchExpression",
- "MemoryResourceMonitorSpec",
- "MountVolumeProviderSpec",
- "OAuth2Introspection",
- "OAuth2ProviderSpec",
- "OIDCProviderSpec",
- "ObjectMeta",
- "ObjectReference",
- "OpenShiftProviderSpec",
- "Organization",
- "OrganizationList",
- "OrganizationSpec",
- "PatchRequestInner",
- "Permission",
- "PermissionList",
- "ReferencedRepositoryUpdatedDetails",
- "RelativePath",
- "RepoSpecType",
- "Repository",
- "RepositoryList",
- "RepositorySpec",
- "RepositoryStatus",
- "ResourceAlertRule",
- "ResourceAlertSeverityType",
- "ResourceKind",
- "ResourceMonitor",
- "ResourceMonitorSpec",
- "ResourceSync",
- "ResourceSyncCompletedDetails",
- "ResourceSyncList",
- "ResourceSyncSpec",
- "ResourceSyncStatus",
- "ResourceUpdatedDetails",
- "Rfc7662IntrospectionSpec",
- "RolloutPolicy",
- "RolloutStrategy",
- "SshConfig",
- "SshRepoSpec",
- "Status",
- "SystemdActiveStateType",
- "SystemdEnableStateType",
- "SystemdLoadStateType",
- "SystemdUnitStatus",
- "TemplateVersion",
- "TemplateVersionList",
- "TemplateVersionSpec",
- "TemplateVersionStatus",
- "TokenRequest",
- "TokenResponse",
- "UpdateSchedule",
- "UserInfoResponse",
- "Version",
- "VolumeMount",
-]
-
-# import apis into sdk package
-from flightctl.api.authentication_api import AuthenticationApi as AuthenticationApi
-from flightctl.api.authprovider_api import AuthproviderApi as AuthproviderApi
-from flightctl.api.certificatesigningrequest_api import CertificatesigningrequestApi as CertificatesigningrequestApi
-from flightctl.api.device_api import DeviceApi as DeviceApi
-from flightctl.api.deviceactions_api import DeviceactionsApi as DeviceactionsApi
-from flightctl.api.enrollmentrequest_api import EnrollmentrequestApi as EnrollmentrequestApi
-from flightctl.api.event_api import EventApi as EventApi
-from flightctl.api.fleet_api import FleetApi as FleetApi
-from flightctl.api.label_api import LabelApi as LabelApi
-from flightctl.api.organization_api import OrganizationApi as OrganizationApi
-from flightctl.api.repository_api import RepositoryApi as RepositoryApi
-from flightctl.api.resourcesync_api import ResourcesyncApi as ResourcesyncApi
-from flightctl.api.version_api import VersionApi as VersionApi
-
-# import ApiClient
-from flightctl.api_response import ApiResponse as ApiResponse
-from flightctl.api_client import ApiClient as ApiClient
-from flightctl.configuration import Configuration as Configuration
-from flightctl.exceptions import OpenApiException as OpenApiException
-from flightctl.exceptions import ApiTypeError as ApiTypeError
-from flightctl.exceptions import ApiValueError as ApiValueError
-from flightctl.exceptions import ApiKeyError as ApiKeyError
-from flightctl.exceptions import ApiAttributeError as ApiAttributeError
-from flightctl.exceptions import ApiException as ApiException
-
-# import models into sdk package
-from flightctl.models.aap_provider_spec import AapProviderSpec as AapProviderSpec
-from flightctl.models.absolute_path import AbsolutePath as AbsolutePath
-from flightctl.models.app_type import AppType as AppType
-from flightctl.models.application_content import ApplicationContent as ApplicationContent
-from flightctl.models.application_env_vars import ApplicationEnvVars as ApplicationEnvVars
-from flightctl.models.application_provider_spec import ApplicationProviderSpec as ApplicationProviderSpec
-from flightctl.models.application_resource_limits import ApplicationResourceLimits as ApplicationResourceLimits
-from flightctl.models.application_resources import ApplicationResources as ApplicationResources
-from flightctl.models.application_status_type import ApplicationStatusType as ApplicationStatusType
-from flightctl.models.application_volume import ApplicationVolume as ApplicationVolume
-from flightctl.models.application_volume_provider_spec import ApplicationVolumeProviderSpec as ApplicationVolumeProviderSpec
-from flightctl.models.application_volume_reclaim_policy import ApplicationVolumeReclaimPolicy as ApplicationVolumeReclaimPolicy
-from flightctl.models.application_volume_status import ApplicationVolumeStatus as ApplicationVolumeStatus
-from flightctl.models.applications_summary_status_type import ApplicationsSummaryStatusType as ApplicationsSummaryStatusType
-from flightctl.models.auth_config import AuthConfig as AuthConfig
-from flightctl.models.auth_dynamic_organization_assignment import AuthDynamicOrganizationAssignment as AuthDynamicOrganizationAssignment
-from flightctl.models.auth_dynamic_role_assignment import AuthDynamicRoleAssignment as AuthDynamicRoleAssignment
-from flightctl.models.auth_organization_assignment import AuthOrganizationAssignment as AuthOrganizationAssignment
-from flightctl.models.auth_per_user_organization_assignment import AuthPerUserOrganizationAssignment as AuthPerUserOrganizationAssignment
-from flightctl.models.auth_provider import AuthProvider as AuthProvider
-from flightctl.models.auth_provider_list import AuthProviderList as AuthProviderList
-from flightctl.models.auth_provider_spec import AuthProviderSpec as AuthProviderSpec
-from flightctl.models.auth_role_assignment import AuthRoleAssignment as AuthRoleAssignment
-from flightctl.models.auth_static_organization_assignment import AuthStaticOrganizationAssignment as AuthStaticOrganizationAssignment
-from flightctl.models.auth_static_role_assignment import AuthStaticRoleAssignment as AuthStaticRoleAssignment
-from flightctl.models.batch import Batch as Batch
-from flightctl.models.batch_limit import BatchLimit as BatchLimit
-from flightctl.models.batch_sequence import BatchSequence as BatchSequence
-from flightctl.models.certificate_signing_request import CertificateSigningRequest as CertificateSigningRequest
-from flightctl.models.certificate_signing_request_list import CertificateSigningRequestList as CertificateSigningRequestList
-from flightctl.models.certificate_signing_request_spec import CertificateSigningRequestSpec as CertificateSigningRequestSpec
-from flightctl.models.certificate_signing_request_status import CertificateSigningRequestStatus as CertificateSigningRequestStatus
-from flightctl.models.condition import Condition as Condition
-from flightctl.models.condition_status import ConditionStatus as ConditionStatus
-from flightctl.models.condition_type import ConditionType as ConditionType
-from flightctl.models.config_provider_spec import ConfigProviderSpec as ConfigProviderSpec
-from flightctl.models.cpu_resource_monitor_spec import CpuResourceMonitorSpec as CpuResourceMonitorSpec
-from flightctl.models.device import Device as Device
-from flightctl.models.device_application_status import DeviceApplicationStatus as DeviceApplicationStatus
-from flightctl.models.device_applications_summary_status import DeviceApplicationsSummaryStatus as DeviceApplicationsSummaryStatus
-from flightctl.models.device_config_status import DeviceConfigStatus as DeviceConfigStatus
-from flightctl.models.device_console import DeviceConsole as DeviceConsole
-from flightctl.models.device_decommission import DeviceDecommission as DeviceDecommission
-from flightctl.models.device_decommission_target_type import DeviceDecommissionTargetType as DeviceDecommissionTargetType
-from flightctl.models.device_integrity_check_status import DeviceIntegrityCheckStatus as DeviceIntegrityCheckStatus
-from flightctl.models.device_integrity_check_status_type import DeviceIntegrityCheckStatusType as DeviceIntegrityCheckStatusType
-from flightctl.models.device_integrity_status import DeviceIntegrityStatus as DeviceIntegrityStatus
-from flightctl.models.device_integrity_status_summary_type import DeviceIntegrityStatusSummaryType as DeviceIntegrityStatusSummaryType
-from flightctl.models.device_last_seen import DeviceLastSeen as DeviceLastSeen
-from flightctl.models.device_lifecycle_hook_type import DeviceLifecycleHookType as DeviceLifecycleHookType
-from flightctl.models.device_lifecycle_status import DeviceLifecycleStatus as DeviceLifecycleStatus
-from flightctl.models.device_lifecycle_status_type import DeviceLifecycleStatusType as DeviceLifecycleStatusType
-from flightctl.models.device_list import DeviceList as DeviceList
-from flightctl.models.device_multiple_owners_detected_details import DeviceMultipleOwnersDetectedDetails as DeviceMultipleOwnersDetectedDetails
-from flightctl.models.device_multiple_owners_resolved_details import DeviceMultipleOwnersResolvedDetails as DeviceMultipleOwnersResolvedDetails
-from flightctl.models.device_os_spec import DeviceOsSpec as DeviceOsSpec
-from flightctl.models.device_os_status import DeviceOsStatus as DeviceOsStatus
-from flightctl.models.device_ownership_changed_details import DeviceOwnershipChangedDetails as DeviceOwnershipChangedDetails
-from flightctl.models.device_resource_status import DeviceResourceStatus as DeviceResourceStatus
-from flightctl.models.device_resource_status_type import DeviceResourceStatusType as DeviceResourceStatusType
-from flightctl.models.device_resume_request import DeviceResumeRequest as DeviceResumeRequest
-from flightctl.models.device_resume_response import DeviceResumeResponse as DeviceResumeResponse
-from flightctl.models.device_spec import DeviceSpec as DeviceSpec
-from flightctl.models.device_spec_systemd import DeviceSpecSystemd as DeviceSpecSystemd
-from flightctl.models.device_status import DeviceStatus as DeviceStatus
-from flightctl.models.device_summary_status import DeviceSummaryStatus as DeviceSummaryStatus
-from flightctl.models.device_summary_status_type import DeviceSummaryStatusType as DeviceSummaryStatusType
-from flightctl.models.device_system_info import DeviceSystemInfo as DeviceSystemInfo
-from flightctl.models.device_update_policy_spec import DeviceUpdatePolicySpec as DeviceUpdatePolicySpec
-from flightctl.models.device_updated_status import DeviceUpdatedStatus as DeviceUpdatedStatus
-from flightctl.models.device_updated_status_type import DeviceUpdatedStatusType as DeviceUpdatedStatusType
-from flightctl.models.devices_summary import DevicesSummary as DevicesSummary
-from flightctl.models.disk_resource_monitor_spec import DiskResourceMonitorSpec as DiskResourceMonitorSpec
-from flightctl.models.disruption_budget import DisruptionBudget as DisruptionBudget
-from flightctl.models.encoding_type import EncodingType as EncodingType
-from flightctl.models.enrollment_config import EnrollmentConfig as EnrollmentConfig
-from flightctl.models.enrollment_request import EnrollmentRequest as EnrollmentRequest
-from flightctl.models.enrollment_request_approval import EnrollmentRequestApproval as EnrollmentRequestApproval
-from flightctl.models.enrollment_request_approval_status import EnrollmentRequestApprovalStatus as EnrollmentRequestApprovalStatus
-from flightctl.models.enrollment_request_list import EnrollmentRequestList as EnrollmentRequestList
-from flightctl.models.enrollment_request_spec import EnrollmentRequestSpec as EnrollmentRequestSpec
-from flightctl.models.enrollment_request_status import EnrollmentRequestStatus as EnrollmentRequestStatus
-from flightctl.models.enrollment_service import EnrollmentService as EnrollmentService
-from flightctl.models.enrollment_service_auth import EnrollmentServiceAuth as EnrollmentServiceAuth
-from flightctl.models.enrollment_service_service import EnrollmentServiceService as EnrollmentServiceService
-from flightctl.models.event import Event as Event
-from flightctl.models.event_details import EventDetails as EventDetails
-from flightctl.models.event_list import EventList as EventList
-from flightctl.models.event_source import EventSource as EventSource
-from flightctl.models.file_content import FileContent as FileContent
-from flightctl.models.file_metadata import FileMetadata as FileMetadata
-from flightctl.models.file_operation import FileOperation as FileOperation
-from flightctl.models.file_spec import FileSpec as FileSpec
-from flightctl.models.fleet import Fleet as Fleet
-from flightctl.models.fleet_list import FleetList as FleetList
-from flightctl.models.fleet_rollout_batch_completed_details import FleetRolloutBatchCompletedDetails as FleetRolloutBatchCompletedDetails
-from flightctl.models.fleet_rollout_batch_dispatched_details import FleetRolloutBatchDispatchedDetails as FleetRolloutBatchDispatchedDetails
-from flightctl.models.fleet_rollout_completed_details import FleetRolloutCompletedDetails as FleetRolloutCompletedDetails
-from flightctl.models.fleet_rollout_device_selected_details import FleetRolloutDeviceSelectedDetails as FleetRolloutDeviceSelectedDetails
-from flightctl.models.fleet_rollout_failed_details import FleetRolloutFailedDetails as FleetRolloutFailedDetails
-from flightctl.models.fleet_rollout_started_details import FleetRolloutStartedDetails as FleetRolloutStartedDetails
-from flightctl.models.fleet_rollout_status import FleetRolloutStatus as FleetRolloutStatus
-from flightctl.models.fleet_spec import FleetSpec as FleetSpec
-from flightctl.models.fleet_spec_template import FleetSpecTemplate as FleetSpecTemplate
-from flightctl.models.fleet_status import FleetStatus as FleetStatus
-from flightctl.models.generic_repo_spec import GenericRepoSpec as GenericRepoSpec
-from flightctl.models.git_config_provider_spec import GitConfigProviderSpec as GitConfigProviderSpec
-from flightctl.models.git_config_provider_spec_git_ref import GitConfigProviderSpecGitRef as GitConfigProviderSpecGitRef
-from flightctl.models.git_hub_introspection_spec import GitHubIntrospectionSpec as GitHubIntrospectionSpec
-from flightctl.models.hook_action import HookAction as HookAction
-from flightctl.models.hook_action_run import HookActionRun as HookActionRun
-from flightctl.models.hook_condition import HookCondition as HookCondition
-from flightctl.models.hook_condition_path_op import HookConditionPathOp as HookConditionPathOp
-from flightctl.models.http_config import HttpConfig as HttpConfig
-from flightctl.models.http_config_provider_spec import HttpConfigProviderSpec as HttpConfigProviderSpec
-from flightctl.models.http_config_provider_spec_http_ref import HttpConfigProviderSpecHttpRef as HttpConfigProviderSpecHttpRef
-from flightctl.models.http_repo_spec import HttpRepoSpec as HttpRepoSpec
-from flightctl.models.image_application_provider_spec import ImageApplicationProviderSpec as ImageApplicationProviderSpec
-from flightctl.models.image_mount_volume_provider_spec import ImageMountVolumeProviderSpec as ImageMountVolumeProviderSpec
-from flightctl.models.image_pull_policy import ImagePullPolicy as ImagePullPolicy
-from flightctl.models.image_volume_provider_spec import ImageVolumeProviderSpec as ImageVolumeProviderSpec
-from flightctl.models.image_volume_source import ImageVolumeSource as ImageVolumeSource
-from flightctl.models.inline_application_provider_spec import InlineApplicationProviderSpec as InlineApplicationProviderSpec
-from flightctl.models.inline_config_provider_spec import InlineConfigProviderSpec as InlineConfigProviderSpec
-from flightctl.models.internal_task_failed_details import InternalTaskFailedDetails as InternalTaskFailedDetails
-from flightctl.models.internal_task_permanently_failed_details import InternalTaskPermanentlyFailedDetails as InternalTaskPermanentlyFailedDetails
-from flightctl.models.jwt_introspection_spec import JwtIntrospectionSpec as JwtIntrospectionSpec
-from flightctl.models.k8s_provider_spec import K8sProviderSpec as K8sProviderSpec
-from flightctl.models.kubernetes_secret_provider_spec import KubernetesSecretProviderSpec as KubernetesSecretProviderSpec
-from flightctl.models.kubernetes_secret_provider_spec_secret_ref import KubernetesSecretProviderSpecSecretRef as KubernetesSecretProviderSpecSecretRef
-from flightctl.models.label_selector import LabelSelector as LabelSelector
-from flightctl.models.list_meta import ListMeta as ListMeta
-from flightctl.models.match_expression import MatchExpression as MatchExpression
-from flightctl.models.memory_resource_monitor_spec import MemoryResourceMonitorSpec as MemoryResourceMonitorSpec
-from flightctl.models.mount_volume_provider_spec import MountVolumeProviderSpec as MountVolumeProviderSpec
-from flightctl.models.o_auth2_introspection import OAuth2Introspection as OAuth2Introspection
-from flightctl.models.o_auth2_provider_spec import OAuth2ProviderSpec as OAuth2ProviderSpec
-from flightctl.models.oidc_provider_spec import OIDCProviderSpec as OIDCProviderSpec
-from flightctl.models.object_meta import ObjectMeta as ObjectMeta
-from flightctl.models.object_reference import ObjectReference as ObjectReference
-from flightctl.models.open_shift_provider_spec import OpenShiftProviderSpec as OpenShiftProviderSpec
-from flightctl.models.organization import Organization as Organization
-from flightctl.models.organization_list import OrganizationList as OrganizationList
-from flightctl.models.organization_spec import OrganizationSpec as OrganizationSpec
-from flightctl.models.patch_request_inner import PatchRequestInner as PatchRequestInner
-from flightctl.models.permission import Permission as Permission
-from flightctl.models.permission_list import PermissionList as PermissionList
-from flightctl.models.referenced_repository_updated_details import ReferencedRepositoryUpdatedDetails as ReferencedRepositoryUpdatedDetails
-from flightctl.models.relative_path import RelativePath as RelativePath
-from flightctl.models.repo_spec_type import RepoSpecType as RepoSpecType
-from flightctl.models.repository import Repository as Repository
-from flightctl.models.repository_list import RepositoryList as RepositoryList
-from flightctl.models.repository_spec import RepositorySpec as RepositorySpec
-from flightctl.models.repository_status import RepositoryStatus as RepositoryStatus
-from flightctl.models.resource_alert_rule import ResourceAlertRule as ResourceAlertRule
-from flightctl.models.resource_alert_severity_type import ResourceAlertSeverityType as ResourceAlertSeverityType
-from flightctl.models.resource_kind import ResourceKind as ResourceKind
-from flightctl.models.resource_monitor import ResourceMonitor as ResourceMonitor
-from flightctl.models.resource_monitor_spec import ResourceMonitorSpec as ResourceMonitorSpec
-from flightctl.models.resource_sync import ResourceSync as ResourceSync
-from flightctl.models.resource_sync_completed_details import ResourceSyncCompletedDetails as ResourceSyncCompletedDetails
-from flightctl.models.resource_sync_list import ResourceSyncList as ResourceSyncList
-from flightctl.models.resource_sync_spec import ResourceSyncSpec as ResourceSyncSpec
-from flightctl.models.resource_sync_status import ResourceSyncStatus as ResourceSyncStatus
-from flightctl.models.resource_updated_details import ResourceUpdatedDetails as ResourceUpdatedDetails
-from flightctl.models.rfc7662_introspection_spec import Rfc7662IntrospectionSpec as Rfc7662IntrospectionSpec
-from flightctl.models.rollout_policy import RolloutPolicy as RolloutPolicy
-from flightctl.models.rollout_strategy import RolloutStrategy as RolloutStrategy
-from flightctl.models.ssh_config import SshConfig as SshConfig
-from flightctl.models.ssh_repo_spec import SshRepoSpec as SshRepoSpec
-from flightctl.models.status import Status as Status
-from flightctl.models.systemd_active_state_type import SystemdActiveStateType as SystemdActiveStateType
-from flightctl.models.systemd_enable_state_type import SystemdEnableStateType as SystemdEnableStateType
-from flightctl.models.systemd_load_state_type import SystemdLoadStateType as SystemdLoadStateType
-from flightctl.models.systemd_unit_status import SystemdUnitStatus as SystemdUnitStatus
-from flightctl.models.template_version import TemplateVersion as TemplateVersion
-from flightctl.models.template_version_list import TemplateVersionList as TemplateVersionList
-from flightctl.models.template_version_spec import TemplateVersionSpec as TemplateVersionSpec
-from flightctl.models.template_version_status import TemplateVersionStatus as TemplateVersionStatus
-from flightctl.models.token_request import TokenRequest as TokenRequest
-from flightctl.models.token_response import TokenResponse as TokenResponse
-from flightctl.models.update_schedule import UpdateSchedule as UpdateSchedule
-from flightctl.models.user_info_response import UserInfoResponse as UserInfoResponse
-from flightctl.models.version import Version as Version
-from flightctl.models.volume_mount import VolumeMount as VolumeMount
-
diff --git a/flightctl/api/authentication_api.py b/flightctl/api/authentication_api.py
index 9895482..2b7a3c9 100644
--- a/flightctl/api/authentication_api.py
+++ b/flightctl/api/authentication_api.py
@@ -280,7 +280,7 @@ def _auth_config_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/auth/config',
+ resource_path='/auth/config',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -537,7 +537,7 @@ def _auth_get_permissions_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/auth/permissions',
+ resource_path='/auth/permissions',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -829,7 +829,7 @@ def _auth_token_serialize(
return self.api_client.param_serialize(
method='POST',
- resource_path='/api/v1/auth/{providername}/token',
+ resource_path='/auth/{providername}/token',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1086,7 +1086,7 @@ def _auth_user_info_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/auth/userinfo',
+ resource_path='/auth/userinfo',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1361,7 +1361,7 @@ def _auth_validate_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/auth/validate',
+ resource_path='/auth/validate',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
diff --git a/flightctl/api/authprovider_api.py b/flightctl/api/authprovider_api.py
index 9f1e935..651e8e5 100644
--- a/flightctl/api/authprovider_api.py
+++ b/flightctl/api/authprovider_api.py
@@ -318,7 +318,7 @@ def _create_auth_provider_serialize(
return self.api_client.param_serialize(
method='POST',
- resource_path='/api/v1/authproviders',
+ resource_path='/authproviders',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -593,7 +593,7 @@ def _delete_auth_provider_serialize(
return self.api_client.param_serialize(
method='DELETE',
- resource_path='/api/v1/authproviders/{name}',
+ resource_path='/authproviders/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -868,7 +868,7 @@ def _get_auth_provider_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/authproviders/{name}',
+ resource_path='/authproviders/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1196,7 +1196,7 @@ def _list_auth_providers_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/authproviders',
+ resource_path='/authproviders',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1506,7 +1506,7 @@ def _patch_auth_provider_serialize(
return self.api_client.param_serialize(
method='PATCH',
- resource_path='/api/v1/authproviders/{name}',
+ resource_path='/authproviders/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1818,7 +1818,7 @@ def _replace_auth_provider_serialize(
return self.api_client.param_serialize(
method='PUT',
- resource_path='/api/v1/authproviders/{name}',
+ resource_path='/authproviders/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
diff --git a/flightctl/api/certificatesigningrequest_api.py b/flightctl/api/certificatesigningrequest_api.py
index 31607f9..bff68e3 100644
--- a/flightctl/api/certificatesigningrequest_api.py
+++ b/flightctl/api/certificatesigningrequest_api.py
@@ -318,7 +318,7 @@ def _create_certificate_signing_request_serialize(
return self.api_client.param_serialize(
method='POST',
- resource_path='/api/v1/certificatesigningrequests',
+ resource_path='/certificatesigningrequests',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -593,7 +593,7 @@ def _delete_certificate_signing_request_serialize(
return self.api_client.param_serialize(
method='DELETE',
- resource_path='/api/v1/certificatesigningrequests/{name}',
+ resource_path='/certificatesigningrequests/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -868,7 +868,7 @@ def _get_certificate_signing_request_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/certificatesigningrequests/{name}',
+ resource_path='/certificatesigningrequests/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1196,7 +1196,7 @@ def _list_certificate_signing_requests_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/certificatesigningrequests',
+ resource_path='/certificatesigningrequests',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1273,8 +1273,8 @@ def patch_certificate_signing_request(
'200': "CertificateSigningRequest",
'400': "Status",
'401': "Status",
- '404': "Status",
'403': "Status",
+ '404': "Status",
'409': "Status",
'429': "Status",
'503': "Status",
@@ -1351,8 +1351,8 @@ def patch_certificate_signing_request_with_http_info(
'200': "CertificateSigningRequest",
'400': "Status",
'401': "Status",
- '404': "Status",
'403': "Status",
+ '404': "Status",
'409': "Status",
'429': "Status",
'503': "Status",
@@ -1429,8 +1429,8 @@ def patch_certificate_signing_request_without_preload_content(
'200': "CertificateSigningRequest",
'400': "Status",
'401': "Status",
- '404': "Status",
'403': "Status",
+ '404': "Status",
'409': "Status",
'429': "Status",
'503': "Status",
@@ -1506,7 +1506,7 @@ def _patch_certificate_signing_request_serialize(
return self.api_client.param_serialize(
method='PATCH',
- resource_path='/api/v1/certificatesigningrequests/{name}',
+ resource_path='/certificatesigningrequests/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1818,7 +1818,7 @@ def _replace_certificate_signing_request_serialize(
return self.api_client.param_serialize(
method='PUT',
- resource_path='/api/v1/certificatesigningrequests/{name}',
+ resource_path='/certificatesigningrequests/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -2127,7 +2127,7 @@ def _update_certificate_signing_request_approval_serialize(
return self.api_client.param_serialize(
method='PUT',
- resource_path='/api/v1/certificatesigningrequests/{name}/approval',
+ resource_path='/certificatesigningrequests/{name}/approval',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
diff --git a/flightctl/api/device_api.py b/flightctl/api/device_api.py
index 8111ed2..d1b5754 100644
--- a/flightctl/api/device_api.py
+++ b/flightctl/api/device_api.py
@@ -320,7 +320,7 @@ def _create_device_serialize(
return self.api_client.param_serialize(
method='POST',
- resource_path='/api/v1/devices',
+ resource_path='/devices',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -626,7 +626,7 @@ def _decommission_device_serialize(
return self.api_client.param_serialize(
method='PUT',
- resource_path='/api/v1/devices/{name}/decommission',
+ resource_path='/devices/{name}/decommission',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -901,7 +901,7 @@ def _delete_device_serialize(
return self.api_client.param_serialize(
method='DELETE',
- resource_path='/api/v1/devices/{name}',
+ resource_path='/devices/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1176,7 +1176,7 @@ def _get_device_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/devices/{name}',
+ resource_path='/devices/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1454,7 +1454,7 @@ def _get_device_last_seen_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/devices/{name}/lastseen',
+ resource_path='/devices/{name}/lastseen',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1729,7 +1729,7 @@ def _get_device_status_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/devices/{name}/status',
+ resource_path='/devices/{name}/status',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -2027,7 +2027,7 @@ def _get_rendered_device_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/devices/{name}/rendered',
+ resource_path='/devices/{name}/rendered',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -2372,7 +2372,7 @@ def _list_devices_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/devices',
+ resource_path='/devices',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -2682,7 +2682,7 @@ def _patch_device_serialize(
return self.api_client.param_serialize(
method='PATCH',
- resource_path='/api/v1/devices/{name}',
+ resource_path='/devices/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -2989,7 +2989,7 @@ def _patch_device_status_serialize(
return self.api_client.param_serialize(
method='PATCH',
- resource_path='/api/v1/devices/{name}/status',
+ resource_path='/devices/{name}/status',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -3301,7 +3301,7 @@ def _replace_device_serialize(
return self.api_client.param_serialize(
method='PUT',
- resource_path='/api/v1/devices/{name}',
+ resource_path='/devices/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -3610,7 +3610,7 @@ def _replace_device_status_serialize(
return self.api_client.param_serialize(
method='PUT',
- resource_path='/api/v1/devices/{name}/status',
+ resource_path='/devices/{name}/status',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
diff --git a/flightctl/api/deviceactions_api.py b/flightctl/api/deviceactions_api.py
index 61fd87a..4558fd0 100644
--- a/flightctl/api/deviceactions_api.py
+++ b/flightctl/api/deviceactions_api.py
@@ -311,7 +311,7 @@ def _resume_devices_serialize(
return self.api_client.param_serialize(
method='POST',
- resource_path='/api/v1/deviceactions/resume',
+ resource_path='/deviceactions/resume',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
diff --git a/flightctl/api/enrollmentrequest_api.py b/flightctl/api/enrollmentrequest_api.py
index ad224ef..b3281ea 100644
--- a/flightctl/api/enrollmentrequest_api.py
+++ b/flightctl/api/enrollmentrequest_api.py
@@ -336,7 +336,7 @@ def _approve_enrollment_request_serialize(
return self.api_client.param_serialize(
method='PUT',
- resource_path='/api/v1/enrollmentrequests/{name}/approval',
+ resource_path='/enrollmentrequests/{name}/approval',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -627,7 +627,7 @@ def _create_enrollment_request_serialize(
return self.api_client.param_serialize(
method='POST',
- resource_path='/api/v1/enrollmentrequests',
+ resource_path='/enrollmentrequests',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -905,7 +905,7 @@ def _delete_enrollment_request_serialize(
return self.api_client.param_serialize(
method='DELETE',
- resource_path='/api/v1/enrollmentrequests/{name}',
+ resource_path='/enrollmentrequests/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1185,7 +1185,7 @@ def _get_enrollment_config_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/enrollmentconfig',
+ resource_path='/enrollmentconfig',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1460,7 +1460,7 @@ def _get_enrollment_request_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/enrollmentrequests/{name}',
+ resource_path='/enrollmentrequests/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1735,7 +1735,7 @@ def _get_enrollment_request_status_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/enrollmentrequests/{name}/status',
+ resource_path='/enrollmentrequests/{name}/status',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -2063,7 +2063,7 @@ def _list_enrollment_requests_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/enrollmentrequests',
+ resource_path='/enrollmentrequests',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -2373,7 +2373,7 @@ def _patch_enrollment_request_serialize(
return self.api_client.param_serialize(
method='PATCH',
- resource_path='/api/v1/enrollmentrequests/{name}',
+ resource_path='/enrollmentrequests/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -2683,7 +2683,7 @@ def _patch_enrollment_request_status_serialize(
return self.api_client.param_serialize(
method='PATCH',
- resource_path='/api/v1/enrollmentrequests/{name}/status',
+ resource_path='/enrollmentrequests/{name}/status',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -2995,7 +2995,7 @@ def _replace_enrollment_request_serialize(
return self.api_client.param_serialize(
method='PUT',
- resource_path='/api/v1/enrollmentrequests/{name}',
+ resource_path='/enrollmentrequests/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -3298,7 +3298,7 @@ def _replace_enrollment_request_status_serialize(
return self.api_client.param_serialize(
method='PUT',
- resource_path='/api/v1/enrollmentrequests/{name}/status',
+ resource_path='/enrollmentrequests/{name}/status',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
diff --git a/flightctl/api/event_api.py b/flightctl/api/event_api.py
index 21026d4..30e37ed 100644
--- a/flightctl/api/event_api.py
+++ b/flightctl/api/event_api.py
@@ -352,7 +352,7 @@ def _list_events_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/events',
+ resource_path='/events',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
diff --git a/flightctl/api/fleet_api.py b/flightctl/api/fleet_api.py
index 16ba58a..d9b6587 100644
--- a/flightctl/api/fleet_api.py
+++ b/flightctl/api/fleet_api.py
@@ -320,7 +320,7 @@ def _create_fleet_serialize(
return self.api_client.param_serialize(
method='POST',
- resource_path='/api/v1/fleets',
+ resource_path='/fleets',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -595,7 +595,7 @@ def _delete_fleet_serialize(
return self.api_client.param_serialize(
method='DELETE',
- resource_path='/api/v1/fleets/{name}',
+ resource_path='/fleets/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -885,7 +885,7 @@ def _delete_template_version_serialize(
return self.api_client.param_serialize(
method='DELETE',
- resource_path='/api/v1/fleets/{fleet}/templateversions/{name}',
+ resource_path='/fleets/{fleet}/templateversions/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1177,7 +1177,7 @@ def _get_fleet_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/fleets/{name}',
+ resource_path='/fleets/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1452,7 +1452,7 @@ def _get_fleet_status_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/fleets/{name}/status',
+ resource_path='/fleets/{name}/status',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1742,7 +1742,7 @@ def _get_template_version_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/fleets/{fleet}/templateversions/{name}',
+ resource_path='/fleets/{fleet}/templateversions/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -2087,7 +2087,7 @@ def _list_fleets_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/fleets',
+ resource_path='/fleets',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -2430,7 +2430,7 @@ def _list_template_versions_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/fleets/{fleet}/templateversions',
+ resource_path='/fleets/{fleet}/templateversions',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -2740,7 +2740,7 @@ def _patch_fleet_serialize(
return self.api_client.param_serialize(
method='PATCH',
- resource_path='/api/v1/fleets/{name}',
+ resource_path='/fleets/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -3047,7 +3047,7 @@ def _patch_fleet_status_serialize(
return self.api_client.param_serialize(
method='PATCH',
- resource_path='/api/v1/fleets/{name}/status',
+ resource_path='/fleets/{name}/status',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -3125,8 +3125,8 @@ def replace_fleet(
'201': "Fleet",
'400': "Status",
'401': "Status",
- '404': "Status",
'403': "Status",
+ '404': "Status",
'409': "Status",
'429': "Status",
'503': "Status",
@@ -3204,8 +3204,8 @@ def replace_fleet_with_http_info(
'201': "Fleet",
'400': "Status",
'401': "Status",
- '404': "Status",
'403': "Status",
+ '404': "Status",
'409': "Status",
'429': "Status",
'503': "Status",
@@ -3283,8 +3283,8 @@ def replace_fleet_without_preload_content(
'201': "Fleet",
'400': "Status",
'401': "Status",
- '404': "Status",
'403': "Status",
+ '404': "Status",
'409': "Status",
'429': "Status",
'503': "Status",
@@ -3359,7 +3359,7 @@ def _replace_fleet_serialize(
return self.api_client.param_serialize(
method='PUT',
- resource_path='/api/v1/fleets/{name}',
+ resource_path='/fleets/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -3662,7 +3662,7 @@ def _replace_fleet_status_serialize(
return self.api_client.param_serialize(
method='PUT',
- resource_path='/api/v1/fleets/{name}/status',
+ resource_path='/fleets/{name}/status',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
diff --git a/flightctl/api/label_api.py b/flightctl/api/label_api.py
index 1962a37..08b4ac3 100644
--- a/flightctl/api/label_api.py
+++ b/flightctl/api/label_api.py
@@ -351,7 +351,7 @@ def _list_labels_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/labels',
+ resource_path='/labels',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
diff --git a/flightctl/api/organization_api.py b/flightctl/api/organization_api.py
index c3cbce7..b46c31f 100644
--- a/flightctl/api/organization_api.py
+++ b/flightctl/api/organization_api.py
@@ -301,7 +301,7 @@ def _list_organizations_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/organizations',
+ resource_path='/organizations',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
diff --git a/flightctl/api/repository_api.py b/flightctl/api/repository_api.py
index 4195c1c..6b6cc1b 100644
--- a/flightctl/api/repository_api.py
+++ b/flightctl/api/repository_api.py
@@ -318,7 +318,7 @@ def _create_repository_serialize(
return self.api_client.param_serialize(
method='POST',
- resource_path='/api/v1/repositories',
+ resource_path='/repositories',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -593,7 +593,7 @@ def _delete_repository_serialize(
return self.api_client.param_serialize(
method='DELETE',
- resource_path='/api/v1/repositories/{name}',
+ resource_path='/repositories/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -868,7 +868,7 @@ def _get_repository_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/repositories/{name}',
+ resource_path='/repositories/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1196,7 +1196,7 @@ def _list_repositories_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/repositories',
+ resource_path='/repositories',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1506,7 +1506,7 @@ def _patch_repository_serialize(
return self.api_client.param_serialize(
method='PATCH',
- resource_path='/api/v1/repositories/{name}',
+ resource_path='/repositories/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1818,7 +1818,7 @@ def _replace_repository_serialize(
return self.api_client.param_serialize(
method='PUT',
- resource_path='/api/v1/repositories/{name}',
+ resource_path='/repositories/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
diff --git a/flightctl/api/resourcesync_api.py b/flightctl/api/resourcesync_api.py
index d360412..01d308e 100644
--- a/flightctl/api/resourcesync_api.py
+++ b/flightctl/api/resourcesync_api.py
@@ -318,7 +318,7 @@ def _create_resource_sync_serialize(
return self.api_client.param_serialize(
method='POST',
- resource_path='/api/v1/resourcesyncs',
+ resource_path='/resourcesyncs',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -593,7 +593,7 @@ def _delete_resource_sync_serialize(
return self.api_client.param_serialize(
method='DELETE',
- resource_path='/api/v1/resourcesyncs/{name}',
+ resource_path='/resourcesyncs/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -868,7 +868,7 @@ def _get_resource_sync_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/resourcesyncs/{name}',
+ resource_path='/resourcesyncs/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1196,7 +1196,7 @@ def _list_resource_syncs_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/resourcesyncs',
+ resource_path='/resourcesyncs',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1506,7 +1506,7 @@ def _patch_resource_sync_serialize(
return self.api_client.param_serialize(
method='PATCH',
- resource_path='/api/v1/resourcesyncs/{name}',
+ resource_path='/resourcesyncs/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1818,7 +1818,7 @@ def _replace_resource_sync_serialize(
return self.api_client.param_serialize(
method='PUT',
- resource_path='/api/v1/resourcesyncs/{name}',
+ resource_path='/resourcesyncs/{name}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
diff --git a/flightctl/api/version_api.py b/flightctl/api/version_api.py
index 29af5ab..441732d 100644
--- a/flightctl/api/version_api.py
+++ b/flightctl/api/version_api.py
@@ -88,6 +88,7 @@ def get_version(
_response_types_map: Dict[str, Optional[str]] = {
'200': "Version",
+ '401': "Status",
'403': "Status",
'429': "Status",
'503': "Status",
@@ -154,6 +155,7 @@ def get_version_with_http_info(
_response_types_map: Dict[str, Optional[str]] = {
'200': "Version",
+ '401': "Status",
'403': "Status",
'429': "Status",
'503': "Status",
@@ -220,6 +222,7 @@ def get_version_without_preload_content(
_response_types_map: Dict[str, Optional[str]] = {
'200': "Version",
+ '401': "Status",
'403': "Status",
'429': "Status",
'503': "Status",
@@ -275,7 +278,7 @@ def _get_version_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/version',
+ resource_path='/version',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
diff --git a/flightctl/api_client.py b/flightctl/api_client.py
index 0e98997..682d7b1 100644
--- a/flightctl/api_client.py
+++ b/flightctl/api_client.py
@@ -92,7 +92,7 @@ def __init__(
self.default_headers[header_name] = header_value
self.cookie = cookie
# Set default User-Agent.
- self.user_agent = 'OpenAPI-Generator/1.0.0/python'
+ self.user_agent = 'OpenAPI-Generator/1.1.0/python'
self.client_side_validation = configuration.client_side_validation
def __enter__(self):
diff --git a/flightctl/configuration.py b/flightctl/configuration.py
index c086df8..aeda262 100644
--- a/flightctl/configuration.py
+++ b/flightctl/configuration.py
@@ -215,7 +215,7 @@ def __init__(
) -> None:
"""Constructor
"""
- self._base_path = "http://localhost" if host is None else host
+ self._base_path = "/api/v1" if host is None else host.rstrip("/") + "/api/v1"
"""Default Base url
"""
self.server_index = 0 if server_index is None and host is None else server_index
@@ -545,7 +545,7 @@ def to_debug_report(self) -> str:
"OS: {env}\n"\
"Python Version: {pyversion}\n"\
"Version of the API: v1beta1\n"\
- "SDK Package Version: 1.0.0".\
+ "SDK Package Version: 1.1.0".\
format(env=sys.platform, pyversion=sys.version)
def get_host_settings(self) -> List[HostSetting]:
@@ -555,7 +555,7 @@ def get_host_settings(self) -> List[HostSetting]:
"""
return [
{
- 'url': "",
+ 'url': "/api/v1",
'description': "No description provided",
}
]
diff --git a/flightctl/imagebuilder/__init__.py b/flightctl/imagebuilder/__init__.py
new file mode 100644
index 0000000..70ef703
--- /dev/null
+++ b/flightctl/imagebuilder/__init__.py
@@ -0,0 +1,115 @@
+# coding: utf-8
+
+# flake8: noqa
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+__version__ = "1.1.0"
+
+# Define package exports
+__all__ = [
+ "ImagebuildApi",
+ "ImageexportApi",
+ "ApiResponse",
+ "ApiClient",
+ "Configuration",
+ "OpenApiException",
+ "ApiTypeError",
+ "ApiValueError",
+ "ApiKeyError",
+ "ApiAttributeError",
+ "ApiException",
+ "ApiVersion",
+ "BindingType",
+ "ConditionBase",
+ "ConditionStatus",
+ "EarlyBinding",
+ "ExportFormatType",
+ "ImageBuild",
+ "ImageBuildBinding",
+ "ImageBuildCondition",
+ "ImageBuildConditionReason",
+ "ImageBuildConditionType",
+ "ImageBuildDestination",
+ "ImageBuildList",
+ "ImageBuildRefSource",
+ "ImageBuildSource",
+ "ImageBuildSpec",
+ "ImageBuildStatus",
+ "ImageBuildUserConfiguration",
+ "ImageExport",
+ "ImageExportCondition",
+ "ImageExportConditionReason",
+ "ImageExportConditionType",
+ "ImageExportFormatPhase",
+ "ImageExportList",
+ "ImageExportSourceType",
+ "ImageExportSpec",
+ "ImageExportStatus",
+ "LateBinding",
+ "ListMeta",
+ "ObjectMeta",
+ "ResourceKind",
+ "Status",
+]
+
+# import apis into sdk package
+from flightctl.imagebuilder.api.imagebuild_api import ImagebuildApi as ImagebuildApi
+from flightctl.imagebuilder.api.imageexport_api import ImageexportApi as ImageexportApi
+
+# import ApiClient
+from flightctl.imagebuilder.api_response import ApiResponse as ApiResponse
+from flightctl.imagebuilder.api_client import ApiClient as ApiClient
+from flightctl.imagebuilder.configuration import Configuration as Configuration
+from flightctl.imagebuilder.exceptions import OpenApiException as OpenApiException
+from flightctl.imagebuilder.exceptions import ApiTypeError as ApiTypeError
+from flightctl.imagebuilder.exceptions import ApiValueError as ApiValueError
+from flightctl.imagebuilder.exceptions import ApiKeyError as ApiKeyError
+from flightctl.imagebuilder.exceptions import ApiAttributeError as ApiAttributeError
+from flightctl.imagebuilder.exceptions import ApiException as ApiException
+
+# import models into sdk package
+from flightctl.imagebuilder.models.api_version import ApiVersion as ApiVersion
+from flightctl.imagebuilder.models.binding_type import BindingType as BindingType
+from flightctl.imagebuilder.models.condition_base import ConditionBase as ConditionBase
+from flightctl.imagebuilder.models.condition_status import ConditionStatus as ConditionStatus
+from flightctl.imagebuilder.models.early_binding import EarlyBinding as EarlyBinding
+from flightctl.imagebuilder.models.export_format_type import ExportFormatType as ExportFormatType
+from flightctl.imagebuilder.models.image_build import ImageBuild as ImageBuild
+from flightctl.imagebuilder.models.image_build_binding import ImageBuildBinding as ImageBuildBinding
+from flightctl.imagebuilder.models.image_build_condition import ImageBuildCondition as ImageBuildCondition
+from flightctl.imagebuilder.models.image_build_condition_reason import ImageBuildConditionReason as ImageBuildConditionReason
+from flightctl.imagebuilder.models.image_build_condition_type import ImageBuildConditionType as ImageBuildConditionType
+from flightctl.imagebuilder.models.image_build_destination import ImageBuildDestination as ImageBuildDestination
+from flightctl.imagebuilder.models.image_build_list import ImageBuildList as ImageBuildList
+from flightctl.imagebuilder.models.image_build_ref_source import ImageBuildRefSource as ImageBuildRefSource
+from flightctl.imagebuilder.models.image_build_source import ImageBuildSource as ImageBuildSource
+from flightctl.imagebuilder.models.image_build_spec import ImageBuildSpec as ImageBuildSpec
+from flightctl.imagebuilder.models.image_build_status import ImageBuildStatus as ImageBuildStatus
+from flightctl.imagebuilder.models.image_build_user_configuration import ImageBuildUserConfiguration as ImageBuildUserConfiguration
+from flightctl.imagebuilder.models.image_export import ImageExport as ImageExport
+from flightctl.imagebuilder.models.image_export_condition import ImageExportCondition as ImageExportCondition
+from flightctl.imagebuilder.models.image_export_condition_reason import ImageExportConditionReason as ImageExportConditionReason
+from flightctl.imagebuilder.models.image_export_condition_type import ImageExportConditionType as ImageExportConditionType
+from flightctl.imagebuilder.models.image_export_format_phase import ImageExportFormatPhase as ImageExportFormatPhase
+from flightctl.imagebuilder.models.image_export_list import ImageExportList as ImageExportList
+from flightctl.imagebuilder.models.image_export_source_type import ImageExportSourceType as ImageExportSourceType
+from flightctl.imagebuilder.models.image_export_spec import ImageExportSpec as ImageExportSpec
+from flightctl.imagebuilder.models.image_export_status import ImageExportStatus as ImageExportStatus
+from flightctl.imagebuilder.models.late_binding import LateBinding as LateBinding
+from flightctl.imagebuilder.models.list_meta import ListMeta as ListMeta
+from flightctl.imagebuilder.models.object_meta import ObjectMeta as ObjectMeta
+from flightctl.imagebuilder.models.resource_kind import ResourceKind as ResourceKind
+from flightctl.imagebuilder.models.status import Status as Status
+
diff --git a/flightctl/imagebuilder/api/__init__.py b/flightctl/imagebuilder/api/__init__.py
new file mode 100644
index 0000000..87e020c
--- /dev/null
+++ b/flightctl/imagebuilder/api/__init__.py
@@ -0,0 +1,6 @@
+# flake8: noqa
+
+# import apis into api package
+from flightctl.imagebuilder.api.imagebuild_api import ImagebuildApi
+from flightctl.imagebuilder.api.imageexport_api import ImageexportApi
+
diff --git a/flightctl/imagebuilder/api/imagebuild_api.py b/flightctl/imagebuilder/api/imagebuild_api.py
new file mode 100644
index 0000000..0930bd3
--- /dev/null
+++ b/flightctl/imagebuilder/api/imagebuild_api.py
@@ -0,0 +1,1819 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import Field, StrictBool, StrictInt, StrictStr
+from typing import Optional
+from typing_extensions import Annotated
+from flightctl.imagebuilder.models.image_build import ImageBuild
+from flightctl.imagebuilder.models.image_build_list import ImageBuildList
+
+from flightctl.imagebuilder.api_client import ApiClient, RequestSerialized
+from flightctl.imagebuilder.api_response import ApiResponse
+from flightctl.imagebuilder.rest import RESTResponseType
+
+
+class ImagebuildApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def cancel_image_build(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageBuild resource to cancel.")],
+ _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,
+ ) -> ImageBuild:
+ """cancel_image_build
+
+ Cancel a running ImageBuild. Only builds in Pending, Building, or Pushing state can be canceled.
+
+ :param name: The name of the ImageBuild resource to cancel. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._cancel_image_build_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageBuild",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 cancel_image_build_with_http_info(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageBuild resource to cancel.")],
+ _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[ImageBuild]:
+ """cancel_image_build
+
+ Cancel a running ImageBuild. Only builds in Pending, Building, or Pushing state can be canceled.
+
+ :param name: The name of the ImageBuild resource to cancel. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._cancel_image_build_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageBuild",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 cancel_image_build_without_preload_content(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageBuild resource to cancel.")],
+ _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:
+ """cancel_image_build
+
+ Cancel a running ImageBuild. Only builds in Pending, Building, or Pushing state can be canceled.
+
+ :param name: The name of the ImageBuild resource to cancel. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._cancel_image_build_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageBuild",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _cancel_image_build_serialize(
+ self,
+ name,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if name is not None:
+ _path_params['name'] = name
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/api/v1/imagebuilds/{name}/cancel',
+ 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 create_image_build(
+ self,
+ image_build: ImageBuild,
+ _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,
+ ) -> ImageBuild:
+ """create_image_build
+
+ Create an ImageBuild resource.
+
+ :param image_build: (required)
+ :type image_build: ImageBuild
+ :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._create_image_build_serialize(
+ image_build=image_build,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "ImageBuild",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 create_image_build_with_http_info(
+ self,
+ image_build: ImageBuild,
+ _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[ImageBuild]:
+ """create_image_build
+
+ Create an ImageBuild resource.
+
+ :param image_build: (required)
+ :type image_build: ImageBuild
+ :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._create_image_build_serialize(
+ image_build=image_build,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "ImageBuild",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 create_image_build_without_preload_content(
+ self,
+ image_build: ImageBuild,
+ _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:
+ """create_image_build
+
+ Create an ImageBuild resource.
+
+ :param image_build: (required)
+ :type image_build: ImageBuild
+ :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._create_image_build_serialize(
+ image_build=image_build,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "ImageBuild",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_image_build_serialize(
+ self,
+ image_build,
+ _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 image_build is not None:
+ _body_params = image_build
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/api/v1/imagebuilds',
+ 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 delete_image_build(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageBuild resource.")],
+ _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,
+ ) -> ImageBuild:
+ """delete_image_build
+
+ Delete an ImageBuild resource.
+
+ :param name: The name of the ImageBuild resource. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_image_build_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageBuild",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_image_build_with_http_info(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageBuild resource.")],
+ _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[ImageBuild]:
+ """delete_image_build
+
+ Delete an ImageBuild resource.
+
+ :param name: The name of the ImageBuild resource. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_image_build_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageBuild",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_image_build_without_preload_content(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageBuild resource.")],
+ _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:
+ """delete_image_build
+
+ Delete an ImageBuild resource.
+
+ :param name: The name of the ImageBuild resource. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_image_build_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageBuild",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_image_build_serialize(
+ self,
+ name,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if name is not None:
+ _path_params['name'] = name
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/api/v1/imagebuilds/{name}',
+ 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_image_build(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageBuild resource.")],
+ with_exports: Annotated[Optional[StrictBool], Field(description="If true, includes related ImageExport resources in the response.")] = 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,
+ ) -> ImageBuild:
+ """get_image_build
+
+ Get an ImageBuild resource.
+
+ :param name: The name of the ImageBuild resource. (required)
+ :type name: str
+ :param with_exports: If true, includes related ImageExport resources in the response.
+ :type with_exports: bool
+ :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_image_build_serialize(
+ name=name,
+ with_exports=with_exports,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageBuild",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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_image_build_with_http_info(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageBuild resource.")],
+ with_exports: Annotated[Optional[StrictBool], Field(description="If true, includes related ImageExport resources in the response.")] = 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[ImageBuild]:
+ """get_image_build
+
+ Get an ImageBuild resource.
+
+ :param name: The name of the ImageBuild resource. (required)
+ :type name: str
+ :param with_exports: If true, includes related ImageExport resources in the response.
+ :type with_exports: bool
+ :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_image_build_serialize(
+ name=name,
+ with_exports=with_exports,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageBuild",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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_image_build_without_preload_content(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageBuild resource.")],
+ with_exports: Annotated[Optional[StrictBool], Field(description="If true, includes related ImageExport resources in the response.")] = 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:
+ """get_image_build
+
+ Get an ImageBuild resource.
+
+ :param name: The name of the ImageBuild resource. (required)
+ :type name: str
+ :param with_exports: If true, includes related ImageExport resources in the response.
+ :type with_exports: bool
+ :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_image_build_serialize(
+ name=name,
+ with_exports=with_exports,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageBuild",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_image_build_serialize(
+ self,
+ name,
+ with_exports,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if name is not None:
+ _path_params['name'] = name
+ # process the query parameters
+ if with_exports is not None:
+
+ _query_params.append(('withExports', with_exports))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/api/v1/imagebuilds/{name}',
+ 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_image_build_log(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageBuild resource.")],
+ follow: Annotated[Optional[StrictBool], Field(description="If true, stream logs continuously (like kubectl logs -f). For active builds, keeps connection open. For completed builds, returns all logs and closes.")] = 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,
+ ) -> str:
+ """get_image_build_log
+
+ Get logs for an ImageBuild resource. For active builds, streams logs live. For completed builds, returns last 500 lines.
+
+ :param name: The name of the ImageBuild resource. (required)
+ :type name: str
+ :param follow: If true, stream logs continuously (like kubectl logs -f). For active builds, keeps connection open. For completed builds, returns all logs and closes.
+ :type follow: bool
+ :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_image_build_log_serialize(
+ name=name,
+ follow=follow,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "str",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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_image_build_log_with_http_info(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageBuild resource.")],
+ follow: Annotated[Optional[StrictBool], Field(description="If true, stream logs continuously (like kubectl logs -f). For active builds, keeps connection open. For completed builds, returns all logs and closes.")] = 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[str]:
+ """get_image_build_log
+
+ Get logs for an ImageBuild resource. For active builds, streams logs live. For completed builds, returns last 500 lines.
+
+ :param name: The name of the ImageBuild resource. (required)
+ :type name: str
+ :param follow: If true, stream logs continuously (like kubectl logs -f). For active builds, keeps connection open. For completed builds, returns all logs and closes.
+ :type follow: bool
+ :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_image_build_log_serialize(
+ name=name,
+ follow=follow,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "str",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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_image_build_log_without_preload_content(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageBuild resource.")],
+ follow: Annotated[Optional[StrictBool], Field(description="If true, stream logs continuously (like kubectl logs -f). For active builds, keeps connection open. For completed builds, returns all logs and closes.")] = 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:
+ """get_image_build_log
+
+ Get logs for an ImageBuild resource. For active builds, streams logs live. For completed builds, returns last 500 lines.
+
+ :param name: The name of the ImageBuild resource. (required)
+ :type name: str
+ :param follow: If true, stream logs continuously (like kubectl logs -f). For active builds, keeps connection open. For completed builds, returns all logs and closes.
+ :type follow: bool
+ :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_image_build_log_serialize(
+ name=name,
+ follow=follow,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "str",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_image_build_log_serialize(
+ self,
+ name,
+ follow,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if name is not None:
+ _path_params['name'] = name
+ # process the query parameters
+ if follow is not None:
+
+ _query_params.append(('follow', follow))
+
+ # 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(
+ [
+ 'text/plain',
+ 'text/event-stream',
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/api/v1/imagebuilds/{name}/log',
+ 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 list_image_builds(
+ self,
+ label_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their labels.")] = None,
+ field_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their fields.")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="The maximum number of results returned in the list response.")] = None,
+ var_continue: Annotated[Optional[StrictStr], Field(description="An optional parameter to query more results from the server.")] = None,
+ with_exports: Annotated[Optional[StrictBool], Field(description="If true, includes related ImageExport resources in each ImageBuild in the response.")] = 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,
+ ) -> ImageBuildList:
+ """list_image_builds
+
+ List ImageBuild resources.
+
+ :param label_selector: A selector to restrict the list of returned objects by their labels.
+ :type label_selector: str
+ :param field_selector: A selector to restrict the list of returned objects by their fields.
+ :type field_selector: str
+ :param limit: The maximum number of results returned in the list response.
+ :type limit: int
+ :param var_continue: An optional parameter to query more results from the server.
+ :type var_continue: str
+ :param with_exports: If true, includes related ImageExport resources in each ImageBuild in the response.
+ :type with_exports: bool
+ :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._list_image_builds_serialize(
+ label_selector=label_selector,
+ field_selector=field_selector,
+ limit=limit,
+ var_continue=var_continue,
+ with_exports=with_exports,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageBuildList",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 list_image_builds_with_http_info(
+ self,
+ label_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their labels.")] = None,
+ field_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their fields.")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="The maximum number of results returned in the list response.")] = None,
+ var_continue: Annotated[Optional[StrictStr], Field(description="An optional parameter to query more results from the server.")] = None,
+ with_exports: Annotated[Optional[StrictBool], Field(description="If true, includes related ImageExport resources in each ImageBuild in the response.")] = 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[ImageBuildList]:
+ """list_image_builds
+
+ List ImageBuild resources.
+
+ :param label_selector: A selector to restrict the list of returned objects by their labels.
+ :type label_selector: str
+ :param field_selector: A selector to restrict the list of returned objects by their fields.
+ :type field_selector: str
+ :param limit: The maximum number of results returned in the list response.
+ :type limit: int
+ :param var_continue: An optional parameter to query more results from the server.
+ :type var_continue: str
+ :param with_exports: If true, includes related ImageExport resources in each ImageBuild in the response.
+ :type with_exports: bool
+ :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._list_image_builds_serialize(
+ label_selector=label_selector,
+ field_selector=field_selector,
+ limit=limit,
+ var_continue=var_continue,
+ with_exports=with_exports,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageBuildList",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 list_image_builds_without_preload_content(
+ self,
+ label_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their labels.")] = None,
+ field_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their fields.")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="The maximum number of results returned in the list response.")] = None,
+ var_continue: Annotated[Optional[StrictStr], Field(description="An optional parameter to query more results from the server.")] = None,
+ with_exports: Annotated[Optional[StrictBool], Field(description="If true, includes related ImageExport resources in each ImageBuild in the response.")] = 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:
+ """list_image_builds
+
+ List ImageBuild resources.
+
+ :param label_selector: A selector to restrict the list of returned objects by their labels.
+ :type label_selector: str
+ :param field_selector: A selector to restrict the list of returned objects by their fields.
+ :type field_selector: str
+ :param limit: The maximum number of results returned in the list response.
+ :type limit: int
+ :param var_continue: An optional parameter to query more results from the server.
+ :type var_continue: str
+ :param with_exports: If true, includes related ImageExport resources in each ImageBuild in the response.
+ :type with_exports: bool
+ :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._list_image_builds_serialize(
+ label_selector=label_selector,
+ field_selector=field_selector,
+ limit=limit,
+ var_continue=var_continue,
+ with_exports=with_exports,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageBuildList",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _list_image_builds_serialize(
+ self,
+ label_selector,
+ field_selector,
+ limit,
+ var_continue,
+ with_exports,
+ _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
+ if label_selector is not None:
+
+ _query_params.append(('labelSelector', label_selector))
+
+ if field_selector is not None:
+
+ _query_params.append(('fieldSelector', field_selector))
+
+ if limit is not None:
+
+ _query_params.append(('limit', limit))
+
+ if var_continue is not None:
+
+ _query_params.append(('continue', var_continue))
+
+ if with_exports is not None:
+
+ _query_params.append(('withExports', with_exports))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/api/v1/imagebuilds',
+ 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
+ )
+
+
diff --git a/flightctl/imagebuilder/api/imageexport_api.py b/flightctl/imagebuilder/api/imageexport_api.py
new file mode 100644
index 0000000..e78482a
--- /dev/null
+++ b/flightctl/imagebuilder/api/imageexport_api.py
@@ -0,0 +1,2073 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import Field, StrictBool, StrictBytes, StrictInt, StrictStr
+from typing import Optional, Tuple, Union
+from typing_extensions import Annotated
+from flightctl.imagebuilder.models.image_export import ImageExport
+from flightctl.imagebuilder.models.image_export_list import ImageExportList
+
+from flightctl.imagebuilder.api_client import ApiClient, RequestSerialized
+from flightctl.imagebuilder.api_response import ApiResponse
+from flightctl.imagebuilder.rest import RESTResponseType
+
+
+class ImageexportApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def cancel_image_export(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageExport resource to cancel.")],
+ _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,
+ ) -> ImageExport:
+ """cancel_image_export
+
+ Cancel a running ImageExport. Only exports in Pending, Converting, or Pushing state can be canceled.
+
+ :param name: The name of the ImageExport resource to cancel. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._cancel_image_export_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageExport",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 cancel_image_export_with_http_info(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageExport resource to cancel.")],
+ _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[ImageExport]:
+ """cancel_image_export
+
+ Cancel a running ImageExport. Only exports in Pending, Converting, or Pushing state can be canceled.
+
+ :param name: The name of the ImageExport resource to cancel. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._cancel_image_export_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageExport",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 cancel_image_export_without_preload_content(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageExport resource to cancel.")],
+ _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:
+ """cancel_image_export
+
+ Cancel a running ImageExport. Only exports in Pending, Converting, or Pushing state can be canceled.
+
+ :param name: The name of the ImageExport resource to cancel. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._cancel_image_export_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageExport",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _cancel_image_export_serialize(
+ self,
+ name,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if name is not None:
+ _path_params['name'] = name
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/api/v1/imageexports/{name}/cancel',
+ 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 create_image_export(
+ self,
+ image_export: ImageExport,
+ _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,
+ ) -> ImageExport:
+ """create_image_export
+
+ Create an ImageExport resource.
+
+ :param image_export: (required)
+ :type image_export: ImageExport
+ :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._create_image_export_serialize(
+ image_export=image_export,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "ImageExport",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 create_image_export_with_http_info(
+ self,
+ image_export: ImageExport,
+ _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[ImageExport]:
+ """create_image_export
+
+ Create an ImageExport resource.
+
+ :param image_export: (required)
+ :type image_export: ImageExport
+ :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._create_image_export_serialize(
+ image_export=image_export,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "ImageExport",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 create_image_export_without_preload_content(
+ self,
+ image_export: ImageExport,
+ _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:
+ """create_image_export
+
+ Create an ImageExport resource.
+
+ :param image_export: (required)
+ :type image_export: ImageExport
+ :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._create_image_export_serialize(
+ image_export=image_export,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "ImageExport",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_image_export_serialize(
+ self,
+ image_export,
+ _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 image_export is not None:
+ _body_params = image_export
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/api/v1/imageexports',
+ 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 delete_image_export(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageExport resource.")],
+ _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,
+ ) -> ImageExport:
+ """delete_image_export
+
+ Delete an ImageExport resource.
+
+ :param name: The name of the ImageExport resource. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_image_export_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageExport",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_image_export_with_http_info(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageExport resource.")],
+ _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[ImageExport]:
+ """delete_image_export
+
+ Delete an ImageExport resource.
+
+ :param name: The name of the ImageExport resource. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_image_export_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageExport",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_image_export_without_preload_content(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageExport resource.")],
+ _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:
+ """delete_image_export
+
+ Delete an ImageExport resource.
+
+ :param name: The name of the ImageExport resource. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_image_export_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageExport",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_image_export_serialize(
+ self,
+ name,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if name is not None:
+ _path_params['name'] = name
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/api/v1/imageexports/{name}',
+ 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 download_image_export(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageExport resource.")],
+ _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,
+ ) -> bytearray:
+ """download_image_export
+
+ Download an ImageExport artifact from the registry.
+
+ :param name: The name of the ImageExport resource. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._download_image_export_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ '302': None,
+ '307': None,
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '500': "Status",
+ '503': "Status",
+ }
+ 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 download_image_export_with_http_info(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageExport resource.")],
+ _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[bytearray]:
+ """download_image_export
+
+ Download an ImageExport artifact from the registry.
+
+ :param name: The name of the ImageExport resource. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._download_image_export_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ '302': None,
+ '307': None,
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '500': "Status",
+ '503': "Status",
+ }
+ 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 download_image_export_without_preload_content(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageExport resource.")],
+ _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:
+ """download_image_export
+
+ Download an ImageExport artifact from the registry.
+
+ :param name: The name of the ImageExport resource. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._download_image_export_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ '302': None,
+ '307': None,
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '500': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _download_image_export_serialize(
+ self,
+ name,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if name is not None:
+ _path_params['name'] = name
+ # 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/octet-stream',
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/api/v1/imageexports/{name}/download',
+ 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_image_export(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageExport resource.")],
+ _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,
+ ) -> ImageExport:
+ """get_image_export
+
+ Get an ImageExport resource.
+
+ :param name: The name of the ImageExport resource. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_image_export_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageExport",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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_image_export_with_http_info(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageExport resource.")],
+ _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[ImageExport]:
+ """get_image_export
+
+ Get an ImageExport resource.
+
+ :param name: The name of the ImageExport resource. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_image_export_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageExport",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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_image_export_without_preload_content(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageExport resource.")],
+ _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:
+ """get_image_export
+
+ Get an ImageExport resource.
+
+ :param name: The name of the ImageExport resource. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_image_export_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageExport",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_image_export_serialize(
+ self,
+ name,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if name is not None:
+ _path_params['name'] = name
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/api/v1/imageexports/{name}',
+ 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_image_export_log(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageExport resource.")],
+ follow: Annotated[Optional[StrictBool], Field(description="If true, stream logs continuously (like kubectl logs -f). For active exports, keeps connection open. For completed exports, returns all logs and closes.")] = 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,
+ ) -> str:
+ """get_image_export_log
+
+ Get logs for an ImageExport resource. For active exports, streams logs live. For completed exports, returns last 500 lines.
+
+ :param name: The name of the ImageExport resource. (required)
+ :type name: str
+ :param follow: If true, stream logs continuously (like kubectl logs -f). For active exports, keeps connection open. For completed exports, returns all logs and closes.
+ :type follow: bool
+ :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_image_export_log_serialize(
+ name=name,
+ follow=follow,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "str",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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_image_export_log_with_http_info(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageExport resource.")],
+ follow: Annotated[Optional[StrictBool], Field(description="If true, stream logs continuously (like kubectl logs -f). For active exports, keeps connection open. For completed exports, returns all logs and closes.")] = 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[str]:
+ """get_image_export_log
+
+ Get logs for an ImageExport resource. For active exports, streams logs live. For completed exports, returns last 500 lines.
+
+ :param name: The name of the ImageExport resource. (required)
+ :type name: str
+ :param follow: If true, stream logs continuously (like kubectl logs -f). For active exports, keeps connection open. For completed exports, returns all logs and closes.
+ :type follow: bool
+ :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_image_export_log_serialize(
+ name=name,
+ follow=follow,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "str",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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_image_export_log_without_preload_content(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the ImageExport resource.")],
+ follow: Annotated[Optional[StrictBool], Field(description="If true, stream logs continuously (like kubectl logs -f). For active exports, keeps connection open. For completed exports, returns all logs and closes.")] = 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:
+ """get_image_export_log
+
+ Get logs for an ImageExport resource. For active exports, streams logs live. For completed exports, returns last 500 lines.
+
+ :param name: The name of the ImageExport resource. (required)
+ :type name: str
+ :param follow: If true, stream logs continuously (like kubectl logs -f). For active exports, keeps connection open. For completed exports, returns all logs and closes.
+ :type follow: bool
+ :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_image_export_log_serialize(
+ name=name,
+ follow=follow,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "str",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_image_export_log_serialize(
+ self,
+ name,
+ follow,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if name is not None:
+ _path_params['name'] = name
+ # process the query parameters
+ if follow is not None:
+
+ _query_params.append(('follow', follow))
+
+ # 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(
+ [
+ 'text/plain',
+ 'text/event-stream',
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/api/v1/imageexports/{name}/log',
+ 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 list_image_exports(
+ self,
+ label_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their labels.")] = None,
+ field_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their fields.")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="The maximum number of results returned in the list response.")] = None,
+ var_continue: Annotated[Optional[StrictStr], Field(description="An optional parameter to query more results from the server.")] = 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,
+ ) -> ImageExportList:
+ """list_image_exports
+
+ List ImageExport resources.
+
+ :param label_selector: A selector to restrict the list of returned objects by their labels.
+ :type label_selector: str
+ :param field_selector: A selector to restrict the list of returned objects by their fields.
+ :type field_selector: str
+ :param limit: The maximum number of results returned in the list response.
+ :type limit: int
+ :param var_continue: An optional parameter to query more results from the server.
+ :type var_continue: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._list_image_exports_serialize(
+ label_selector=label_selector,
+ field_selector=field_selector,
+ limit=limit,
+ var_continue=var_continue,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageExportList",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 list_image_exports_with_http_info(
+ self,
+ label_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their labels.")] = None,
+ field_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their fields.")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="The maximum number of results returned in the list response.")] = None,
+ var_continue: Annotated[Optional[StrictStr], Field(description="An optional parameter to query more results from the server.")] = 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[ImageExportList]:
+ """list_image_exports
+
+ List ImageExport resources.
+
+ :param label_selector: A selector to restrict the list of returned objects by their labels.
+ :type label_selector: str
+ :param field_selector: A selector to restrict the list of returned objects by their fields.
+ :type field_selector: str
+ :param limit: The maximum number of results returned in the list response.
+ :type limit: int
+ :param var_continue: An optional parameter to query more results from the server.
+ :type var_continue: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._list_image_exports_serialize(
+ label_selector=label_selector,
+ field_selector=field_selector,
+ limit=limit,
+ var_continue=var_continue,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageExportList",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 list_image_exports_without_preload_content(
+ self,
+ label_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their labels.")] = None,
+ field_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their fields.")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="The maximum number of results returned in the list response.")] = None,
+ var_continue: Annotated[Optional[StrictStr], Field(description="An optional parameter to query more results from the server.")] = 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:
+ """list_image_exports
+
+ List ImageExport resources.
+
+ :param label_selector: A selector to restrict the list of returned objects by their labels.
+ :type label_selector: str
+ :param field_selector: A selector to restrict the list of returned objects by their fields.
+ :type field_selector: str
+ :param limit: The maximum number of results returned in the list response.
+ :type limit: int
+ :param var_continue: An optional parameter to query more results from the server.
+ :type var_continue: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._list_image_exports_serialize(
+ label_selector=label_selector,
+ field_selector=field_selector,
+ limit=limit,
+ var_continue=var_continue,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ImageExportList",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _list_image_exports_serialize(
+ self,
+ label_selector,
+ field_selector,
+ limit,
+ var_continue,
+ _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
+ if label_selector is not None:
+
+ _query_params.append(('labelSelector', label_selector))
+
+ if field_selector is not None:
+
+ _query_params.append(('fieldSelector', field_selector))
+
+ if limit is not None:
+
+ _query_params.append(('limit', limit))
+
+ if var_continue is not None:
+
+ _query_params.append(('continue', var_continue))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/api/v1/imageexports',
+ 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
+ )
+
+
diff --git a/flightctl/imagebuilder/api_client.py b/flightctl/imagebuilder/api_client.py
new file mode 100644
index 0000000..1b79099
--- /dev/null
+++ b/flightctl/imagebuilder/api_client.py
@@ -0,0 +1,805 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import datetime
+from dateutil.parser import parse
+from enum import Enum
+import decimal
+import json
+import mimetypes
+import os
+import re
+import tempfile
+import uuid
+
+from urllib.parse import quote
+from typing import Tuple, Optional, List, Dict, Union
+from pydantic import SecretStr
+
+from flightctl.imagebuilder.configuration import Configuration
+from flightctl.imagebuilder.api_response import ApiResponse, T as ApiResponseT
+import flightctl.imagebuilder.models
+from flightctl.imagebuilder import rest
+from flightctl.imagebuilder.exceptions import (
+ ApiValueError,
+ ApiException,
+ BadRequestException,
+ UnauthorizedException,
+ ForbiddenException,
+ NotFoundException,
+ ServiceException
+)
+
+RequestSerialized = Tuple[str, str, Dict[str, str], Optional[str], List[str]]
+
+class ApiClient:
+ """Generic API client for OpenAPI client library builds.
+
+ OpenAPI generic API client. This client handles the client-
+ server communication, and is invariant across implementations. Specifics of
+ the methods and models for each application are generated from the OpenAPI
+ templates.
+
+ :param configuration: .Configuration object for this client
+ :param header_name: a header to pass when making calls to the API.
+ :param header_value: a header value to pass when making calls to
+ the API.
+ :param cookie: a cookie to include in the header when making calls
+ to the API
+ """
+
+ PRIMITIVE_TYPES = (float, bool, bytes, str, int)
+ NATIVE_TYPES_MAPPING = {
+ 'int': int,
+ 'long': int, # TODO remove as only py3 is supported?
+ 'float': float,
+ 'str': str,
+ 'bool': bool,
+ 'date': datetime.date,
+ 'datetime': datetime.datetime,
+ 'decimal': decimal.Decimal,
+ 'object': object,
+ }
+ _pool = None
+
+ def __init__(
+ self,
+ configuration=None,
+ header_name=None,
+ header_value=None,
+ cookie=None
+ ) -> None:
+ # use default configuration if none is provided
+ if configuration is None:
+ configuration = Configuration.get_default()
+ self.configuration = configuration
+
+ self.rest_client = rest.RESTClientObject(configuration)
+ self.default_headers = {}
+ if header_name is not None:
+ self.default_headers[header_name] = header_value
+ self.cookie = cookie
+ # Set default User-Agent.
+ self.user_agent = 'OpenAPI-Generator/1.1.0/python'
+ self.client_side_validation = configuration.client_side_validation
+
+ def __enter__(self):
+ return self
+
+ def __exit__(self, exc_type, exc_value, traceback):
+ pass
+
+ @property
+ def user_agent(self):
+ """User agent for this API client"""
+ return self.default_headers['User-Agent']
+
+ @user_agent.setter
+ def user_agent(self, value):
+ self.default_headers['User-Agent'] = value
+
+ def set_default_header(self, header_name, header_value):
+ self.default_headers[header_name] = header_value
+
+
+ _default = None
+
+ @classmethod
+ def get_default(cls):
+ """Return new instance of ApiClient.
+
+ This method returns newly created, based on default constructor,
+ object of ApiClient class or returns a copy of default
+ ApiClient.
+
+ :return: The ApiClient object.
+ """
+ if cls._default is None:
+ cls._default = ApiClient()
+ return cls._default
+
+ @classmethod
+ def set_default(cls, default):
+ """Set default instance of ApiClient.
+
+ It stores default ApiClient.
+
+ :param default: object of ApiClient.
+ """
+ cls._default = default
+
+ def param_serialize(
+ self,
+ method,
+ resource_path,
+ path_params=None,
+ query_params=None,
+ header_params=None,
+ body=None,
+ post_params=None,
+ files=None, auth_settings=None,
+ collection_formats=None,
+ _host=None,
+ _request_auth=None
+ ) -> RequestSerialized:
+
+ """Builds the HTTP request params needed by the request.
+ :param method: Method to call.
+ :param resource_path: Path to method endpoint.
+ :param path_params: Path parameters in the url.
+ :param query_params: Query parameters in the url.
+ :param header_params: Header parameters to be
+ placed in the request header.
+ :param body: Request body.
+ :param post_params dict: Request post form parameters,
+ for `application/x-www-form-urlencoded`, `multipart/form-data`.
+ :param auth_settings list: Auth Settings names for the request.
+ :param files dict: key -> filename, value -> filepath,
+ for `multipart/form-data`.
+ :param collection_formats: dict of collection formats for path, query,
+ header, and post parameters.
+ :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.
+ :return: tuple of form (path, http_method, query_params, header_params,
+ body, post_params, files)
+ """
+
+ config = self.configuration
+
+ # header parameters
+ header_params = header_params or {}
+ header_params.update(self.default_headers)
+ if self.cookie:
+ header_params['Cookie'] = self.cookie
+ if header_params:
+ header_params = self.sanitize_for_serialization(header_params)
+ header_params = dict(
+ self.parameters_to_tuples(header_params,collection_formats)
+ )
+
+ # path parameters
+ if path_params:
+ path_params = self.sanitize_for_serialization(path_params)
+ path_params = self.parameters_to_tuples(
+ path_params,
+ collection_formats
+ )
+ for k, v in path_params:
+ # specified safe chars, encode everything
+ resource_path = resource_path.replace(
+ '{%s}' % k,
+ quote(str(v), safe=config.safe_chars_for_path_param)
+ )
+
+ # post parameters
+ if post_params or files:
+ post_params = post_params if post_params else []
+ post_params = self.sanitize_for_serialization(post_params)
+ post_params = self.parameters_to_tuples(
+ post_params,
+ collection_formats
+ )
+ if files:
+ post_params.extend(self.files_parameters(files))
+
+ # auth setting
+ self.update_params_for_auth(
+ header_params,
+ query_params,
+ auth_settings,
+ resource_path,
+ method,
+ body,
+ request_auth=_request_auth
+ )
+
+ # body
+ if body:
+ body = self.sanitize_for_serialization(body)
+
+ # request url
+ if _host is None or self.configuration.ignore_operation_servers:
+ url = self.configuration.host + resource_path
+ else:
+ # use server/host defined in path or operation instead
+ url = _host + resource_path
+
+ # query parameters
+ if query_params:
+ query_params = self.sanitize_for_serialization(query_params)
+ url_query = self.parameters_to_url_query(
+ query_params,
+ collection_formats
+ )
+ url += "?" + url_query
+
+ return method, url, header_params, body, post_params
+
+
+ def call_api(
+ self,
+ method,
+ url,
+ header_params=None,
+ body=None,
+ post_params=None,
+ _request_timeout=None
+ ) -> rest.RESTResponse:
+ """Makes the HTTP request (synchronous)
+ :param method: Method to call.
+ :param url: Path to method endpoint.
+ :param header_params: Header parameters to be
+ placed in the request header.
+ :param body: Request body.
+ :param post_params dict: Request post form parameters,
+ for `application/x-www-form-urlencoded`, `multipart/form-data`.
+ :param _request_timeout: timeout setting for this request.
+ :return: RESTResponse
+ """
+
+ try:
+ # perform request and return response
+ response_data = self.rest_client.request(
+ method, url,
+ headers=header_params,
+ body=body, post_params=post_params,
+ _request_timeout=_request_timeout
+ )
+
+ except ApiException as e:
+ raise e
+
+ return response_data
+
+ def response_deserialize(
+ self,
+ response_data: rest.RESTResponse,
+ response_types_map: Optional[Dict[str, ApiResponseT]]=None
+ ) -> ApiResponse[ApiResponseT]:
+ """Deserializes response into an object.
+ :param response_data: RESTResponse object to be deserialized.
+ :param response_types_map: dict of response types.
+ :return: ApiResponse
+ """
+
+ msg = "RESTResponse.read() must be called before passing it to response_deserialize()"
+ assert response_data.data is not None, msg
+
+ response_type = response_types_map.get(str(response_data.status), None)
+ if not response_type and isinstance(response_data.status, int) and 100 <= response_data.status <= 599:
+ # if not found, look for '1XX', '2XX', etc.
+ response_type = response_types_map.get(str(response_data.status)[0] + "XX", None)
+
+ # deserialize response data
+ response_text = None
+ return_data = None
+ try:
+ if response_type == "bytearray":
+ return_data = response_data.data
+ elif response_type == "file":
+ return_data = self.__deserialize_file(response_data)
+ elif response_type is not None:
+ match = None
+ content_type = response_data.getheader('content-type')
+ if content_type is not None:
+ match = re.search(r"charset=([a-zA-Z\-\d]+)[\s;]?", content_type)
+ encoding = match.group(1) if match else "utf-8"
+ response_text = response_data.data.decode(encoding)
+ return_data = self.deserialize(response_text, response_type, content_type)
+ finally:
+ if not 200 <= response_data.status <= 299:
+ raise ApiException.from_response(
+ http_resp=response_data,
+ body=response_text,
+ data=return_data,
+ )
+
+ return ApiResponse(
+ status_code = response_data.status,
+ data = return_data,
+ headers = response_data.getheaders(),
+ raw_data = response_data.data
+ )
+
+ def sanitize_for_serialization(self, obj):
+ """Builds a JSON POST object.
+
+ If obj is None, return None.
+ If obj is SecretStr, return obj.get_secret_value()
+ If obj is str, int, long, float, bool, return directly.
+ If obj is datetime.datetime, datetime.date
+ convert to string in iso8601 format.
+ If obj is decimal.Decimal return string representation.
+ If obj is list, sanitize each element in the list.
+ If obj is dict, return the dict.
+ If obj is OpenAPI model, return the properties dict.
+
+ :param obj: The data to serialize.
+ :return: The serialized form of data.
+ """
+ if obj is None:
+ return None
+ elif isinstance(obj, Enum):
+ return obj.value
+ elif isinstance(obj, SecretStr):
+ return obj.get_secret_value()
+ elif isinstance(obj, self.PRIMITIVE_TYPES):
+ return obj
+ elif isinstance(obj, uuid.UUID):
+ return str(obj)
+ elif isinstance(obj, list):
+ return [
+ self.sanitize_for_serialization(sub_obj) for sub_obj in obj
+ ]
+ elif isinstance(obj, tuple):
+ return tuple(
+ self.sanitize_for_serialization(sub_obj) for sub_obj in obj
+ )
+ elif isinstance(obj, (datetime.datetime, datetime.date)):
+ return obj.isoformat()
+ elif isinstance(obj, decimal.Decimal):
+ return str(obj)
+
+ elif isinstance(obj, dict):
+ obj_dict = obj
+ else:
+ # Convert model obj to dict except
+ # attributes `openapi_types`, `attribute_map`
+ # and attributes which value is not None.
+ # Convert attribute name to json key in
+ # model definition for request.
+ if hasattr(obj, 'to_dict') and callable(getattr(obj, 'to_dict')):
+ obj_dict = obj.to_dict()
+ else:
+ obj_dict = obj.__dict__
+
+ if isinstance(obj_dict, list):
+ # here we handle instances that can either be a list or something else, and only became a real list by calling to_dict()
+ return self.sanitize_for_serialization(obj_dict)
+
+ return {
+ key: self.sanitize_for_serialization(val)
+ for key, val in obj_dict.items()
+ }
+
+ def deserialize(self, response_text: str, response_type: str, content_type: Optional[str]):
+ """Deserializes response into an object.
+
+ :param response: RESTResponse object to be deserialized.
+ :param response_type: class literal for
+ deserialized object, or string of class name.
+ :param content_type: content type of response.
+
+ :return: deserialized object.
+ """
+
+ # fetch data from response object
+ if content_type is None:
+ try:
+ data = json.loads(response_text)
+ except ValueError:
+ data = response_text
+ elif re.match(r'^application/(json|[\w!#$&.+\-^_]+\+json)\s*(;|$)', content_type, re.IGNORECASE):
+ if response_text == "":
+ data = ""
+ else:
+ data = json.loads(response_text)
+ elif re.match(r'^text\/[a-z.+-]+\s*(;|$)', content_type, re.IGNORECASE):
+ data = response_text
+ else:
+ raise ApiException(
+ status=0,
+ reason="Unsupported content type: {0}".format(content_type)
+ )
+
+ return self.__deserialize(data, response_type)
+
+ def __deserialize(self, data, klass):
+ """Deserializes dict, list, str into an object.
+
+ :param data: dict, list or str.
+ :param klass: class literal, or string of class name.
+
+ :return: object.
+ """
+ if data is None:
+ return None
+
+ if isinstance(klass, str):
+ if klass.startswith('List['):
+ m = re.match(r'List\[(.*)]', klass)
+ assert m is not None, "Malformed List type definition"
+ sub_kls = m.group(1)
+ return [self.__deserialize(sub_data, sub_kls)
+ for sub_data in data]
+
+ if klass.startswith('Dict['):
+ m = re.match(r'Dict\[([^,]*), (.*)]', klass)
+ assert m is not None, "Malformed Dict type definition"
+ sub_kls = m.group(2)
+ return {k: self.__deserialize(v, sub_kls)
+ for k, v in data.items()}
+
+ # convert str to class
+ if klass in self.NATIVE_TYPES_MAPPING:
+ klass = self.NATIVE_TYPES_MAPPING[klass]
+ else:
+ klass = getattr(flightctl.imagebuilder.models, klass)
+
+ if klass in self.PRIMITIVE_TYPES:
+ return self.__deserialize_primitive(data, klass)
+ elif klass is object:
+ return self.__deserialize_object(data)
+ elif klass is datetime.date:
+ return self.__deserialize_date(data)
+ elif klass is datetime.datetime:
+ return self.__deserialize_datetime(data)
+ elif klass is decimal.Decimal:
+ return decimal.Decimal(data)
+ elif issubclass(klass, Enum):
+ return self.__deserialize_enum(data, klass)
+ else:
+ return self.__deserialize_model(data, klass)
+
+ def parameters_to_tuples(self, params, collection_formats):
+ """Get parameters as list of tuples, formatting collections.
+
+ :param params: Parameters as dict or list of two-tuples
+ :param dict collection_formats: Parameter collection formats
+ :return: Parameters as list of tuples, collections formatted
+ """
+ new_params: List[Tuple[str, str]] = []
+ if collection_formats is None:
+ collection_formats = {}
+ for k, v in params.items() if isinstance(params, dict) else params:
+ if k in collection_formats:
+ collection_format = collection_formats[k]
+ if collection_format == 'multi':
+ new_params.extend((k, value) for value in v)
+ else:
+ if collection_format == 'ssv':
+ delimiter = ' '
+ elif collection_format == 'tsv':
+ delimiter = '\t'
+ elif collection_format == 'pipes':
+ delimiter = '|'
+ else: # csv is the default
+ delimiter = ','
+ new_params.append(
+ (k, delimiter.join(str(value) for value in v)))
+ else:
+ new_params.append((k, v))
+ return new_params
+
+ def parameters_to_url_query(self, params, collection_formats):
+ """Get parameters as list of tuples, formatting collections.
+
+ :param params: Parameters as dict or list of two-tuples
+ :param dict collection_formats: Parameter collection formats
+ :return: URL query string (e.g. a=Hello%20World&b=123)
+ """
+ new_params: List[Tuple[str, str]] = []
+ if collection_formats is None:
+ collection_formats = {}
+ for k, v in params.items() if isinstance(params, dict) else params:
+ if isinstance(v, bool):
+ v = str(v).lower()
+ if isinstance(v, (int, float)):
+ v = str(v)
+ if isinstance(v, dict):
+ v = json.dumps(v)
+
+ if k in collection_formats:
+ collection_format = collection_formats[k]
+ if collection_format == 'multi':
+ new_params.extend((k, quote(str(value))) for value in v)
+ else:
+ if collection_format == 'ssv':
+ delimiter = ' '
+ elif collection_format == 'tsv':
+ delimiter = '\t'
+ elif collection_format == 'pipes':
+ delimiter = '|'
+ else: # csv is the default
+ delimiter = ','
+ new_params.append(
+ (k, delimiter.join(quote(str(value)) for value in v))
+ )
+ else:
+ new_params.append((k, quote(str(v))))
+
+ return "&".join(["=".join(map(str, item)) for item in new_params])
+
+ def files_parameters(
+ self,
+ files: Dict[str, Union[str, bytes, List[str], List[bytes], Tuple[str, bytes]]],
+ ):
+ """Builds form parameters.
+
+ :param files: File parameters.
+ :return: Form parameters with files.
+ """
+ params = []
+ for k, v in files.items():
+ if isinstance(v, str):
+ with open(v, 'rb') as f:
+ filename = os.path.basename(f.name)
+ filedata = f.read()
+ elif isinstance(v, bytes):
+ filename = k
+ filedata = v
+ elif isinstance(v, tuple):
+ filename, filedata = v
+ elif isinstance(v, list):
+ for file_param in v:
+ params.extend(self.files_parameters({k: file_param}))
+ continue
+ else:
+ raise ValueError("Unsupported file value")
+ mimetype = (
+ mimetypes.guess_type(filename)[0]
+ or 'application/octet-stream'
+ )
+ params.append(
+ tuple([k, tuple([filename, filedata, mimetype])])
+ )
+ return params
+
+ def select_header_accept(self, accepts: List[str]) -> Optional[str]:
+ """Returns `Accept` based on an array of accepts provided.
+
+ :param accepts: List of headers.
+ :return: Accept (e.g. application/json).
+ """
+ if not accepts:
+ return None
+
+ for accept in accepts:
+ if re.search('json', accept, re.IGNORECASE):
+ return accept
+
+ return accepts[0]
+
+ def select_header_content_type(self, content_types):
+ """Returns `Content-Type` based on an array of content_types provided.
+
+ :param content_types: List of content-types.
+ :return: Content-Type (e.g. application/json).
+ """
+ if not content_types:
+ return None
+
+ for content_type in content_types:
+ if re.search('json', content_type, re.IGNORECASE):
+ return content_type
+
+ return content_types[0]
+
+ def update_params_for_auth(
+ self,
+ headers,
+ queries,
+ auth_settings,
+ resource_path,
+ method,
+ body,
+ request_auth=None
+ ) -> None:
+ """Updates header and query params based on authentication setting.
+
+ :param headers: Header parameters dict to be updated.
+ :param queries: Query parameters tuple list to be updated.
+ :param auth_settings: Authentication setting identifiers list.
+ :resource_path: A string representation of the HTTP request resource path.
+ :method: A string representation of the HTTP request method.
+ :body: A object representing the body of the HTTP request.
+ The object type is the return value of sanitize_for_serialization().
+ :param request_auth: if set, the provided settings will
+ override the token in the configuration.
+ """
+ if not auth_settings:
+ return
+
+ if request_auth:
+ self._apply_auth_params(
+ headers,
+ queries,
+ resource_path,
+ method,
+ body,
+ request_auth
+ )
+ else:
+ for auth in auth_settings:
+ auth_setting = self.configuration.auth_settings().get(auth)
+ if auth_setting:
+ self._apply_auth_params(
+ headers,
+ queries,
+ resource_path,
+ method,
+ body,
+ auth_setting
+ )
+
+ def _apply_auth_params(
+ self,
+ headers,
+ queries,
+ resource_path,
+ method,
+ body,
+ auth_setting
+ ) -> None:
+ """Updates the request parameters based on a single auth_setting
+
+ :param headers: Header parameters dict to be updated.
+ :param queries: Query parameters tuple list to be updated.
+ :resource_path: A string representation of the HTTP request resource path.
+ :method: A string representation of the HTTP request method.
+ :body: A object representing the body of the HTTP request.
+ The object type is the return value of sanitize_for_serialization().
+ :param auth_setting: auth settings for the endpoint
+ """
+ if auth_setting['in'] == 'cookie':
+ headers['Cookie'] = auth_setting['value']
+ elif auth_setting['in'] == 'header':
+ if auth_setting['type'] != 'http-signature':
+ headers[auth_setting['key']] = auth_setting['value']
+ elif auth_setting['in'] == 'query':
+ queries.append((auth_setting['key'], auth_setting['value']))
+ else:
+ raise ApiValueError(
+ 'Authentication token must be in `query` or `header`'
+ )
+
+ def __deserialize_file(self, response):
+ """Deserializes body to file
+
+ Saves response body into a file in a temporary folder,
+ using the filename from the `Content-Disposition` header if provided.
+
+ handle file downloading
+ save response body into a tmp file and return the instance
+
+ :param response: RESTResponse.
+ :return: file path.
+ """
+ fd, path = tempfile.mkstemp(dir=self.configuration.temp_folder_path)
+ os.close(fd)
+ os.remove(path)
+
+ content_disposition = response.getheader("Content-Disposition")
+ if content_disposition:
+ m = re.search(
+ r'filename=[\'"]?([^\'"\s]+)[\'"]?',
+ content_disposition
+ )
+ assert m is not None, "Unexpected 'content-disposition' header value"
+ filename = m.group(1)
+ path = os.path.join(os.path.dirname(path), filename)
+
+ with open(path, "wb") as f:
+ f.write(response.data)
+
+ return path
+
+ def __deserialize_primitive(self, data, klass):
+ """Deserializes string to primitive type.
+
+ :param data: str.
+ :param klass: class literal.
+
+ :return: int, long, float, str, bool.
+ """
+ try:
+ return klass(data)
+ except UnicodeEncodeError:
+ return str(data)
+ except TypeError:
+ return data
+
+ def __deserialize_object(self, value):
+ """Return an original value.
+
+ :return: object.
+ """
+ return value
+
+ def __deserialize_date(self, string):
+ """Deserializes string to date.
+
+ :param string: str.
+ :return: date.
+ """
+ try:
+ return parse(string).date()
+ except ImportError:
+ return string
+ except ValueError:
+ raise rest.ApiException(
+ status=0,
+ reason="Failed to parse `{0}` as date object".format(string)
+ )
+
+ def __deserialize_datetime(self, string):
+ """Deserializes string to datetime.
+
+ The string should be in iso8601 datetime format.
+
+ :param string: str.
+ :return: datetime.
+ """
+ try:
+ return parse(string)
+ except ImportError:
+ return string
+ except ValueError:
+ raise rest.ApiException(
+ status=0,
+ reason=(
+ "Failed to parse `{0}` as datetime object"
+ .format(string)
+ )
+ )
+
+ def __deserialize_enum(self, data, klass):
+ """Deserializes primitive type to enum.
+
+ :param data: primitive type.
+ :param klass: class literal.
+ :return: enum value.
+ """
+ try:
+ return klass(data)
+ except ValueError:
+ raise rest.ApiException(
+ status=0,
+ reason=(
+ "Failed to parse `{0}` as `{1}`"
+ .format(data, klass)
+ )
+ )
+
+ def __deserialize_model(self, data, klass):
+ """Deserializes list or dict to model.
+
+ :param data: dict, list.
+ :param klass: class literal.
+ :return: model object.
+ """
+
+ return klass.from_dict(data)
diff --git a/flightctl/imagebuilder/api_response.py b/flightctl/imagebuilder/api_response.py
new file mode 100644
index 0000000..9bc7c11
--- /dev/null
+++ b/flightctl/imagebuilder/api_response.py
@@ -0,0 +1,21 @@
+"""API response object."""
+
+from __future__ import annotations
+from typing import Optional, Generic, Mapping, TypeVar
+from pydantic import Field, StrictInt, StrictBytes, BaseModel
+
+T = TypeVar("T")
+
+class ApiResponse(BaseModel, Generic[T]):
+ """
+ API response object
+ """
+
+ status_code: StrictInt = Field(description="HTTP status code")
+ headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers")
+ data: T = Field(description="Deserialized data given the data type")
+ raw_data: StrictBytes = Field(description="Raw data (HTTP response body)")
+
+ model_config = {
+ "arbitrary_types_allowed": True
+ }
diff --git a/flightctl/imagebuilder/configuration.py b/flightctl/imagebuilder/configuration.py
new file mode 100644
index 0000000..6fd6cfd
--- /dev/null
+++ b/flightctl/imagebuilder/configuration.py
@@ -0,0 +1,616 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import copy
+import http.client as httplib
+import logging
+from logging import FileHandler
+import multiprocessing
+import sys
+from typing import Any, ClassVar, Dict, List, Literal, Optional, TypedDict, Union
+from typing_extensions import NotRequired, Self
+
+import urllib3
+
+
+JSON_SCHEMA_VALIDATION_KEYWORDS = {
+ 'multipleOf', 'maximum', 'exclusiveMaximum',
+ 'minimum', 'exclusiveMinimum', 'maxLength',
+ 'minLength', 'pattern', 'maxItems', 'minItems'
+}
+
+ServerVariablesT = Dict[str, str]
+
+GenericAuthSetting = TypedDict(
+ "GenericAuthSetting",
+ {
+ "type": str,
+ "in": str,
+ "key": str,
+ "value": str,
+ },
+)
+
+
+OAuth2AuthSetting = TypedDict(
+ "OAuth2AuthSetting",
+ {
+ "type": Literal["oauth2"],
+ "in": Literal["header"],
+ "key": Literal["Authorization"],
+ "value": str,
+ },
+)
+
+
+APIKeyAuthSetting = TypedDict(
+ "APIKeyAuthSetting",
+ {
+ "type": Literal["api_key"],
+ "in": str,
+ "key": str,
+ "value": Optional[str],
+ },
+)
+
+
+BasicAuthSetting = TypedDict(
+ "BasicAuthSetting",
+ {
+ "type": Literal["basic"],
+ "in": Literal["header"],
+ "key": Literal["Authorization"],
+ "value": Optional[str],
+ },
+)
+
+
+BearerFormatAuthSetting = TypedDict(
+ "BearerFormatAuthSetting",
+ {
+ "type": Literal["bearer"],
+ "in": Literal["header"],
+ "format": Literal["JWT"],
+ "key": Literal["Authorization"],
+ "value": str,
+ },
+)
+
+
+BearerAuthSetting = TypedDict(
+ "BearerAuthSetting",
+ {
+ "type": Literal["bearer"],
+ "in": Literal["header"],
+ "key": Literal["Authorization"],
+ "value": str,
+ },
+)
+
+
+HTTPSignatureAuthSetting = TypedDict(
+ "HTTPSignatureAuthSetting",
+ {
+ "type": Literal["http-signature"],
+ "in": Literal["header"],
+ "key": Literal["Authorization"],
+ "value": None,
+ },
+)
+
+
+AuthSettings = TypedDict(
+ "AuthSettings",
+ {
+ "bearerAuth": BearerFormatAuthSetting,
+ "orgId": APIKeyAuthSetting,
+ },
+ total=False,
+)
+
+
+class HostSettingVariable(TypedDict):
+ description: str
+ default_value: str
+ enum_values: List[str]
+
+
+class HostSetting(TypedDict):
+ url: str
+ description: str
+ variables: NotRequired[Dict[str, HostSettingVariable]]
+
+
+class Configuration:
+ """This class contains various settings of the API client.
+
+ :param host: Base url.
+ :param ignore_operation_servers
+ Boolean to ignore operation servers for the API client.
+ Config will use `host` as the base url regardless of the operation servers.
+ :param api_key: Dict to store API key(s).
+ Each entry in the dict specifies an API key.
+ The dict key is the name of the security scheme in the OAS specification.
+ The dict value is the API key secret.
+ :param api_key_prefix: Dict to store API prefix (e.g. Bearer).
+ The dict key is the name of the security scheme in the OAS specification.
+ The dict value is an API key prefix when generating the auth data.
+ :param username: Username for HTTP basic authentication.
+ :param password: Password for HTTP basic authentication.
+ :param access_token: Access token.
+ :param server_index: Index to servers configuration.
+ :param server_variables: Mapping with string values to replace variables in
+ templated server configuration. The validation of enums is performed for
+ variables with defined enum values before.
+ :param server_operation_index: Mapping from operation ID to an index to server
+ configuration.
+ :param server_operation_variables: Mapping from operation ID to a mapping with
+ string values to replace variables in templated server configuration.
+ The validation of enums is performed for variables with defined enum
+ values before.
+ :param ssl_ca_cert: str - the path to a file of concatenated CA certificates
+ in PEM format.
+ :param retries: Number of retries for API requests.
+ :param ca_cert_data: verify the peer using concatenated CA certificate data
+ in PEM (str) or DER (bytes) format.
+ :param cert_file: the path to a client certificate file, for mTLS.
+ :param key_file: the path to a client key file, for mTLS.
+
+ :Example:
+
+ API Key Authentication Example.
+ Given the following security scheme in the OpenAPI specification:
+ components:
+ securitySchemes:
+ cookieAuth: # name for the security scheme
+ type: apiKey
+ in: cookie
+ name: JSESSIONID # cookie name
+
+ You can programmatically set the cookie:
+
+conf = flightctl.imagebuilder.Configuration(
+ api_key={'cookieAuth': 'abc123'}
+ api_key_prefix={'cookieAuth': 'JSESSIONID'}
+)
+
+ The following cookie will be added to the HTTP request:
+ Cookie: JSESSIONID abc123
+ """
+
+ _default: ClassVar[Optional[Self]] = None
+
+ def __init__(
+ self,
+ host: Optional[str]=None,
+ api_key: Optional[Dict[str, str]]=None,
+ api_key_prefix: Optional[Dict[str, str]]=None,
+ username: Optional[str]=None,
+ password: Optional[str]=None,
+ access_token: Optional[str]=None,
+ server_index: Optional[int]=None,
+ server_variables: Optional[ServerVariablesT]=None,
+ server_operation_index: Optional[Dict[int, int]]=None,
+ server_operation_variables: Optional[Dict[int, ServerVariablesT]]=None,
+ ignore_operation_servers: bool=False,
+ ssl_ca_cert: Optional[str]=None,
+ retries: Optional[int] = None,
+ ca_cert_data: Optional[Union[str, bytes]] = None,
+ cert_file: Optional[str]=None,
+ key_file: Optional[str]=None,
+ *,
+ debug: Optional[bool] = None,
+ ) -> None:
+ """Constructor
+ """
+ self._base_path = "http://localhost" if host is None else host
+ """Default Base url
+ """
+ self.server_index = 0 if server_index is None and host is None else server_index
+ self.server_operation_index = server_operation_index or {}
+ """Default server index
+ """
+ self.server_variables = server_variables or {}
+ self.server_operation_variables = server_operation_variables or {}
+ """Default server variables
+ """
+ self.ignore_operation_servers = ignore_operation_servers
+ """Ignore operation servers
+ """
+ self.temp_folder_path = None
+ """Temp file folder for downloading files
+ """
+ # Authentication Settings
+ self.api_key = {}
+ if api_key:
+ self.api_key = api_key
+ """dict to store API key(s)
+ """
+ self.api_key_prefix = {}
+ if api_key_prefix:
+ self.api_key_prefix = api_key_prefix
+ """dict to store API prefix (e.g. Bearer)
+ """
+ self.refresh_api_key_hook = None
+ """function hook to refresh API key if expired
+ """
+ self.username = username
+ """Username for HTTP basic authentication
+ """
+ self.password = password
+ """Password for HTTP basic authentication
+ """
+ self.access_token = access_token
+ """Access token
+ """
+ self.logger = {}
+ """Logging Settings
+ """
+ self.logger["package_logger"] = logging.getLogger("flightctl.imagebuilder")
+ self.logger["urllib3_logger"] = logging.getLogger("urllib3")
+ self.logger_format = '%(asctime)s %(levelname)s %(message)s'
+ """Log format
+ """
+ self.logger_stream_handler = None
+ """Log stream handler
+ """
+ self.logger_file_handler: Optional[FileHandler] = None
+ """Log file handler
+ """
+ self.logger_file = None
+ """Debug file location
+ """
+ if debug is not None:
+ self.debug = debug
+ else:
+ self.__debug = False
+ """Debug switch
+ """
+
+ self.verify_ssl = True
+ """SSL/TLS verification
+ Set this to false to skip verifying SSL certificate when calling API
+ from https server.
+ """
+ self.ssl_ca_cert = ssl_ca_cert
+ """Set this to customize the certificate file to verify the peer.
+ """
+ self.ca_cert_data = ca_cert_data
+ """Set this to verify the peer using PEM (str) or DER (bytes)
+ certificate data.
+ """
+ self.cert_file = cert_file
+ """client certificate file
+ """
+ self.key_file = key_file
+ """client key file
+ """
+ self.assert_hostname = None
+ """Set this to True/False to enable/disable SSL hostname verification.
+ """
+ self.tls_server_name = None
+ """SSL/TLS Server Name Indication (SNI)
+ Set this to the SNI value expected by the server.
+ """
+
+ self.connection_pool_maxsize = multiprocessing.cpu_count() * 5
+ """urllib3 connection pool's maximum number of connections saved
+ per pool. urllib3 uses 1 connection as default value, but this is
+ not the best value when you are making a lot of possibly parallel
+ requests to the same host, which is often the case here.
+ cpu_count * 5 is used as default value to increase performance.
+ """
+
+ self.proxy: Optional[str] = None
+ """Proxy URL
+ """
+ self.proxy_headers = None
+ """Proxy headers
+ """
+ self.safe_chars_for_path_param = ''
+ """Safe chars for path_param
+ """
+ self.retries = retries
+ """Adding retries to override urllib3 default value 3
+ """
+ # Enable client side validation
+ self.client_side_validation = True
+
+ self.socket_options = None
+ """Options to pass down to the underlying urllib3 socket
+ """
+
+ self.datetime_format = "%Y-%m-%dT%H:%M:%S.%f%z"
+ """datetime format
+ """
+
+ self.date_format = "%Y-%m-%d"
+ """date format
+ """
+
+ def __deepcopy__(self, memo: Dict[int, Any]) -> Self:
+ cls = self.__class__
+ result = cls.__new__(cls)
+ memo[id(self)] = result
+ for k, v in self.__dict__.items():
+ if k not in ('logger', 'logger_file_handler'):
+ setattr(result, k, copy.deepcopy(v, memo))
+ # shallow copy of loggers
+ result.logger = copy.copy(self.logger)
+ # use setters to configure loggers
+ result.logger_file = self.logger_file
+ result.debug = self.debug
+ return result
+
+ def __setattr__(self, name: str, value: Any) -> None:
+ object.__setattr__(self, name, value)
+
+ @classmethod
+ def set_default(cls, default: Optional[Self]) -> None:
+ """Set default instance of configuration.
+
+ It stores default configuration, which can be
+ returned by get_default_copy method.
+
+ :param default: object of Configuration
+ """
+ cls._default = default
+
+ @classmethod
+ def get_default_copy(cls) -> Self:
+ """Deprecated. Please use `get_default` instead.
+
+ Deprecated. Please use `get_default` instead.
+
+ :return: The configuration object.
+ """
+ return cls.get_default()
+
+ @classmethod
+ def get_default(cls) -> Self:
+ """Return the default configuration.
+
+ This method returns newly created, based on default constructor,
+ object of Configuration class or returns a copy of default
+ configuration.
+
+ :return: The configuration object.
+ """
+ if cls._default is None:
+ cls._default = cls()
+ return cls._default
+
+ @property
+ def logger_file(self) -> Optional[str]:
+ """The logger file.
+
+ If the logger_file is None, then add stream handler and remove file
+ handler. Otherwise, add file handler and remove stream handler.
+
+ :param value: The logger_file path.
+ :type: str
+ """
+ return self.__logger_file
+
+ @logger_file.setter
+ def logger_file(self, value: Optional[str]) -> None:
+ """The logger file.
+
+ If the logger_file is None, then add stream handler and remove file
+ handler. Otherwise, add file handler and remove stream handler.
+
+ :param value: The logger_file path.
+ :type: str
+ """
+ self.__logger_file = value
+ if self.__logger_file:
+ # If set logging file,
+ # then add file handler and remove stream handler.
+ self.logger_file_handler = logging.FileHandler(self.__logger_file)
+ self.logger_file_handler.setFormatter(self.logger_formatter)
+ for _, logger in self.logger.items():
+ logger.addHandler(self.logger_file_handler)
+
+ @property
+ def debug(self) -> bool:
+ """Debug status
+
+ :param value: The debug status, True or False.
+ :type: bool
+ """
+ return self.__debug
+
+ @debug.setter
+ def debug(self, value: bool) -> None:
+ """Debug status
+
+ :param value: The debug status, True or False.
+ :type: bool
+ """
+ self.__debug = value
+ if self.__debug:
+ # if debug status is True, turn on debug logging
+ for _, logger in self.logger.items():
+ logger.setLevel(logging.DEBUG)
+ # turn on httplib debug
+ httplib.HTTPConnection.debuglevel = 1
+ else:
+ # if debug status is False, turn off debug logging,
+ # setting log level to default `logging.WARNING`
+ for _, logger in self.logger.items():
+ logger.setLevel(logging.WARNING)
+ # turn off httplib debug
+ httplib.HTTPConnection.debuglevel = 0
+
+ @property
+ def logger_format(self) -> str:
+ """The logger format.
+
+ The logger_formatter will be updated when sets logger_format.
+
+ :param value: The format string.
+ :type: str
+ """
+ return self.__logger_format
+
+ @logger_format.setter
+ def logger_format(self, value: str) -> None:
+ """The logger format.
+
+ The logger_formatter will be updated when sets logger_format.
+
+ :param value: The format string.
+ :type: str
+ """
+ self.__logger_format = value
+ self.logger_formatter = logging.Formatter(self.__logger_format)
+
+ def get_api_key_with_prefix(self, identifier: str, alias: Optional[str]=None) -> Optional[str]:
+ """Gets API key (with prefix if set).
+
+ :param identifier: The identifier of apiKey.
+ :param alias: The alternative identifier of apiKey.
+ :return: The token for api key authentication.
+ """
+ if self.refresh_api_key_hook is not None:
+ self.refresh_api_key_hook(self)
+ key = self.api_key.get(identifier, self.api_key.get(alias) if alias is not None else None)
+ if key:
+ prefix = self.api_key_prefix.get(identifier)
+ if prefix:
+ return "%s %s" % (prefix, key)
+ else:
+ return key
+
+ return None
+
+ def get_basic_auth_token(self) -> Optional[str]:
+ """Gets HTTP basic authentication header (string).
+
+ :return: The token for basic HTTP authentication.
+ """
+ username = ""
+ if self.username is not None:
+ username = self.username
+ password = ""
+ if self.password is not None:
+ password = self.password
+ return urllib3.util.make_headers(
+ basic_auth=username + ':' + password
+ ).get('authorization')
+
+ def auth_settings(self)-> AuthSettings:
+ """Gets Auth Settings dict for api client.
+
+ :return: The Auth Settings information dict.
+ """
+ auth: AuthSettings = {}
+ if self.access_token is not None:
+ auth['bearerAuth'] = {
+ 'type': 'bearer',
+ 'in': 'header',
+ 'format': 'JWT',
+ 'key': 'Authorization',
+ 'value': 'Bearer ' + self.access_token
+ }
+ if 'orgId' in self.api_key:
+ auth['orgId'] = {
+ 'type': 'api_key',
+ 'in': 'query',
+ 'key': 'org_id',
+ 'value': self.get_api_key_with_prefix(
+ 'orgId',
+ ),
+ }
+ return auth
+
+ def to_debug_report(self) -> str:
+ """Gets the essential information for debugging.
+
+ :return: The report for debugging.
+ """
+ return "Python SDK Debug Report:\n"\
+ "OS: {env}\n"\
+ "Python Version: {pyversion}\n"\
+ "Version of the API: v1alpha1\n"\
+ "SDK Package Version: 1.1.0".\
+ format(env=sys.platform, pyversion=sys.version)
+
+ def get_host_settings(self) -> List[HostSetting]:
+ """Gets an array of host settings
+
+ :return: An array of host settings
+ """
+ return [
+ {
+ 'url': "",
+ 'description': "No description provided",
+ }
+ ]
+
+ def get_host_from_settings(
+ self,
+ index: Optional[int],
+ variables: Optional[ServerVariablesT]=None,
+ servers: Optional[List[HostSetting]]=None,
+ ) -> str:
+ """Gets host URL based on the index and variables
+ :param index: array index of the host settings
+ :param variables: hash of variable and the corresponding value
+ :param servers: an array of host settings or None
+ :return: URL based on host settings
+ """
+ if index is None:
+ return self._base_path
+
+ variables = {} if variables is None else variables
+ servers = self.get_host_settings() if servers is None else servers
+
+ try:
+ server = servers[index]
+ except IndexError:
+ raise ValueError(
+ "Invalid index {0} when selecting the host settings. "
+ "Must be less than {1}".format(index, len(servers)))
+
+ url = server['url']
+
+ # go through variables and replace placeholders
+ for variable_name, variable in server.get('variables', {}).items():
+ used_value = variables.get(
+ variable_name, variable['default_value'])
+
+ if 'enum_values' in variable \
+ and used_value not in variable['enum_values']:
+ raise ValueError(
+ "The variable `{0}` in the host URL has invalid value "
+ "{1}. Must be {2}.".format(
+ variable_name, variables[variable_name],
+ variable['enum_values']))
+
+ url = url.replace("{" + variable_name + "}", used_value)
+
+ return url
+
+ @property
+ def host(self) -> str:
+ """Return generated host."""
+ return self.get_host_from_settings(self.server_index, variables=self.server_variables)
+
+ @host.setter
+ def host(self, value: str) -> None:
+ """Fix base path."""
+ self._base_path = value
+ self.server_index = None
diff --git a/flightctl/imagebuilder/docs/ApiVersion.md b/flightctl/imagebuilder/docs/ApiVersion.md
new file mode 100644
index 0000000..c193c90
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ApiVersion.md
@@ -0,0 +1,13 @@
+# ApiVersion
+
+APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.
+
+## Enum
+
+* `ApiVersionV1alpha1` (value: `'v1alpha1'`)
+
+* `ApiVersionFlightctlIoV1alpha1` (value: `'flightctl.io/v1alpha1'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/BindingType.md b/flightctl/imagebuilder/docs/BindingType.md
new file mode 100644
index 0000000..c6ac0ef
--- /dev/null
+++ b/flightctl/imagebuilder/docs/BindingType.md
@@ -0,0 +1,13 @@
+# BindingType
+
+The type of binding for the image build.
+
+## Enum
+
+* `BindingTypeEarly` (value: `'early'`)
+
+* `BindingTypeLate` (value: `'late'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ConditionBase.md b/flightctl/imagebuilder/docs/ConditionBase.md
new file mode 100644
index 0000000..3aff47c
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ConditionBase.md
@@ -0,0 +1,34 @@
+# ConditionBase
+
+Base condition structure following Kubernetes API conventions. Use with allOf to add a specific type enum.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**status** | [**ConditionStatus**](ConditionStatus.md) | |
+**observed_generation** | **int** | The .metadata.generation that the condition was set based upon. | [optional]
+**last_transition_time** | **datetime** | The last time the condition transitioned from one status to another. |
+**message** | **str** | Human readable message indicating details about last transition. |
+**reason** | **str** | A (brief) reason for the condition's last transition. |
+
+## Example
+
+```python
+from flightctl.imagebuilder.models.condition_base import ConditionBase
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ConditionBase from a JSON string
+condition_base_instance = ConditionBase.from_json(json)
+# print the JSON string representation of the object
+print(ConditionBase.to_json())
+
+# convert the object into a dict
+condition_base_dict = condition_base_instance.to_dict()
+# create an instance of ConditionBase from a dict
+condition_base_from_dict = ConditionBase.from_dict(condition_base_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ConditionStatus.md b/flightctl/imagebuilder/docs/ConditionStatus.md
new file mode 100644
index 0000000..2141bfb
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ConditionStatus.md
@@ -0,0 +1,15 @@
+# ConditionStatus
+
+Status of the condition, one of True, False, Unknown.
+
+## Enum
+
+* `ConditionStatusTrue` (value: `'True'`)
+
+* `ConditionStatusFalse` (value: `'False'`)
+
+* `ConditionStatusUnknown` (value: `'Unknown'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/EarlyBinding.md b/flightctl/imagebuilder/docs/EarlyBinding.md
new file mode 100644
index 0000000..1e74598
--- /dev/null
+++ b/flightctl/imagebuilder/docs/EarlyBinding.md
@@ -0,0 +1,30 @@
+# EarlyBinding
+
+Early binding configuration - embeds certificate in the image.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | The type of binding. |
+
+## Example
+
+```python
+from flightctl.imagebuilder.models.early_binding import EarlyBinding
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of EarlyBinding from a JSON string
+early_binding_instance = EarlyBinding.from_json(json)
+# print the JSON string representation of the object
+print(EarlyBinding.to_json())
+
+# convert the object into a dict
+early_binding_dict = early_binding_instance.to_dict()
+# create an instance of EarlyBinding from a dict
+early_binding_from_dict = EarlyBinding.from_dict(early_binding_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ExportFormatType.md b/flightctl/imagebuilder/docs/ExportFormatType.md
new file mode 100644
index 0000000..e002fe9
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ExportFormatType.md
@@ -0,0 +1,17 @@
+# ExportFormatType
+
+The type of format to export the image to.
+
+## Enum
+
+* `ExportFormatTypeVMDK` (value: `'vmdk'`)
+
+* `ExportFormatTypeQCOW2` (value: `'qcow2'`)
+
+* `ExportFormatTypeISO` (value: `'iso'`)
+
+* `ExportFormatTypeQCOW2DiskContainer` (value: `'qcow2-disk-container'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ImageBuild.md b/flightctl/imagebuilder/docs/ImageBuild.md
new file mode 100644
index 0000000..32d3a3a
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImageBuild.md
@@ -0,0 +1,35 @@
+# ImageBuild
+
+ImageBuild represents a build request for a container image.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
+**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
+**metadata** | [**ObjectMeta**](ObjectMeta.md) | |
+**spec** | [**ImageBuildSpec**](ImageBuildSpec.md) | |
+**status** | [**ImageBuildStatus**](ImageBuildStatus.md) | | [optional]
+**imageexports** | [**List[ImageExport]**](ImageExport.md) | Array of ImageExport resources that reference this ImageBuild. Only populated when withExports query parameter is true. | [optional]
+
+## Example
+
+```python
+from flightctl.imagebuilder.models.image_build import ImageBuild
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ImageBuild from a JSON string
+image_build_instance = ImageBuild.from_json(json)
+# print the JSON string representation of the object
+print(ImageBuild.to_json())
+
+# convert the object into a dict
+image_build_dict = image_build_instance.to_dict()
+# create an instance of ImageBuild from a dict
+image_build_from_dict = ImageBuild.from_dict(image_build_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ImageBuildBinding.md b/flightctl/imagebuilder/docs/ImageBuildBinding.md
new file mode 100644
index 0000000..008dde7
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImageBuildBinding.md
@@ -0,0 +1,30 @@
+# ImageBuildBinding
+
+ImageBuildBinding specifies binding configuration for the build.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | The type of binding. |
+
+## Example
+
+```python
+from flightctl.imagebuilder.models.image_build_binding import ImageBuildBinding
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ImageBuildBinding from a JSON string
+image_build_binding_instance = ImageBuildBinding.from_json(json)
+# print the JSON string representation of the object
+print(ImageBuildBinding.to_json())
+
+# convert the object into a dict
+image_build_binding_dict = image_build_binding_instance.to_dict()
+# create an instance of ImageBuildBinding from a dict
+image_build_binding_from_dict = ImageBuildBinding.from_dict(image_build_binding_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ImageBuildCondition.md b/flightctl/imagebuilder/docs/ImageBuildCondition.md
new file mode 100644
index 0000000..ec45f90
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImageBuildCondition.md
@@ -0,0 +1,35 @@
+# ImageBuildCondition
+
+Condition for ImageBuild resources.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**status** | [**ConditionStatus**](ConditionStatus.md) | |
+**observed_generation** | **int** | The .metadata.generation that the condition was set based upon. | [optional]
+**last_transition_time** | **datetime** | The last time the condition transitioned from one status to another. |
+**message** | **str** | Human readable message indicating details about last transition. |
+**reason** | **str** | A (brief) reason for the condition's last transition. |
+**type** | [**ImageBuildConditionType**](ImageBuildConditionType.md) | |
+
+## Example
+
+```python
+from flightctl.imagebuilder.models.image_build_condition import ImageBuildCondition
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ImageBuildCondition from a JSON string
+image_build_condition_instance = ImageBuildCondition.from_json(json)
+# print the JSON string representation of the object
+print(ImageBuildCondition.to_json())
+
+# convert the object into a dict
+image_build_condition_dict = image_build_condition_instance.to_dict()
+# create an instance of ImageBuildCondition from a dict
+image_build_condition_from_dict = ImageBuildCondition.from_dict(image_build_condition_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ImageBuildConditionReason.md b/flightctl/imagebuilder/docs/ImageBuildConditionReason.md
new file mode 100644
index 0000000..b9fd95c
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImageBuildConditionReason.md
@@ -0,0 +1,23 @@
+# ImageBuildConditionReason
+
+Reason for the ImageBuild Ready condition.
+
+## Enum
+
+* `ImageBuildConditionReasonPending` (value: `'Pending'`)
+
+* `ImageBuildConditionReasonBuilding` (value: `'Building'`)
+
+* `ImageBuildConditionReasonPushing` (value: `'Pushing'`)
+
+* `ImageBuildConditionReasonCompleted` (value: `'Completed'`)
+
+* `ImageBuildConditionReasonFailed` (value: `'Failed'`)
+
+* `ImageBuildConditionReasonCanceling` (value: `'Canceling'`)
+
+* `ImageBuildConditionReasonCanceled` (value: `'Canceled'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ImageBuildConditionType.md b/flightctl/imagebuilder/docs/ImageBuildConditionType.md
new file mode 100644
index 0000000..7b12751
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImageBuildConditionType.md
@@ -0,0 +1,11 @@
+# ImageBuildConditionType
+
+Type of ImageBuild condition.
+
+## Enum
+
+* `ImageBuildConditionTypeReady` (value: `'Ready'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ImageBuildDestination.md b/flightctl/imagebuilder/docs/ImageBuildDestination.md
new file mode 100644
index 0000000..55f4360
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImageBuildDestination.md
@@ -0,0 +1,32 @@
+# ImageBuildDestination
+
+ImageBuildDestination specifies the destination for the built image.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**repository** | **str** | The name of the Repository resource of type OCI to push the built image to. |
+**image_name** | **str** | The name of the output image. |
+**image_tag** | **str** | The tag of the output image. |
+
+## Example
+
+```python
+from flightctl.imagebuilder.models.image_build_destination import ImageBuildDestination
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ImageBuildDestination from a JSON string
+image_build_destination_instance = ImageBuildDestination.from_json(json)
+# print the JSON string representation of the object
+print(ImageBuildDestination.to_json())
+
+# convert the object into a dict
+image_build_destination_dict = image_build_destination_instance.to_dict()
+# create an instance of ImageBuildDestination from a dict
+image_build_destination_from_dict = ImageBuildDestination.from_dict(image_build_destination_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ImageBuildList.md b/flightctl/imagebuilder/docs/ImageBuildList.md
new file mode 100644
index 0000000..9cfe3c8
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImageBuildList.md
@@ -0,0 +1,33 @@
+# ImageBuildList
+
+ImageBuildList is a list of ImageBuild resources.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
+**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
+**metadata** | [**ListMeta**](ListMeta.md) | |
+**items** | [**List[ImageBuild]**](ImageBuild.md) | List of ImageBuild resources. |
+
+## Example
+
+```python
+from flightctl.imagebuilder.models.image_build_list import ImageBuildList
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ImageBuildList from a JSON string
+image_build_list_instance = ImageBuildList.from_json(json)
+# print the JSON string representation of the object
+print(ImageBuildList.to_json())
+
+# convert the object into a dict
+image_build_list_dict = image_build_list_instance.to_dict()
+# create an instance of ImageBuildList from a dict
+image_build_list_from_dict = ImageBuildList.from_dict(image_build_list_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ImageBuildRefSource.md b/flightctl/imagebuilder/docs/ImageBuildRefSource.md
new file mode 100644
index 0000000..3f96786
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImageBuildRefSource.md
@@ -0,0 +1,31 @@
+# ImageBuildRefSource
+
+ImageBuildRefSource specifies a source image from an ImageBuild resource.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | The type of source. |
+**image_build_ref** | **str** | The name of the ImageBuild resource to use as source. |
+
+## Example
+
+```python
+from flightctl.imagebuilder.models.image_build_ref_source import ImageBuildRefSource
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ImageBuildRefSource from a JSON string
+image_build_ref_source_instance = ImageBuildRefSource.from_json(json)
+# print the JSON string representation of the object
+print(ImageBuildRefSource.to_json())
+
+# convert the object into a dict
+image_build_ref_source_dict = image_build_ref_source_instance.to_dict()
+# create an instance of ImageBuildRefSource from a dict
+image_build_ref_source_from_dict = ImageBuildRefSource.from_dict(image_build_ref_source_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ImageBuildSource.md b/flightctl/imagebuilder/docs/ImageBuildSource.md
new file mode 100644
index 0000000..1636fd5
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImageBuildSource.md
@@ -0,0 +1,32 @@
+# ImageBuildSource
+
+ImageBuildSource specifies the source image for the build.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**repository** | **str** | The name of the Repository resource of type OCI containing the source image. |
+**image_name** | **str** | The name of the source image. |
+**image_tag** | **str** | The tag of the source image. |
+
+## Example
+
+```python
+from flightctl.imagebuilder.models.image_build_source import ImageBuildSource
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ImageBuildSource from a JSON string
+image_build_source_instance = ImageBuildSource.from_json(json)
+# print the JSON string representation of the object
+print(ImageBuildSource.to_json())
+
+# convert the object into a dict
+image_build_source_dict = image_build_source_instance.to_dict()
+# create an instance of ImageBuildSource from a dict
+image_build_source_from_dict = ImageBuildSource.from_dict(image_build_source_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ImageBuildSpec.md b/flightctl/imagebuilder/docs/ImageBuildSpec.md
new file mode 100644
index 0000000..39dd5ba
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImageBuildSpec.md
@@ -0,0 +1,33 @@
+# ImageBuildSpec
+
+ImageBuildSpec describes the specification for an image build.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**source** | [**ImageBuildSource**](ImageBuildSource.md) | |
+**destination** | [**ImageBuildDestination**](ImageBuildDestination.md) | |
+**binding** | [**ImageBuildBinding**](ImageBuildBinding.md) | |
+**user_configuration** | [**ImageBuildUserConfiguration**](ImageBuildUserConfiguration.md) | | [optional]
+
+## Example
+
+```python
+from flightctl.imagebuilder.models.image_build_spec import ImageBuildSpec
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ImageBuildSpec from a JSON string
+image_build_spec_instance = ImageBuildSpec.from_json(json)
+# print the JSON string representation of the object
+print(ImageBuildSpec.to_json())
+
+# convert the object into a dict
+image_build_spec_dict = image_build_spec_instance.to_dict()
+# create an instance of ImageBuildSpec from a dict
+image_build_spec_from_dict = ImageBuildSpec.from_dict(image_build_spec_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ImageBuildStatus.md b/flightctl/imagebuilder/docs/ImageBuildStatus.md
new file mode 100644
index 0000000..f647610
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImageBuildStatus.md
@@ -0,0 +1,34 @@
+# ImageBuildStatus
+
+ImageBuildStatus represents the current status of an ImageBuild.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**conditions** | [**List[ImageBuildCondition]**](ImageBuildCondition.md) | Current conditions of the ImageBuild. | [optional]
+**image_reference** | **str** | The full image reference of the built image (e.g., quay.io/org/imagename:tag). | [optional]
+**architecture** | **str** | The architecture of the built image. | [optional]
+**manifest_digest** | **str** | The digest of the built image manifest. | [optional]
+**last_seen** | **datetime** | The last time the build was seen (heartbeat). | [optional]
+
+## Example
+
+```python
+from flightctl.imagebuilder.models.image_build_status import ImageBuildStatus
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ImageBuildStatus from a JSON string
+image_build_status_instance = ImageBuildStatus.from_json(json)
+# print the JSON string representation of the object
+print(ImageBuildStatus.to_json())
+
+# convert the object into a dict
+image_build_status_dict = image_build_status_instance.to_dict()
+# create an instance of ImageBuildStatus from a dict
+image_build_status_from_dict = ImageBuildStatus.from_dict(image_build_status_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ImageBuildUserConfiguration.md b/flightctl/imagebuilder/docs/ImageBuildUserConfiguration.md
new file mode 100644
index 0000000..c35f142
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImageBuildUserConfiguration.md
@@ -0,0 +1,31 @@
+# ImageBuildUserConfiguration
+
+ImageBuildUserConfiguration specifies user configuration for the build.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**username** | **str** | The username for the user configuration. |
+**publickey** | **str** | The public key for the user configuration. |
+
+## Example
+
+```python
+from flightctl.imagebuilder.models.image_build_user_configuration import ImageBuildUserConfiguration
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ImageBuildUserConfiguration from a JSON string
+image_build_user_configuration_instance = ImageBuildUserConfiguration.from_json(json)
+# print the JSON string representation of the object
+print(ImageBuildUserConfiguration.to_json())
+
+# convert the object into a dict
+image_build_user_configuration_dict = image_build_user_configuration_instance.to_dict()
+# create an instance of ImageBuildUserConfiguration from a dict
+image_build_user_configuration_from_dict = ImageBuildUserConfiguration.from_dict(image_build_user_configuration_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ImageExport.md b/flightctl/imagebuilder/docs/ImageExport.md
new file mode 100644
index 0000000..3e22a30
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImageExport.md
@@ -0,0 +1,34 @@
+# ImageExport
+
+ImageExport represents an export request to convert and push images to different formats.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
+**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
+**metadata** | [**ObjectMeta**](ObjectMeta.md) | |
+**spec** | [**ImageExportSpec**](ImageExportSpec.md) | |
+**status** | [**ImageExportStatus**](ImageExportStatus.md) | | [optional]
+
+## Example
+
+```python
+from flightctl.imagebuilder.models.image_export import ImageExport
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ImageExport from a JSON string
+image_export_instance = ImageExport.from_json(json)
+# print the JSON string representation of the object
+print(ImageExport.to_json())
+
+# convert the object into a dict
+image_export_dict = image_export_instance.to_dict()
+# create an instance of ImageExport from a dict
+image_export_from_dict = ImageExport.from_dict(image_export_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ImageExportCondition.md b/flightctl/imagebuilder/docs/ImageExportCondition.md
new file mode 100644
index 0000000..6401fd1
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImageExportCondition.md
@@ -0,0 +1,35 @@
+# ImageExportCondition
+
+Condition for ImageExport resources.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**status** | [**ConditionStatus**](ConditionStatus.md) | |
+**observed_generation** | **int** | The .metadata.generation that the condition was set based upon. | [optional]
+**last_transition_time** | **datetime** | The last time the condition transitioned from one status to another. |
+**message** | **str** | Human readable message indicating details about last transition. |
+**reason** | **str** | A (brief) reason for the condition's last transition. |
+**type** | [**ImageExportConditionType**](ImageExportConditionType.md) | |
+
+## Example
+
+```python
+from flightctl.imagebuilder.models.image_export_condition import ImageExportCondition
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ImageExportCondition from a JSON string
+image_export_condition_instance = ImageExportCondition.from_json(json)
+# print the JSON string representation of the object
+print(ImageExportCondition.to_json())
+
+# convert the object into a dict
+image_export_condition_dict = image_export_condition_instance.to_dict()
+# create an instance of ImageExportCondition from a dict
+image_export_condition_from_dict = ImageExportCondition.from_dict(image_export_condition_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ImageExportConditionReason.md b/flightctl/imagebuilder/docs/ImageExportConditionReason.md
new file mode 100644
index 0000000..d2406a9
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImageExportConditionReason.md
@@ -0,0 +1,23 @@
+# ImageExportConditionReason
+
+Reason for the ImageExport Ready condition.
+
+## Enum
+
+* `ImageExportConditionReasonPending` (value: `'Pending'`)
+
+* `ImageExportConditionReasonConverting` (value: `'Converting'`)
+
+* `ImageExportConditionReasonPushing` (value: `'Pushing'`)
+
+* `ImageExportConditionReasonCompleted` (value: `'Completed'`)
+
+* `ImageExportConditionReasonFailed` (value: `'Failed'`)
+
+* `ImageExportConditionReasonCanceling` (value: `'Canceling'`)
+
+* `ImageExportConditionReasonCanceled` (value: `'Canceled'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ImageExportConditionType.md b/flightctl/imagebuilder/docs/ImageExportConditionType.md
new file mode 100644
index 0000000..18001d8
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImageExportConditionType.md
@@ -0,0 +1,11 @@
+# ImageExportConditionType
+
+Type of ImageExport condition.
+
+## Enum
+
+* `ImageExportConditionTypeReady` (value: `'Ready'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ImageExportFormatPhase.md b/flightctl/imagebuilder/docs/ImageExportFormatPhase.md
new file mode 100644
index 0000000..206d1a1
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImageExportFormatPhase.md
@@ -0,0 +1,19 @@
+# ImageExportFormatPhase
+
+The phase of a single format conversion.
+
+## Enum
+
+* `ImageExportFormatPhaseQueued` (value: `'queued'`)
+
+* `ImageExportFormatPhaseConverting` (value: `'converting'`)
+
+* `ImageExportFormatPhasePushing` (value: `'pushing'`)
+
+* `ImageExportFormatPhaseComplete` (value: `'complete'`)
+
+* `ImageExportFormatPhaseFailed` (value: `'failed'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ImageExportList.md b/flightctl/imagebuilder/docs/ImageExportList.md
new file mode 100644
index 0000000..65945b6
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImageExportList.md
@@ -0,0 +1,33 @@
+# ImageExportList
+
+ImageExportList is a list of ImageExport resources.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
+**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
+**metadata** | [**ListMeta**](ListMeta.md) | |
+**items** | [**List[ImageExport]**](ImageExport.md) | List of ImageExport resources. |
+
+## Example
+
+```python
+from flightctl.imagebuilder.models.image_export_list import ImageExportList
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ImageExportList from a JSON string
+image_export_list_instance = ImageExportList.from_json(json)
+# print the JSON string representation of the object
+print(ImageExportList.to_json())
+
+# convert the object into a dict
+image_export_list_dict = image_export_list_instance.to_dict()
+# create an instance of ImageExportList from a dict
+image_export_list_from_dict = ImageExportList.from_dict(image_export_list_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ImageExportSourceType.md b/flightctl/imagebuilder/docs/ImageExportSourceType.md
new file mode 100644
index 0000000..199f65a
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImageExportSourceType.md
@@ -0,0 +1,11 @@
+# ImageExportSourceType
+
+The type of source for the image export.
+
+## Enum
+
+* `ImageExportSourceTypeImageBuild` (value: `'imageBuild'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ImageExportSpec.md b/flightctl/imagebuilder/docs/ImageExportSpec.md
new file mode 100644
index 0000000..8b013c7
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImageExportSpec.md
@@ -0,0 +1,31 @@
+# ImageExportSpec
+
+ImageExportSpec describes the specification for an image export.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**source** | [**ImageBuildRefSource**](ImageBuildRefSource.md) | |
+**format** | [**ExportFormatType**](ExportFormatType.md) | |
+
+## Example
+
+```python
+from flightctl.imagebuilder.models.image_export_spec import ImageExportSpec
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ImageExportSpec from a JSON string
+image_export_spec_instance = ImageExportSpec.from_json(json)
+# print the JSON string representation of the object
+print(ImageExportSpec.to_json())
+
+# convert the object into a dict
+image_export_spec_dict = image_export_spec_instance.to_dict()
+# create an instance of ImageExportSpec from a dict
+image_export_spec_from_dict = ImageExportSpec.from_dict(image_export_spec_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ImageExportStatus.md b/flightctl/imagebuilder/docs/ImageExportStatus.md
new file mode 100644
index 0000000..7b71cde
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImageExportStatus.md
@@ -0,0 +1,32 @@
+# ImageExportStatus
+
+ImageExportStatus represents the current status of an ImageExport.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**conditions** | [**List[ImageExportCondition]**](ImageExportCondition.md) | Current conditions of the ImageExport. | [optional]
+**manifest_digest** | **str** | The digest of the exported image manifest for this format. | [optional]
+**last_seen** | **datetime** | The last time the export was seen (heartbeat). | [optional]
+
+## Example
+
+```python
+from flightctl.imagebuilder.models.image_export_status import ImageExportStatus
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ImageExportStatus from a JSON string
+image_export_status_instance = ImageExportStatus.from_json(json)
+# print the JSON string representation of the object
+print(ImageExportStatus.to_json())
+
+# convert the object into a dict
+image_export_status_dict = image_export_status_instance.to_dict()
+# create an instance of ImageExportStatus from a dict
+image_export_status_from_dict = ImageExportStatus.from_dict(image_export_status_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ImagebuildApi.md b/flightctl/imagebuilder/docs/ImagebuildApi.md
new file mode 100644
index 0000000..96f0645
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImagebuildApi.md
@@ -0,0 +1,448 @@
+# flightctl.imagebuilder.ImagebuildApi
+
+All URIs are relative to *http://localhost*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**cancel_image_build**](ImagebuildApi.md#cancel_image_build) | **POST** /api/v1/imagebuilds/{name}/cancel |
+[**create_image_build**](ImagebuildApi.md#create_image_build) | **POST** /api/v1/imagebuilds |
+[**delete_image_build**](ImagebuildApi.md#delete_image_build) | **DELETE** /api/v1/imagebuilds/{name} |
+[**get_image_build**](ImagebuildApi.md#get_image_build) | **GET** /api/v1/imagebuilds/{name} |
+[**get_image_build_log**](ImagebuildApi.md#get_image_build_log) | **GET** /api/v1/imagebuilds/{name}/log |
+[**list_image_builds**](ImagebuildApi.md#list_image_builds) | **GET** /api/v1/imagebuilds |
+
+
+# **cancel_image_build**
+> ImageBuild cancel_image_build(name)
+
+Cancel a running ImageBuild. Only builds in Pending, Building, or Pushing state can be canceled.
+
+### Example
+
+
+```python
+import flightctl.imagebuilder
+from flightctl.imagebuilder.models.image_build import ImageBuild
+from flightctl.imagebuilder.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.imagebuilder.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.imagebuilder.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.imagebuilder.ImagebuildApi(api_client)
+ name = 'name_example' # str | The name of the ImageBuild resource to cancel.
+
+ try:
+ api_response = api_instance.cancel_image_build(name)
+ print("The response of ImagebuildApi->cancel_image_build:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ImagebuildApi->cancel_image_build: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **name** | **str**| The name of the ImageBuild resource to cancel. |
+
+### Return type
+
+[**ImageBuild**](ImageBuild.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**400** | Bad Request | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**409** | Conflict - Build not in cancelable state | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **create_image_build**
+> ImageBuild create_image_build(image_build)
+
+Create an ImageBuild resource.
+
+### Example
+
+
+```python
+import flightctl.imagebuilder
+from flightctl.imagebuilder.models.image_build import ImageBuild
+from flightctl.imagebuilder.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.imagebuilder.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.imagebuilder.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.imagebuilder.ImagebuildApi(api_client)
+ image_build = flightctl.imagebuilder.ImageBuild() # ImageBuild |
+
+ try:
+ api_response = api_instance.create_image_build(image_build)
+ print("The response of ImagebuildApi->create_image_build:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ImagebuildApi->create_image_build: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **image_build** | [**ImageBuild**](ImageBuild.md)| |
+
+### Return type
+
+[**ImageBuild**](ImageBuild.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | Created | - |
+**400** | Bad Request | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**409** | Conflict | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_image_build**
+> ImageBuild delete_image_build(name)
+
+Delete an ImageBuild resource.
+
+### Example
+
+
+```python
+import flightctl.imagebuilder
+from flightctl.imagebuilder.models.image_build import ImageBuild
+from flightctl.imagebuilder.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.imagebuilder.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.imagebuilder.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.imagebuilder.ImagebuildApi(api_client)
+ name = 'name_example' # str | The name of the ImageBuild resource.
+
+ try:
+ api_response = api_instance.delete_image_build(name)
+ print("The response of ImagebuildApi->delete_image_build:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ImagebuildApi->delete_image_build: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **name** | **str**| The name of the ImageBuild resource. |
+
+### Return type
+
+[**ImageBuild**](ImageBuild.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_image_build**
+> ImageBuild get_image_build(name, with_exports=with_exports)
+
+Get an ImageBuild resource.
+
+### Example
+
+
+```python
+import flightctl.imagebuilder
+from flightctl.imagebuilder.models.image_build import ImageBuild
+from flightctl.imagebuilder.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.imagebuilder.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.imagebuilder.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.imagebuilder.ImagebuildApi(api_client)
+ name = 'name_example' # str | The name of the ImageBuild resource.
+ with_exports = False # bool | If true, includes related ImageExport resources in the response. (optional) (default to False)
+
+ try:
+ api_response = api_instance.get_image_build(name, with_exports=with_exports)
+ print("The response of ImagebuildApi->get_image_build:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ImagebuildApi->get_image_build: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **name** | **str**| The name of the ImageBuild resource. |
+ **with_exports** | **bool**| If true, includes related ImageExport resources in the response. | [optional] [default to False]
+
+### Return type
+
+[**ImageBuild**](ImageBuild.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_image_build_log**
+> str get_image_build_log(name, follow=follow)
+
+Get logs for an ImageBuild resource. For active builds, streams logs live. For completed builds, returns last 500 lines.
+
+### Example
+
+
+```python
+import flightctl.imagebuilder
+from flightctl.imagebuilder.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.imagebuilder.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.imagebuilder.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.imagebuilder.ImagebuildApi(api_client)
+ name = 'name_example' # str | The name of the ImageBuild resource.
+ follow = False # bool | If true, stream logs continuously (like kubectl logs -f). For active builds, keeps connection open. For completed builds, returns all logs and closes. (optional) (default to False)
+
+ try:
+ api_response = api_instance.get_image_build_log(name, follow=follow)
+ print("The response of ImagebuildApi->get_image_build_log:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ImagebuildApi->get_image_build_log: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **name** | **str**| The name of the ImageBuild resource. |
+ **follow** | **bool**| If true, stream logs continuously (like kubectl logs -f). For active builds, keeps connection open. For completed builds, returns all logs and closes. | [optional] [default to False]
+
+### Return type
+
+**str**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: text/plain, text/event-stream, application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **list_image_builds**
+> ImageBuildList list_image_builds(label_selector=label_selector, field_selector=field_selector, limit=limit, var_continue=var_continue, with_exports=with_exports)
+
+List ImageBuild resources.
+
+### Example
+
+
+```python
+import flightctl.imagebuilder
+from flightctl.imagebuilder.models.image_build_list import ImageBuildList
+from flightctl.imagebuilder.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.imagebuilder.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.imagebuilder.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.imagebuilder.ImagebuildApi(api_client)
+ label_selector = 'label_selector_example' # str | A selector to restrict the list of returned objects by their labels. (optional)
+ field_selector = 'field_selector_example' # str | A selector to restrict the list of returned objects by their fields. (optional)
+ limit = 56 # int | The maximum number of results returned in the list response. (optional)
+ var_continue = 'var_continue_example' # str | An optional parameter to query more results from the server. (optional)
+ with_exports = False # bool | If true, includes related ImageExport resources in each ImageBuild in the response. (optional) (default to False)
+
+ try:
+ api_response = api_instance.list_image_builds(label_selector=label_selector, field_selector=field_selector, limit=limit, var_continue=var_continue, with_exports=with_exports)
+ print("The response of ImagebuildApi->list_image_builds:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ImagebuildApi->list_image_builds: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **label_selector** | **str**| A selector to restrict the list of returned objects by their labels. | [optional]
+ **field_selector** | **str**| A selector to restrict the list of returned objects by their fields. | [optional]
+ **limit** | **int**| The maximum number of results returned in the list response. | [optional]
+ **var_continue** | **str**| An optional parameter to query more results from the server. | [optional]
+ **with_exports** | **bool**| If true, includes related ImageExport resources in each ImageBuild in the response. | [optional] [default to False]
+
+### Return type
+
+[**ImageBuildList**](ImageBuildList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**400** | Bad Request | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/flightctl/imagebuilder/docs/ImageexportApi.md b/flightctl/imagebuilder/docs/ImageexportApi.md
new file mode 100644
index 0000000..07a4108
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ImageexportApi.md
@@ -0,0 +1,518 @@
+# flightctl.imagebuilder.ImageexportApi
+
+All URIs are relative to *http://localhost*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**cancel_image_export**](ImageexportApi.md#cancel_image_export) | **POST** /api/v1/imageexports/{name}/cancel |
+[**create_image_export**](ImageexportApi.md#create_image_export) | **POST** /api/v1/imageexports |
+[**delete_image_export**](ImageexportApi.md#delete_image_export) | **DELETE** /api/v1/imageexports/{name} |
+[**download_image_export**](ImageexportApi.md#download_image_export) | **GET** /api/v1/imageexports/{name}/download |
+[**get_image_export**](ImageexportApi.md#get_image_export) | **GET** /api/v1/imageexports/{name} |
+[**get_image_export_log**](ImageexportApi.md#get_image_export_log) | **GET** /api/v1/imageexports/{name}/log |
+[**list_image_exports**](ImageexportApi.md#list_image_exports) | **GET** /api/v1/imageexports |
+
+
+# **cancel_image_export**
+> ImageExport cancel_image_export(name)
+
+Cancel a running ImageExport. Only exports in Pending, Converting, or Pushing state can be canceled.
+
+### Example
+
+
+```python
+import flightctl.imagebuilder
+from flightctl.imagebuilder.models.image_export import ImageExport
+from flightctl.imagebuilder.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.imagebuilder.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.imagebuilder.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.imagebuilder.ImageexportApi(api_client)
+ name = 'name_example' # str | The name of the ImageExport resource to cancel.
+
+ try:
+ api_response = api_instance.cancel_image_export(name)
+ print("The response of ImageexportApi->cancel_image_export:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ImageexportApi->cancel_image_export: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **name** | **str**| The name of the ImageExport resource to cancel. |
+
+### Return type
+
+[**ImageExport**](ImageExport.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**400** | Bad Request | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**409** | Conflict - Export not in cancelable state | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **create_image_export**
+> ImageExport create_image_export(image_export)
+
+Create an ImageExport resource.
+
+### Example
+
+
+```python
+import flightctl.imagebuilder
+from flightctl.imagebuilder.models.image_export import ImageExport
+from flightctl.imagebuilder.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.imagebuilder.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.imagebuilder.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.imagebuilder.ImageexportApi(api_client)
+ image_export = flightctl.imagebuilder.ImageExport() # ImageExport |
+
+ try:
+ api_response = api_instance.create_image_export(image_export)
+ print("The response of ImageexportApi->create_image_export:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ImageexportApi->create_image_export: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **image_export** | [**ImageExport**](ImageExport.md)| |
+
+### Return type
+
+[**ImageExport**](ImageExport.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | Created | - |
+**400** | Bad Request | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**409** | Conflict | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_image_export**
+> ImageExport delete_image_export(name)
+
+Delete an ImageExport resource.
+
+### Example
+
+
+```python
+import flightctl.imagebuilder
+from flightctl.imagebuilder.models.image_export import ImageExport
+from flightctl.imagebuilder.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.imagebuilder.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.imagebuilder.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.imagebuilder.ImageexportApi(api_client)
+ name = 'name_example' # str | The name of the ImageExport resource.
+
+ try:
+ api_response = api_instance.delete_image_export(name)
+ print("The response of ImageexportApi->delete_image_export:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ImageexportApi->delete_image_export: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **name** | **str**| The name of the ImageExport resource. |
+
+### Return type
+
+[**ImageExport**](ImageExport.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **download_image_export**
+> bytearray download_image_export(name)
+
+Download an ImageExport artifact from the registry.
+
+### Example
+
+
+```python
+import flightctl.imagebuilder
+from flightctl.imagebuilder.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.imagebuilder.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.imagebuilder.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.imagebuilder.ImageexportApi(api_client)
+ name = 'name_example' # str | The name of the ImageExport resource.
+
+ try:
+ api_response = api_instance.download_image_export(name)
+ print("The response of ImageexportApi->download_image_export:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ImageexportApi->download_image_export: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **name** | **str**| The name of the ImageExport resource. |
+
+### Return type
+
+**bytearray**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/octet-stream, application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK - Artifact blob content | - |
+**302** | Found - Redirect to registry blob URL | * Location -
|
+**307** | Temporary Redirect - Redirect to registry blob URL | * Location -
|
+**400** | Bad Request | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**429** | Too Many Requests | - |
+**500** | Internal Server Error | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_image_export**
+> ImageExport get_image_export(name)
+
+Get an ImageExport resource.
+
+### Example
+
+
+```python
+import flightctl.imagebuilder
+from flightctl.imagebuilder.models.image_export import ImageExport
+from flightctl.imagebuilder.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.imagebuilder.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.imagebuilder.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.imagebuilder.ImageexportApi(api_client)
+ name = 'name_example' # str | The name of the ImageExport resource.
+
+ try:
+ api_response = api_instance.get_image_export(name)
+ print("The response of ImageexportApi->get_image_export:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ImageexportApi->get_image_export: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **name** | **str**| The name of the ImageExport resource. |
+
+### Return type
+
+[**ImageExport**](ImageExport.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_image_export_log**
+> str get_image_export_log(name, follow=follow)
+
+Get logs for an ImageExport resource. For active exports, streams logs live. For completed exports, returns last 500 lines.
+
+### Example
+
+
+```python
+import flightctl.imagebuilder
+from flightctl.imagebuilder.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.imagebuilder.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.imagebuilder.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.imagebuilder.ImageexportApi(api_client)
+ name = 'name_example' # str | The name of the ImageExport resource.
+ follow = False # bool | If true, stream logs continuously (like kubectl logs -f). For active exports, keeps connection open. For completed exports, returns all logs and closes. (optional) (default to False)
+
+ try:
+ api_response = api_instance.get_image_export_log(name, follow=follow)
+ print("The response of ImageexportApi->get_image_export_log:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ImageexportApi->get_image_export_log: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **name** | **str**| The name of the ImageExport resource. |
+ **follow** | **bool**| If true, stream logs continuously (like kubectl logs -f). For active exports, keeps connection open. For completed exports, returns all logs and closes. | [optional] [default to False]
+
+### Return type
+
+**str**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: text/plain, text/event-stream, application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **list_image_exports**
+> ImageExportList list_image_exports(label_selector=label_selector, field_selector=field_selector, limit=limit, var_continue=var_continue)
+
+List ImageExport resources.
+
+### Example
+
+
+```python
+import flightctl.imagebuilder
+from flightctl.imagebuilder.models.image_export_list import ImageExportList
+from flightctl.imagebuilder.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.imagebuilder.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.imagebuilder.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.imagebuilder.ImageexportApi(api_client)
+ label_selector = 'label_selector_example' # str | A selector to restrict the list of returned objects by their labels. (optional)
+ field_selector = 'field_selector_example' # str | A selector to restrict the list of returned objects by their fields. (optional)
+ limit = 56 # int | The maximum number of results returned in the list response. (optional)
+ var_continue = 'var_continue_example' # str | An optional parameter to query more results from the server. (optional)
+
+ try:
+ api_response = api_instance.list_image_exports(label_selector=label_selector, field_selector=field_selector, limit=limit, var_continue=var_continue)
+ print("The response of ImageexportApi->list_image_exports:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ImageexportApi->list_image_exports: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **label_selector** | **str**| A selector to restrict the list of returned objects by their labels. | [optional]
+ **field_selector** | **str**| A selector to restrict the list of returned objects by their fields. | [optional]
+ **limit** | **int**| The maximum number of results returned in the list response. | [optional]
+ **var_continue** | **str**| An optional parameter to query more results from the server. | [optional]
+
+### Return type
+
+[**ImageExportList**](ImageExportList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**400** | Bad Request | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/flightctl/imagebuilder/docs/LateBinding.md b/flightctl/imagebuilder/docs/LateBinding.md
new file mode 100644
index 0000000..1796eab
--- /dev/null
+++ b/flightctl/imagebuilder/docs/LateBinding.md
@@ -0,0 +1,30 @@
+# LateBinding
+
+Late binding configuration - device binds at first boot.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | The type of binding. |
+
+## Example
+
+```python
+from flightctl.imagebuilder.models.late_binding import LateBinding
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of LateBinding from a JSON string
+late_binding_instance = LateBinding.from_json(json)
+# print the JSON string representation of the object
+print(LateBinding.to_json())
+
+# convert the object into a dict
+late_binding_dict = late_binding_instance.to_dict()
+# create an instance of LateBinding from a dict
+late_binding_from_dict = LateBinding.from_dict(late_binding_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ListMeta.md b/flightctl/imagebuilder/docs/ListMeta.md
new file mode 100644
index 0000000..c1573c9
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ListMeta.md
@@ -0,0 +1,31 @@
+# ListMeta
+
+ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_continue** | **str** | May be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message. | [optional]
+**remaining_item_count** | **int** | The number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact. | [optional]
+
+## Example
+
+```python
+from flightctl.imagebuilder.models.list_meta import ListMeta
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ListMeta from a JSON string
+list_meta_instance = ListMeta.from_json(json)
+# print the JSON string representation of the object
+print(ListMeta.to_json())
+
+# convert the object into a dict
+list_meta_dict = list_meta_instance.to_dict()
+# create an instance of ListMeta from a dict
+list_meta_from_dict = ListMeta.from_dict(list_meta_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ObjectMeta.md b/flightctl/imagebuilder/docs/ObjectMeta.md
new file mode 100644
index 0000000..4fc2096
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ObjectMeta.md
@@ -0,0 +1,37 @@
+# ObjectMeta
+
+ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**creation_timestamp** | **datetime** | The time the object was created. | [optional]
+**deletion_timestamp** | **datetime** | The time the object will be deleted. | [optional]
+**name** | **str** | The name of the object. | [optional]
+**labels** | **Dict[str, str]** | Map of string keys and values that can be used to organize and categorize (scope and select) objects. | [optional]
+**generation** | **int** | A sequence number representing a specific generation of the desired state. Populated by the system. Read-only. | [optional]
+**owner** | **str** | A resource that owns this resource, in \"kind/name\" format. | [optional]
+**annotations** | **Dict[str, str]** | Properties set by the service. | [optional]
+**resource_version** | **str** | An opaque string that identifies the server's internal version of an object. | [optional]
+
+## Example
+
+```python
+from flightctl.imagebuilder.models.object_meta import ObjectMeta
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ObjectMeta from a JSON string
+object_meta_instance = ObjectMeta.from_json(json)
+# print the JSON string representation of the object
+print(ObjectMeta.to_json())
+
+# convert the object into a dict
+object_meta_dict = object_meta_instance.to_dict()
+# create an instance of ObjectMeta from a dict
+object_meta_from_dict = ObjectMeta.from_dict(object_meta_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/ResourceKind.md b/flightctl/imagebuilder/docs/ResourceKind.md
new file mode 100644
index 0000000..a977434
--- /dev/null
+++ b/flightctl/imagebuilder/docs/ResourceKind.md
@@ -0,0 +1,13 @@
+# ResourceKind
+
+Resource types exposed via the ImageBuilder API.
+
+## Enum
+
+* `IMAGEBUILD` (value: `'ImageBuild'`)
+
+* `IMAGEEXPORT` (value: `'ImageExport'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/docs/Status.md b/flightctl/imagebuilder/docs/Status.md
new file mode 100644
index 0000000..e413491
--- /dev/null
+++ b/flightctl/imagebuilder/docs/Status.md
@@ -0,0 +1,35 @@
+# Status
+
+Status is a return value for calls that don't return other objects.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
+**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
+**code** | **int** | Suggested HTTP return code for this status, 0 if not set. |
+**message** | **str** | A human-readable description of the status of this operation. |
+**reason** | **str** | A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it. |
+**status** | **str** | Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. |
+
+## Example
+
+```python
+from flightctl.imagebuilder.models.status import Status
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of Status from a JSON string
+status_instance = Status.from_json(json)
+# print the JSON string representation of the object
+print(Status.to_json())
+
+# convert the object into a dict
+status_dict = status_instance.to_dict()
+# create an instance of Status from a dict
+status_from_dict = Status.from_dict(status_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/imagebuilder/exceptions.py b/flightctl/imagebuilder/exceptions.py
new file mode 100644
index 0000000..de9c5fe
--- /dev/null
+++ b/flightctl/imagebuilder/exceptions.py
@@ -0,0 +1,217 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+from typing import Any, Optional
+from typing_extensions import Self
+
+class OpenApiException(Exception):
+ """The base exception class for all OpenAPIExceptions"""
+
+
+class ApiTypeError(OpenApiException, TypeError):
+ def __init__(self, msg, path_to_item=None, valid_classes=None,
+ key_type=None) -> None:
+ """ Raises an exception for TypeErrors
+
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (list): a list of keys an indices to get to the
+ current_item
+ None if unset
+ valid_classes (tuple): the primitive classes that current item
+ should be an instance of
+ None if unset
+ key_type (bool): False if our value is a value in a dict
+ True if it is a key in a dict
+ False if our item is an item in a list
+ None if unset
+ """
+ self.path_to_item = path_to_item
+ self.valid_classes = valid_classes
+ self.key_type = key_type
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiTypeError, self).__init__(full_msg)
+
+
+class ApiValueError(OpenApiException, ValueError):
+ def __init__(self, msg, path_to_item=None) -> None:
+ """
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (list) the path to the exception in the
+ received_data dict. None if unset
+ """
+
+ self.path_to_item = path_to_item
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiValueError, self).__init__(full_msg)
+
+
+class ApiAttributeError(OpenApiException, AttributeError):
+ def __init__(self, msg, path_to_item=None) -> None:
+ """
+ Raised when an attribute reference or assignment fails.
+
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (None/list) the path to the exception in the
+ received_data dict
+ """
+ self.path_to_item = path_to_item
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiAttributeError, self).__init__(full_msg)
+
+
+class ApiKeyError(OpenApiException, KeyError):
+ def __init__(self, msg, path_to_item=None) -> None:
+ """
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (None/list) the path to the exception in the
+ received_data dict
+ """
+ self.path_to_item = path_to_item
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiKeyError, self).__init__(full_msg)
+
+
+class ApiException(OpenApiException):
+
+ def __init__(
+ self,
+ status=None,
+ reason=None,
+ http_resp=None,
+ *,
+ body: Optional[str] = None,
+ data: Optional[Any] = None,
+ ) -> None:
+ self.status = status
+ self.reason = reason
+ self.body = body
+ self.data = data
+ self.headers = None
+
+ if http_resp:
+ if self.status is None:
+ self.status = http_resp.status
+ if self.reason is None:
+ self.reason = http_resp.reason
+ if self.body is None:
+ try:
+ self.body = http_resp.data.decode('utf-8')
+ except Exception:
+ pass
+ self.headers = http_resp.getheaders()
+
+ @classmethod
+ def from_response(
+ cls,
+ *,
+ http_resp,
+ body: Optional[str],
+ data: Optional[Any],
+ ) -> Self:
+ if http_resp.status == 400:
+ raise BadRequestException(http_resp=http_resp, body=body, data=data)
+
+ if http_resp.status == 401:
+ raise UnauthorizedException(http_resp=http_resp, body=body, data=data)
+
+ if http_resp.status == 403:
+ raise ForbiddenException(http_resp=http_resp, body=body, data=data)
+
+ if http_resp.status == 404:
+ raise NotFoundException(http_resp=http_resp, body=body, data=data)
+
+ # Added new conditions for 409 and 422
+ if http_resp.status == 409:
+ raise ConflictException(http_resp=http_resp, body=body, data=data)
+
+ if http_resp.status == 422:
+ raise UnprocessableEntityException(http_resp=http_resp, body=body, data=data)
+
+ if 500 <= http_resp.status <= 599:
+ raise ServiceException(http_resp=http_resp, body=body, data=data)
+ raise ApiException(http_resp=http_resp, body=body, data=data)
+
+ def __str__(self):
+ """Custom error messages for exception"""
+ error_message = "({0})\n"\
+ "Reason: {1}\n".format(self.status, self.reason)
+ if self.headers:
+ error_message += "HTTP response headers: {0}\n".format(
+ self.headers)
+
+ if self.data or self.body:
+ error_message += "HTTP response body: {0}\n".format(self.data or self.body)
+
+ return error_message
+
+
+class BadRequestException(ApiException):
+ pass
+
+
+class NotFoundException(ApiException):
+ pass
+
+
+class UnauthorizedException(ApiException):
+ pass
+
+
+class ForbiddenException(ApiException):
+ pass
+
+
+class ServiceException(ApiException):
+ pass
+
+
+class ConflictException(ApiException):
+ """Exception for HTTP 409 Conflict."""
+ pass
+
+
+class UnprocessableEntityException(ApiException):
+ """Exception for HTTP 422 Unprocessable Entity."""
+ pass
+
+
+def render_path(path_to_item):
+ """Returns a string representation of a path"""
+ result = ""
+ for pth in path_to_item:
+ if isinstance(pth, int):
+ result += "[{0}]".format(pth)
+ else:
+ result += "['{0}']".format(pth)
+ return result
diff --git a/flightctl/imagebuilder/models/__init__.py b/flightctl/imagebuilder/models/__init__.py
new file mode 100644
index 0000000..0af8a54
--- /dev/null
+++ b/flightctl/imagebuilder/models/__init__.py
@@ -0,0 +1,49 @@
+# coding: utf-8
+
+# flake8: noqa
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+# import models into model package
+from flightctl.imagebuilder.models.api_version import ApiVersion
+from flightctl.imagebuilder.models.binding_type import BindingType
+from flightctl.imagebuilder.models.condition_base import ConditionBase
+from flightctl.imagebuilder.models.condition_status import ConditionStatus
+from flightctl.imagebuilder.models.early_binding import EarlyBinding
+from flightctl.imagebuilder.models.export_format_type import ExportFormatType
+from flightctl.imagebuilder.models.image_build import ImageBuild
+from flightctl.imagebuilder.models.image_build_binding import ImageBuildBinding
+from flightctl.imagebuilder.models.image_build_condition import ImageBuildCondition
+from flightctl.imagebuilder.models.image_build_condition_reason import ImageBuildConditionReason
+from flightctl.imagebuilder.models.image_build_condition_type import ImageBuildConditionType
+from flightctl.imagebuilder.models.image_build_destination import ImageBuildDestination
+from flightctl.imagebuilder.models.image_build_list import ImageBuildList
+from flightctl.imagebuilder.models.image_build_ref_source import ImageBuildRefSource
+from flightctl.imagebuilder.models.image_build_source import ImageBuildSource
+from flightctl.imagebuilder.models.image_build_spec import ImageBuildSpec
+from flightctl.imagebuilder.models.image_build_status import ImageBuildStatus
+from flightctl.imagebuilder.models.image_build_user_configuration import ImageBuildUserConfiguration
+from flightctl.imagebuilder.models.image_export import ImageExport
+from flightctl.imagebuilder.models.image_export_condition import ImageExportCondition
+from flightctl.imagebuilder.models.image_export_condition_reason import ImageExportConditionReason
+from flightctl.imagebuilder.models.image_export_condition_type import ImageExportConditionType
+from flightctl.imagebuilder.models.image_export_format_phase import ImageExportFormatPhase
+from flightctl.imagebuilder.models.image_export_list import ImageExportList
+from flightctl.imagebuilder.models.image_export_source_type import ImageExportSourceType
+from flightctl.imagebuilder.models.image_export_spec import ImageExportSpec
+from flightctl.imagebuilder.models.image_export_status import ImageExportStatus
+from flightctl.imagebuilder.models.late_binding import LateBinding
+from flightctl.imagebuilder.models.list_meta import ListMeta
+from flightctl.imagebuilder.models.object_meta import ObjectMeta
+from flightctl.imagebuilder.models.resource_kind import ResourceKind
+from flightctl.imagebuilder.models.status import Status
+
diff --git a/flightctl/imagebuilder/models/api_version.py b/flightctl/imagebuilder/models/api_version.py
new file mode 100644
index 0000000..11d1d4f
--- /dev/null
+++ b/flightctl/imagebuilder/models/api_version.py
@@ -0,0 +1,38 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class ApiVersion(str, Enum):
+ """
+ APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.
+ """
+
+ """
+ allowed enum values
+ """
+ ApiVersionV1alpha1 = 'v1alpha1'
+ ApiVersionFlightctlIoV1alpha1 = 'flightctl.io/v1alpha1'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ApiVersion from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/flightctl/imagebuilder/models/binding_type.py b/flightctl/imagebuilder/models/binding_type.py
new file mode 100644
index 0000000..c2487f8
--- /dev/null
+++ b/flightctl/imagebuilder/models/binding_type.py
@@ -0,0 +1,38 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class BindingType(str, Enum):
+ """
+ The type of binding for the image build.
+ """
+
+ """
+ allowed enum values
+ """
+ BindingTypeEarly = 'early'
+ BindingTypeLate = 'late'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of BindingType from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/flightctl/imagebuilder/models/condition_base.py b/flightctl/imagebuilder/models/condition_base.py
new file mode 100644
index 0000000..bbc8250
--- /dev/null
+++ b/flightctl/imagebuilder/models/condition_base.py
@@ -0,0 +1,98 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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 datetime import datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.imagebuilder.models.condition_status import ConditionStatus
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ConditionBase(BaseModel):
+ """
+ Base condition structure following Kubernetes API conventions. Use with allOf to add a specific type enum.
+ """ # noqa: E501
+ status: ConditionStatus
+ observed_generation: Optional[StrictInt] = Field(default=None, description="The .metadata.generation that the condition was set based upon.", alias="observedGeneration")
+ last_transition_time: datetime = Field(description="The last time the condition transitioned from one status to another.", alias="lastTransitionTime")
+ message: StrictStr = Field(description="Human readable message indicating details about last transition.")
+ reason: StrictStr = Field(description="A (brief) reason for the condition's last transition.")
+ __properties: ClassVar[List[str]] = ["status", "observedGeneration", "lastTransitionTime", "message", "reason"]
+
+ 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 ConditionBase 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 ConditionBase from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "status": obj.get("status"),
+ "observedGeneration": obj.get("observedGeneration"),
+ "lastTransitionTime": obj.get("lastTransitionTime"),
+ "message": obj.get("message"),
+ "reason": obj.get("reason")
+ })
+ return _obj
+
+
diff --git a/flightctl/imagebuilder/models/condition_status.py b/flightctl/imagebuilder/models/condition_status.py
new file mode 100644
index 0000000..466d372
--- /dev/null
+++ b/flightctl/imagebuilder/models/condition_status.py
@@ -0,0 +1,39 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class ConditionStatus(str, Enum):
+ """
+ Status of the condition, one of True, False, Unknown.
+ """
+
+ """
+ allowed enum values
+ """
+ ConditionStatusTrue = 'True'
+ ConditionStatusFalse = 'False'
+ ConditionStatusUnknown = 'Unknown'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ConditionStatus from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/flightctl/imagebuilder/models/early_binding.py b/flightctl/imagebuilder/models/early_binding.py
new file mode 100644
index 0000000..f8133e2
--- /dev/null
+++ b/flightctl/imagebuilder/models/early_binding.py
@@ -0,0 +1,95 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class EarlyBinding(BaseModel):
+ """
+ Early binding configuration - embeds certificate in the image.
+ """ # noqa: E501
+ type: StrictStr = Field(description="The type of binding.")
+ __properties: ClassVar[List[str]] = ["type"]
+
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['early']):
+ raise ValueError("must be one of enum values ('early')")
+ return value
+
+ 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 EarlyBinding 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 EarlyBinding from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "type": obj.get("type")
+ })
+ return _obj
+
+
diff --git a/flightctl/imagebuilder/models/export_format_type.py b/flightctl/imagebuilder/models/export_format_type.py
new file mode 100644
index 0000000..8779b55
--- /dev/null
+++ b/flightctl/imagebuilder/models/export_format_type.py
@@ -0,0 +1,40 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class ExportFormatType(str, Enum):
+ """
+ The type of format to export the image to.
+ """
+
+ """
+ allowed enum values
+ """
+ ExportFormatTypeVMDK = 'vmdk'
+ ExportFormatTypeQCOW2 = 'qcow2'
+ ExportFormatTypeISO = 'iso'
+ ExportFormatTypeQCOW2DiskContainer = 'qcow2-disk-container'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ExportFormatType from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/flightctl/imagebuilder/models/image_build.py b/flightctl/imagebuilder/models/image_build.py
new file mode 100644
index 0000000..4889060
--- /dev/null
+++ b/flightctl/imagebuilder/models/image_build.py
@@ -0,0 +1,119 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.imagebuilder.models.api_version import ApiVersion
+from flightctl.imagebuilder.models.image_build_spec import ImageBuildSpec
+from flightctl.imagebuilder.models.image_build_status import ImageBuildStatus
+from flightctl.imagebuilder.models.image_export import ImageExport
+from flightctl.imagebuilder.models.object_meta import ObjectMeta
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ImageBuild(BaseModel):
+ """
+ ImageBuild represents a build request for a container image.
+ """ # noqa: E501
+ api_version: ApiVersion = Field(alias="apiVersion")
+ kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
+ metadata: ObjectMeta
+ spec: ImageBuildSpec
+ status: Optional[ImageBuildStatus] = None
+ imageexports: Optional[List[ImageExport]] = Field(default=None, description="Array of ImageExport resources that reference this ImageBuild. Only populated when withExports query parameter is true.")
+ __properties: ClassVar[List[str]] = ["apiVersion", "kind", "metadata", "spec", "status", "imageexports"]
+
+ 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 ImageBuild 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 metadata
+ if self.metadata:
+ _dict['metadata'] = self.metadata.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of spec
+ if self.spec:
+ _dict['spec'] = self.spec.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of status
+ if self.status:
+ _dict['status'] = self.status.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in imageexports (list)
+ _items = []
+ if self.imageexports:
+ for _item_imageexports in self.imageexports:
+ if _item_imageexports:
+ _items.append(_item_imageexports.to_dict())
+ _dict['imageexports'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ImageBuild from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "apiVersion": obj.get("apiVersion"),
+ "kind": obj.get("kind"),
+ "metadata": ObjectMeta.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None,
+ "spec": ImageBuildSpec.from_dict(obj["spec"]) if obj.get("spec") is not None else None,
+ "status": ImageBuildStatus.from_dict(obj["status"]) if obj.get("status") is not None else None,
+ "imageexports": [ImageExport.from_dict(_item) for _item in obj["imageexports"]] if obj.get("imageexports") is not None else None
+ })
+ return _obj
+
+
diff --git a/flightctl/imagebuilder/models/image_build_binding.py b/flightctl/imagebuilder/models/image_build_binding.py
new file mode 100644
index 0000000..6f767a6
--- /dev/null
+++ b/flightctl/imagebuilder/models/image_build_binding.py
@@ -0,0 +1,156 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+import pprint
+from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
+from typing import Any, List, Optional
+from flightctl.imagebuilder.models.early_binding import EarlyBinding
+from flightctl.imagebuilder.models.late_binding import LateBinding
+from pydantic import StrictStr, Field
+from typing import Union, List, Set, Optional, Dict
+from typing_extensions import Literal, Self
+
+IMAGEBUILDBINDING_ONE_OF_SCHEMAS = ["EarlyBinding", "LateBinding"]
+
+class ImageBuildBinding(BaseModel):
+ """
+ ImageBuildBinding specifies binding configuration for the build.
+ """
+ # data type: EarlyBinding
+ oneof_schema_1_validator: Optional[EarlyBinding] = None
+ # data type: LateBinding
+ oneof_schema_2_validator: Optional[LateBinding] = None
+ actual_instance: Optional[Union[EarlyBinding, LateBinding]] = None
+ one_of_schemas: Set[str] = { "EarlyBinding", "LateBinding" }
+
+ model_config = ConfigDict(
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ discriminator_value_class_map: Dict[str, str] = {
+ }
+
+ def __init__(self, *args, **kwargs) -> None:
+ if args:
+ if len(args) > 1:
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
+ if kwargs:
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
+ super().__init__(actual_instance=args[0])
+ else:
+ super().__init__(**kwargs)
+
+ @field_validator('actual_instance')
+ def actual_instance_must_validate_oneof(cls, v):
+ instance = ImageBuildBinding.model_construct()
+ error_messages = []
+ match = 0
+ # validate data type: EarlyBinding
+ if not isinstance(v, EarlyBinding):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `EarlyBinding`")
+ else:
+ match += 1
+ # validate data type: LateBinding
+ if not isinstance(v, LateBinding):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `LateBinding`")
+ else:
+ match += 1
+ if match > 1:
+ # more than 1 match
+ raise ValueError("Multiple matches found when setting `actual_instance` in ImageBuildBinding with oneOf schemas: EarlyBinding, LateBinding. Details: " + ", ".join(error_messages))
+ elif match == 0:
+ # no match
+ raise ValueError("No match found when setting `actual_instance` in ImageBuildBinding with oneOf schemas: EarlyBinding, LateBinding. Details: " + ", ".join(error_messages))
+ else:
+ return v
+
+ @classmethod
+ def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self:
+ return cls.from_json(json.dumps(obj))
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Returns the object represented by the json string"""
+ instance = cls.model_construct()
+ error_messages = []
+ match = 0
+
+ # use oneOf discriminator to lookup the data type
+ _data_type = json.loads(json_str).get("type")
+ if not _data_type:
+ raise ValueError("Failed to lookup data type from the field `type` in the input.")
+
+ # check if data type is `EarlyBinding`
+ if _data_type == "early":
+ instance.actual_instance = EarlyBinding.from_json(json_str)
+ return instance
+
+ # check if data type is `LateBinding`
+ if _data_type == "late":
+ instance.actual_instance = LateBinding.from_json(json_str)
+ return instance
+
+ # deserialize data into EarlyBinding
+ try:
+ instance.actual_instance = EarlyBinding.from_json(json_str)
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # deserialize data into LateBinding
+ try:
+ instance.actual_instance = LateBinding.from_json(json_str)
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+
+ if match > 1:
+ # more than 1 match
+ raise ValueError("Multiple matches found when deserializing the JSON string into ImageBuildBinding with oneOf schemas: EarlyBinding, LateBinding. Details: " + ", ".join(error_messages))
+ elif match == 0:
+ # no match
+ raise ValueError("No match found when deserializing the JSON string into ImageBuildBinding with oneOf schemas: EarlyBinding, LateBinding. Details: " + ", ".join(error_messages))
+ else:
+ return instance
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the actual instance"""
+ if self.actual_instance is None:
+ return "null"
+
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
+ return self.actual_instance.to_json()
+ else:
+ return json.dumps(self.actual_instance)
+
+ def to_dict(self) -> Optional[Union[Dict[str, Any], EarlyBinding, LateBinding]]:
+ """Returns the dict representation of the actual instance"""
+ if self.actual_instance is None:
+ return None
+
+ if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
+ return self.actual_instance.to_dict()
+ else:
+ # primitive type
+ return self.actual_instance
+
+ def to_str(self) -> str:
+ """Returns the string representation of the actual instance"""
+ return pprint.pformat(self.model_dump())
+
+
diff --git a/flightctl/imagebuilder/models/image_build_condition.py b/flightctl/imagebuilder/models/image_build_condition.py
new file mode 100644
index 0000000..9c5fe7c
--- /dev/null
+++ b/flightctl/imagebuilder/models/image_build_condition.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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 datetime import datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.imagebuilder.models.condition_status import ConditionStatus
+from flightctl.imagebuilder.models.image_build_condition_type import ImageBuildConditionType
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ImageBuildCondition(BaseModel):
+ """
+ Condition for ImageBuild resources.
+ """ # noqa: E501
+ status: ConditionStatus
+ observed_generation: Optional[StrictInt] = Field(default=None, description="The .metadata.generation that the condition was set based upon.", alias="observedGeneration")
+ last_transition_time: datetime = Field(description="The last time the condition transitioned from one status to another.", alias="lastTransitionTime")
+ message: StrictStr = Field(description="Human readable message indicating details about last transition.")
+ reason: StrictStr = Field(description="A (brief) reason for the condition's last transition.")
+ type: ImageBuildConditionType
+ __properties: ClassVar[List[str]] = ["status", "observedGeneration", "lastTransitionTime", "message", "reason", "type"]
+
+ 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 ImageBuildCondition 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 ImageBuildCondition from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "status": obj.get("status"),
+ "observedGeneration": obj.get("observedGeneration"),
+ "lastTransitionTime": obj.get("lastTransitionTime"),
+ "message": obj.get("message"),
+ "reason": obj.get("reason"),
+ "type": obj.get("type")
+ })
+ return _obj
+
+
diff --git a/flightctl/imagebuilder/models/image_build_condition_reason.py b/flightctl/imagebuilder/models/image_build_condition_reason.py
new file mode 100644
index 0000000..bb1b3e8
--- /dev/null
+++ b/flightctl/imagebuilder/models/image_build_condition_reason.py
@@ -0,0 +1,43 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class ImageBuildConditionReason(str, Enum):
+ """
+ Reason for the ImageBuild Ready condition.
+ """
+
+ """
+ allowed enum values
+ """
+ ImageBuildConditionReasonPending = 'Pending'
+ ImageBuildConditionReasonBuilding = 'Building'
+ ImageBuildConditionReasonPushing = 'Pushing'
+ ImageBuildConditionReasonCompleted = 'Completed'
+ ImageBuildConditionReasonFailed = 'Failed'
+ ImageBuildConditionReasonCanceling = 'Canceling'
+ ImageBuildConditionReasonCanceled = 'Canceled'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ImageBuildConditionReason from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/flightctl/imagebuilder/models/image_build_condition_type.py b/flightctl/imagebuilder/models/image_build_condition_type.py
new file mode 100644
index 0000000..451a58f
--- /dev/null
+++ b/flightctl/imagebuilder/models/image_build_condition_type.py
@@ -0,0 +1,37 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class ImageBuildConditionType(str, Enum):
+ """
+ Type of ImageBuild condition.
+ """
+
+ """
+ allowed enum values
+ """
+ ImageBuildConditionTypeReady = 'Ready'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ImageBuildConditionType from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/flightctl/imagebuilder/models/image_build_destination.py b/flightctl/imagebuilder/models/image_build_destination.py
new file mode 100644
index 0000000..71b2197
--- /dev/null
+++ b/flightctl/imagebuilder/models/image_build_destination.py
@@ -0,0 +1,92 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ImageBuildDestination(BaseModel):
+ """
+ ImageBuildDestination specifies the destination for the built image.
+ """ # noqa: E501
+ repository: StrictStr = Field(description="The name of the Repository resource of type OCI to push the built image to.")
+ image_name: StrictStr = Field(description="The name of the output image.", alias="imageName")
+ image_tag: StrictStr = Field(description="The tag of the output image.", alias="imageTag")
+ __properties: ClassVar[List[str]] = ["repository", "imageName", "imageTag"]
+
+ 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 ImageBuildDestination 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 ImageBuildDestination from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "repository": obj.get("repository"),
+ "imageName": obj.get("imageName"),
+ "imageTag": obj.get("imageTag")
+ })
+ return _obj
+
+
diff --git a/flightctl/imagebuilder/models/image_build_list.py b/flightctl/imagebuilder/models/image_build_list.py
new file mode 100644
index 0000000..d9ceed7
--- /dev/null
+++ b/flightctl/imagebuilder/models/image_build_list.py
@@ -0,0 +1,107 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List
+from flightctl.imagebuilder.models.api_version import ApiVersion
+from flightctl.imagebuilder.models.image_build import ImageBuild
+from flightctl.imagebuilder.models.list_meta import ListMeta
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ImageBuildList(BaseModel):
+ """
+ ImageBuildList is a list of ImageBuild resources.
+ """ # noqa: E501
+ api_version: ApiVersion = Field(alias="apiVersion")
+ kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
+ metadata: ListMeta
+ items: List[ImageBuild] = Field(description="List of ImageBuild resources.")
+ __properties: ClassVar[List[str]] = ["apiVersion", "kind", "metadata", "items"]
+
+ 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 ImageBuildList 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 metadata
+ if self.metadata:
+ _dict['metadata'] = self.metadata.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in items (list)
+ _items = []
+ if self.items:
+ for _item_items in self.items:
+ if _item_items:
+ _items.append(_item_items.to_dict())
+ _dict['items'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ImageBuildList from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "apiVersion": obj.get("apiVersion"),
+ "kind": obj.get("kind"),
+ "metadata": ListMeta.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None,
+ "items": [ImageBuild.from_dict(_item) for _item in obj["items"]] if obj.get("items") is not None else None
+ })
+ return _obj
+
+
diff --git a/flightctl/imagebuilder/models/image_build_ref_source.py b/flightctl/imagebuilder/models/image_build_ref_source.py
new file mode 100644
index 0000000..de91475
--- /dev/null
+++ b/flightctl/imagebuilder/models/image_build_ref_source.py
@@ -0,0 +1,97 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ImageBuildRefSource(BaseModel):
+ """
+ ImageBuildRefSource specifies a source image from an ImageBuild resource.
+ """ # noqa: E501
+ type: StrictStr = Field(description="The type of source.")
+ image_build_ref: StrictStr = Field(description="The name of the ImageBuild resource to use as source.", alias="imageBuildRef")
+ __properties: ClassVar[List[str]] = ["type", "imageBuildRef"]
+
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['imageBuild']):
+ raise ValueError("must be one of enum values ('imageBuild')")
+ return value
+
+ 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 ImageBuildRefSource 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 ImageBuildRefSource from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "type": obj.get("type"),
+ "imageBuildRef": obj.get("imageBuildRef")
+ })
+ return _obj
+
+
diff --git a/flightctl/imagebuilder/models/image_build_source.py b/flightctl/imagebuilder/models/image_build_source.py
new file mode 100644
index 0000000..15c71bb
--- /dev/null
+++ b/flightctl/imagebuilder/models/image_build_source.py
@@ -0,0 +1,92 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ImageBuildSource(BaseModel):
+ """
+ ImageBuildSource specifies the source image for the build.
+ """ # noqa: E501
+ repository: StrictStr = Field(description="The name of the Repository resource of type OCI containing the source image.")
+ image_name: StrictStr = Field(description="The name of the source image.", alias="imageName")
+ image_tag: StrictStr = Field(description="The tag of the source image.", alias="imageTag")
+ __properties: ClassVar[List[str]] = ["repository", "imageName", "imageTag"]
+
+ 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 ImageBuildSource 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 ImageBuildSource from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "repository": obj.get("repository"),
+ "imageName": obj.get("imageName"),
+ "imageTag": obj.get("imageTag")
+ })
+ return _obj
+
+
diff --git a/flightctl/imagebuilder/models/image_build_spec.py b/flightctl/imagebuilder/models/image_build_spec.py
new file mode 100644
index 0000000..36652bf
--- /dev/null
+++ b/flightctl/imagebuilder/models/image_build_spec.py
@@ -0,0 +1,110 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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
+from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.imagebuilder.models.image_build_binding import ImageBuildBinding
+from flightctl.imagebuilder.models.image_build_destination import ImageBuildDestination
+from flightctl.imagebuilder.models.image_build_source import ImageBuildSource
+from flightctl.imagebuilder.models.image_build_user_configuration import ImageBuildUserConfiguration
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ImageBuildSpec(BaseModel):
+ """
+ ImageBuildSpec describes the specification for an image build.
+ """ # noqa: E501
+ source: ImageBuildSource
+ destination: ImageBuildDestination
+ binding: ImageBuildBinding
+ user_configuration: Optional[ImageBuildUserConfiguration] = Field(default=None, alias="userConfiguration")
+ __properties: ClassVar[List[str]] = ["source", "destination", "binding", "userConfiguration"]
+
+ 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 ImageBuildSpec 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 source
+ if self.source:
+ _dict['source'] = self.source.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of destination
+ if self.destination:
+ _dict['destination'] = self.destination.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of binding
+ if self.binding:
+ _dict['binding'] = self.binding.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of user_configuration
+ if self.user_configuration:
+ _dict['userConfiguration'] = self.user_configuration.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ImageBuildSpec from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "source": ImageBuildSource.from_dict(obj["source"]) if obj.get("source") is not None else None,
+ "destination": ImageBuildDestination.from_dict(obj["destination"]) if obj.get("destination") is not None else None,
+ "binding": ImageBuildBinding.from_dict(obj["binding"]) if obj.get("binding") is not None else None,
+ "userConfiguration": ImageBuildUserConfiguration.from_dict(obj["userConfiguration"]) if obj.get("userConfiguration") is not None else None
+ })
+ return _obj
+
+
diff --git a/flightctl/imagebuilder/models/image_build_status.py b/flightctl/imagebuilder/models/image_build_status.py
new file mode 100644
index 0000000..83a1c35
--- /dev/null
+++ b/flightctl/imagebuilder/models/image_build_status.py
@@ -0,0 +1,105 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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 datetime import datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.imagebuilder.models.image_build_condition import ImageBuildCondition
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ImageBuildStatus(BaseModel):
+ """
+ ImageBuildStatus represents the current status of an ImageBuild.
+ """ # noqa: E501
+ conditions: Optional[List[ImageBuildCondition]] = Field(default=None, description="Current conditions of the ImageBuild.")
+ image_reference: Optional[StrictStr] = Field(default=None, description="The full image reference of the built image (e.g., quay.io/org/imagename:tag).", alias="imageReference")
+ architecture: Optional[StrictStr] = Field(default=None, description="The architecture of the built image.")
+ manifest_digest: Optional[StrictStr] = Field(default=None, description="The digest of the built image manifest.", alias="manifestDigest")
+ last_seen: Optional[datetime] = Field(default=None, description="The last time the build was seen (heartbeat).", alias="lastSeen")
+ __properties: ClassVar[List[str]] = ["conditions", "imageReference", "architecture", "manifestDigest", "lastSeen"]
+
+ 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 ImageBuildStatus 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 each item in conditions (list)
+ _items = []
+ if self.conditions:
+ for _item_conditions in self.conditions:
+ if _item_conditions:
+ _items.append(_item_conditions.to_dict())
+ _dict['conditions'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ImageBuildStatus from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "conditions": [ImageBuildCondition.from_dict(_item) for _item in obj["conditions"]] if obj.get("conditions") is not None else None,
+ "imageReference": obj.get("imageReference"),
+ "architecture": obj.get("architecture"),
+ "manifestDigest": obj.get("manifestDigest"),
+ "lastSeen": obj.get("lastSeen")
+ })
+ return _obj
+
+
diff --git a/flightctl/imagebuilder/models/image_build_user_configuration.py b/flightctl/imagebuilder/models/image_build_user_configuration.py
new file mode 100644
index 0000000..ee64348
--- /dev/null
+++ b/flightctl/imagebuilder/models/image_build_user_configuration.py
@@ -0,0 +1,90 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ImageBuildUserConfiguration(BaseModel):
+ """
+ ImageBuildUserConfiguration specifies user configuration for the build.
+ """ # noqa: E501
+ username: StrictStr = Field(description="The username for the user configuration.")
+ publickey: StrictStr = Field(description="The public key for the user configuration.")
+ __properties: ClassVar[List[str]] = ["username", "publickey"]
+
+ 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 ImageBuildUserConfiguration 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 ImageBuildUserConfiguration from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "username": obj.get("username"),
+ "publickey": obj.get("publickey")
+ })
+ return _obj
+
+
diff --git a/flightctl/imagebuilder/models/image_export.py b/flightctl/imagebuilder/models/image_export.py
new file mode 100644
index 0000000..a02f667
--- /dev/null
+++ b/flightctl/imagebuilder/models/image_export.py
@@ -0,0 +1,109 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.imagebuilder.models.api_version import ApiVersion
+from flightctl.imagebuilder.models.image_export_spec import ImageExportSpec
+from flightctl.imagebuilder.models.image_export_status import ImageExportStatus
+from flightctl.imagebuilder.models.object_meta import ObjectMeta
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ImageExport(BaseModel):
+ """
+ ImageExport represents an export request to convert and push images to different formats.
+ """ # noqa: E501
+ api_version: ApiVersion = Field(alias="apiVersion")
+ kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
+ metadata: ObjectMeta
+ spec: ImageExportSpec
+ status: Optional[ImageExportStatus] = None
+ __properties: ClassVar[List[str]] = ["apiVersion", "kind", "metadata", "spec", "status"]
+
+ 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 ImageExport 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 metadata
+ if self.metadata:
+ _dict['metadata'] = self.metadata.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of spec
+ if self.spec:
+ _dict['spec'] = self.spec.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of status
+ if self.status:
+ _dict['status'] = self.status.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ImageExport from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "apiVersion": obj.get("apiVersion"),
+ "kind": obj.get("kind"),
+ "metadata": ObjectMeta.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None,
+ "spec": ImageExportSpec.from_dict(obj["spec"]) if obj.get("spec") is not None else None,
+ "status": ImageExportStatus.from_dict(obj["status"]) if obj.get("status") is not None else None
+ })
+ return _obj
+
+
diff --git a/flightctl/imagebuilder/models/image_export_condition.py b/flightctl/imagebuilder/models/image_export_condition.py
new file mode 100644
index 0000000..8ed30a4
--- /dev/null
+++ b/flightctl/imagebuilder/models/image_export_condition.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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 datetime import datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.imagebuilder.models.condition_status import ConditionStatus
+from flightctl.imagebuilder.models.image_export_condition_type import ImageExportConditionType
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ImageExportCondition(BaseModel):
+ """
+ Condition for ImageExport resources.
+ """ # noqa: E501
+ status: ConditionStatus
+ observed_generation: Optional[StrictInt] = Field(default=None, description="The .metadata.generation that the condition was set based upon.", alias="observedGeneration")
+ last_transition_time: datetime = Field(description="The last time the condition transitioned from one status to another.", alias="lastTransitionTime")
+ message: StrictStr = Field(description="Human readable message indicating details about last transition.")
+ reason: StrictStr = Field(description="A (brief) reason for the condition's last transition.")
+ type: ImageExportConditionType
+ __properties: ClassVar[List[str]] = ["status", "observedGeneration", "lastTransitionTime", "message", "reason", "type"]
+
+ 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 ImageExportCondition 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 ImageExportCondition from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "status": obj.get("status"),
+ "observedGeneration": obj.get("observedGeneration"),
+ "lastTransitionTime": obj.get("lastTransitionTime"),
+ "message": obj.get("message"),
+ "reason": obj.get("reason"),
+ "type": obj.get("type")
+ })
+ return _obj
+
+
diff --git a/flightctl/imagebuilder/models/image_export_condition_reason.py b/flightctl/imagebuilder/models/image_export_condition_reason.py
new file mode 100644
index 0000000..34fd38a
--- /dev/null
+++ b/flightctl/imagebuilder/models/image_export_condition_reason.py
@@ -0,0 +1,43 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class ImageExportConditionReason(str, Enum):
+ """
+ Reason for the ImageExport Ready condition.
+ """
+
+ """
+ allowed enum values
+ """
+ ImageExportConditionReasonPending = 'Pending'
+ ImageExportConditionReasonConverting = 'Converting'
+ ImageExportConditionReasonPushing = 'Pushing'
+ ImageExportConditionReasonCompleted = 'Completed'
+ ImageExportConditionReasonFailed = 'Failed'
+ ImageExportConditionReasonCanceling = 'Canceling'
+ ImageExportConditionReasonCanceled = 'Canceled'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ImageExportConditionReason from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/flightctl/imagebuilder/models/image_export_condition_type.py b/flightctl/imagebuilder/models/image_export_condition_type.py
new file mode 100644
index 0000000..5194423
--- /dev/null
+++ b/flightctl/imagebuilder/models/image_export_condition_type.py
@@ -0,0 +1,37 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class ImageExportConditionType(str, Enum):
+ """
+ Type of ImageExport condition.
+ """
+
+ """
+ allowed enum values
+ """
+ ImageExportConditionTypeReady = 'Ready'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ImageExportConditionType from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/flightctl/imagebuilder/models/image_export_format_phase.py b/flightctl/imagebuilder/models/image_export_format_phase.py
new file mode 100644
index 0000000..c2b7cc3
--- /dev/null
+++ b/flightctl/imagebuilder/models/image_export_format_phase.py
@@ -0,0 +1,41 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class ImageExportFormatPhase(str, Enum):
+ """
+ The phase of a single format conversion.
+ """
+
+ """
+ allowed enum values
+ """
+ ImageExportFormatPhaseQueued = 'queued'
+ ImageExportFormatPhaseConverting = 'converting'
+ ImageExportFormatPhasePushing = 'pushing'
+ ImageExportFormatPhaseComplete = 'complete'
+ ImageExportFormatPhaseFailed = 'failed'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ImageExportFormatPhase from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/flightctl/imagebuilder/models/image_export_list.py b/flightctl/imagebuilder/models/image_export_list.py
new file mode 100644
index 0000000..a70a6b0
--- /dev/null
+++ b/flightctl/imagebuilder/models/image_export_list.py
@@ -0,0 +1,107 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List
+from flightctl.imagebuilder.models.api_version import ApiVersion
+from flightctl.imagebuilder.models.image_export import ImageExport
+from flightctl.imagebuilder.models.list_meta import ListMeta
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ImageExportList(BaseModel):
+ """
+ ImageExportList is a list of ImageExport resources.
+ """ # noqa: E501
+ api_version: ApiVersion = Field(alias="apiVersion")
+ kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
+ metadata: ListMeta
+ items: List[ImageExport] = Field(description="List of ImageExport resources.")
+ __properties: ClassVar[List[str]] = ["apiVersion", "kind", "metadata", "items"]
+
+ 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 ImageExportList 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 metadata
+ if self.metadata:
+ _dict['metadata'] = self.metadata.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in items (list)
+ _items = []
+ if self.items:
+ for _item_items in self.items:
+ if _item_items:
+ _items.append(_item_items.to_dict())
+ _dict['items'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ImageExportList from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "apiVersion": obj.get("apiVersion"),
+ "kind": obj.get("kind"),
+ "metadata": ListMeta.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None,
+ "items": [ImageExport.from_dict(_item) for _item in obj["items"]] if obj.get("items") is not None else None
+ })
+ return _obj
+
+
diff --git a/flightctl/imagebuilder/models/image_export_source_type.py b/flightctl/imagebuilder/models/image_export_source_type.py
new file mode 100644
index 0000000..2397653
--- /dev/null
+++ b/flightctl/imagebuilder/models/image_export_source_type.py
@@ -0,0 +1,37 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class ImageExportSourceType(str, Enum):
+ """
+ The type of source for the image export.
+ """
+
+ """
+ allowed enum values
+ """
+ ImageExportSourceTypeImageBuild = 'imageBuild'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ImageExportSourceType from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/flightctl/imagebuilder/models/image_export_spec.py b/flightctl/imagebuilder/models/image_export_spec.py
new file mode 100644
index 0000000..082ed9a
--- /dev/null
+++ b/flightctl/imagebuilder/models/image_export_spec.py
@@ -0,0 +1,95 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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
+from typing import Any, ClassVar, Dict, List
+from flightctl.imagebuilder.models.export_format_type import ExportFormatType
+from flightctl.imagebuilder.models.image_build_ref_source import ImageBuildRefSource
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ImageExportSpec(BaseModel):
+ """
+ ImageExportSpec describes the specification for an image export.
+ """ # noqa: E501
+ source: ImageBuildRefSource
+ format: ExportFormatType
+ __properties: ClassVar[List[str]] = ["source", "format"]
+
+ 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 ImageExportSpec 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 source
+ if self.source:
+ _dict['source'] = self.source.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ImageExportSpec from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "source": ImageBuildRefSource.from_dict(obj["source"]) if obj.get("source") is not None else None,
+ "format": obj.get("format")
+ })
+ return _obj
+
+
diff --git a/flightctl/imagebuilder/models/image_export_status.py b/flightctl/imagebuilder/models/image_export_status.py
new file mode 100644
index 0000000..4b9729c
--- /dev/null
+++ b/flightctl/imagebuilder/models/image_export_status.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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 datetime import datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.imagebuilder.models.image_export_condition import ImageExportCondition
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ImageExportStatus(BaseModel):
+ """
+ ImageExportStatus represents the current status of an ImageExport.
+ """ # noqa: E501
+ conditions: Optional[List[ImageExportCondition]] = Field(default=None, description="Current conditions of the ImageExport.")
+ manifest_digest: Optional[StrictStr] = Field(default=None, description="The digest of the exported image manifest for this format.", alias="manifestDigest")
+ last_seen: Optional[datetime] = Field(default=None, description="The last time the export was seen (heartbeat).", alias="lastSeen")
+ __properties: ClassVar[List[str]] = ["conditions", "manifestDigest", "lastSeen"]
+
+ 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 ImageExportStatus 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 each item in conditions (list)
+ _items = []
+ if self.conditions:
+ for _item_conditions in self.conditions:
+ if _item_conditions:
+ _items.append(_item_conditions.to_dict())
+ _dict['conditions'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ImageExportStatus from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "conditions": [ImageExportCondition.from_dict(_item) for _item in obj["conditions"]] if obj.get("conditions") is not None else None,
+ "manifestDigest": obj.get("manifestDigest"),
+ "lastSeen": obj.get("lastSeen")
+ })
+ return _obj
+
+
diff --git a/flightctl/imagebuilder/models/late_binding.py b/flightctl/imagebuilder/models/late_binding.py
new file mode 100644
index 0000000..1572dc7
--- /dev/null
+++ b/flightctl/imagebuilder/models/late_binding.py
@@ -0,0 +1,95 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class LateBinding(BaseModel):
+ """
+ Late binding configuration - device binds at first boot.
+ """ # noqa: E501
+ type: StrictStr = Field(description="The type of binding.")
+ __properties: ClassVar[List[str]] = ["type"]
+
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['late']):
+ raise ValueError("must be one of enum values ('late')")
+ return value
+
+ 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 LateBinding 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 LateBinding from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "type": obj.get("type")
+ })
+ return _obj
+
+
diff --git a/flightctl/imagebuilder/models/list_meta.py b/flightctl/imagebuilder/models/list_meta.py
new file mode 100644
index 0000000..b8416ff
--- /dev/null
+++ b/flightctl/imagebuilder/models/list_meta.py
@@ -0,0 +1,90 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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 typing import Optional, Set
+from typing_extensions import Self
+
+class ListMeta(BaseModel):
+ """
+ ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.
+ """ # noqa: E501
+ var_continue: Optional[StrictStr] = Field(default=None, description="May be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.", alias="continue")
+ remaining_item_count: Optional[StrictInt] = Field(default=None, description="The number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.", alias="remainingItemCount")
+ __properties: ClassVar[List[str]] = ["continue", "remainingItemCount"]
+
+ 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 ListMeta 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 ListMeta from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "continue": obj.get("continue"),
+ "remainingItemCount": obj.get("remainingItemCount")
+ })
+ return _obj
+
+
diff --git a/flightctl/imagebuilder/models/object_meta.py b/flightctl/imagebuilder/models/object_meta.py
new file mode 100644
index 0000000..d07f1d6
--- /dev/null
+++ b/flightctl/imagebuilder/models/object_meta.py
@@ -0,0 +1,103 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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 datetime import datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ObjectMeta(BaseModel):
+ """
+ ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.
+ """ # noqa: E501
+ creation_timestamp: Optional[datetime] = Field(default=None, description="The time the object was created.", alias="creationTimestamp")
+ deletion_timestamp: Optional[datetime] = Field(default=None, description="The time the object will be deleted.", alias="deletionTimestamp")
+ name: Optional[StrictStr] = Field(default=None, description="The name of the object.")
+ labels: Optional[Dict[str, StrictStr]] = Field(default=None, description="Map of string keys and values that can be used to organize and categorize (scope and select) objects.")
+ generation: Optional[StrictInt] = Field(default=None, description="A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.")
+ owner: Optional[StrictStr] = Field(default=None, description="A resource that owns this resource, in \"kind/name\" format.")
+ annotations: Optional[Dict[str, StrictStr]] = Field(default=None, description="Properties set by the service.")
+ resource_version: Optional[StrictStr] = Field(default=None, description="An opaque string that identifies the server's internal version of an object.", alias="resourceVersion")
+ __properties: ClassVar[List[str]] = ["creationTimestamp", "deletionTimestamp", "name", "labels", "generation", "owner", "annotations", "resourceVersion"]
+
+ 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 ObjectMeta 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 ObjectMeta from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "creationTimestamp": obj.get("creationTimestamp"),
+ "deletionTimestamp": obj.get("deletionTimestamp"),
+ "name": obj.get("name"),
+ "labels": obj.get("labels"),
+ "generation": obj.get("generation"),
+ "owner": obj.get("owner"),
+ "annotations": obj.get("annotations"),
+ "resourceVersion": obj.get("resourceVersion")
+ })
+ return _obj
+
+
diff --git a/flightctl/imagebuilder/models/resource_kind.py b/flightctl/imagebuilder/models/resource_kind.py
new file mode 100644
index 0000000..d91ee88
--- /dev/null
+++ b/flightctl/imagebuilder/models/resource_kind.py
@@ -0,0 +1,38 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class ResourceKind(str, Enum):
+ """
+ Resource types exposed via the ImageBuilder API.
+ """
+
+ """
+ allowed enum values
+ """
+ IMAGEBUILD = 'ImageBuild'
+ IMAGEEXPORT = 'ImageExport'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ResourceKind from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/flightctl/imagebuilder/models/status.py b/flightctl/imagebuilder/models/status.py
new file mode 100644
index 0000000..6ada721
--- /dev/null
+++ b/flightctl/imagebuilder/models/status.py
@@ -0,0 +1,99 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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
+from flightctl.imagebuilder.models.api_version import ApiVersion
+from typing import Optional, Set
+from typing_extensions import Self
+
+class Status(BaseModel):
+ """
+ Status is a return value for calls that don't return other objects.
+ """ # noqa: E501
+ api_version: ApiVersion = Field(alias="apiVersion")
+ kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
+ code: StrictInt = Field(description="Suggested HTTP return code for this status, 0 if not set.")
+ message: StrictStr = Field(description="A human-readable description of the status of this operation.")
+ reason: StrictStr = Field(description="A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.")
+ status: StrictStr = Field(description="Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.")
+ __properties: ClassVar[List[str]] = ["apiVersion", "kind", "code", "message", "reason", "status"]
+
+ 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 Status 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 Status from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "apiVersion": obj.get("apiVersion"),
+ "kind": obj.get("kind"),
+ "code": obj.get("code"),
+ "message": obj.get("message"),
+ "reason": obj.get("reason"),
+ "status": obj.get("status")
+ })
+ return _obj
+
+
diff --git a/flightctl/imagebuilder/rest.py b/flightctl/imagebuilder/rest.py
new file mode 100644
index 0000000..bd020bc
--- /dev/null
+++ b/flightctl/imagebuilder/rest.py
@@ -0,0 +1,259 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import io
+import json
+import re
+import ssl
+
+import urllib3
+
+from flightctl.imagebuilder.exceptions import ApiException, ApiValueError
+
+SUPPORTED_SOCKS_PROXIES = {"socks5", "socks5h", "socks4", "socks4a"}
+RESTResponseType = urllib3.HTTPResponse
+
+
+def is_socks_proxy_url(url):
+ if url is None:
+ return False
+ split_section = url.split("://")
+ if len(split_section) < 2:
+ return False
+ else:
+ return split_section[0].lower() in SUPPORTED_SOCKS_PROXIES
+
+
+class RESTResponse(io.IOBase):
+
+ def __init__(self, resp) -> None:
+ self.response = resp
+ self.status = resp.status
+ self.reason = resp.reason
+ self.data = None
+
+ def read(self):
+ if self.data is None:
+ self.data = self.response.data
+ return self.data
+
+ def getheaders(self):
+ """Returns a dictionary of the response headers."""
+ return self.response.headers
+
+ def getheader(self, name, default=None):
+ """Returns a given response header."""
+ return self.response.headers.get(name, default)
+
+
+class RESTClientObject:
+
+ def __init__(self, configuration) -> None:
+ # urllib3.PoolManager will pass all kw parameters to connectionpool
+ # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/poolmanager.py#L75 # noqa: E501
+ # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/connectionpool.py#L680 # noqa: E501
+ # Custom SSL certificates and client certificates: http://urllib3.readthedocs.io/en/latest/advanced-usage.html # noqa: E501
+
+ # cert_reqs
+ if configuration.verify_ssl:
+ cert_reqs = ssl.CERT_REQUIRED
+ else:
+ cert_reqs = ssl.CERT_NONE
+
+ pool_args = {
+ "cert_reqs": cert_reqs,
+ "ca_certs": configuration.ssl_ca_cert,
+ "cert_file": configuration.cert_file,
+ "key_file": configuration.key_file,
+ "ca_cert_data": configuration.ca_cert_data,
+ }
+ if configuration.assert_hostname is not None:
+ pool_args['assert_hostname'] = (
+ configuration.assert_hostname
+ )
+
+ if configuration.retries is not None:
+ pool_args['retries'] = configuration.retries
+
+ if configuration.tls_server_name:
+ pool_args['server_hostname'] = configuration.tls_server_name
+
+
+ if configuration.socket_options is not None:
+ pool_args['socket_options'] = configuration.socket_options
+
+ if configuration.connection_pool_maxsize is not None:
+ pool_args['maxsize'] = configuration.connection_pool_maxsize
+
+ # https pool manager
+ self.pool_manager: urllib3.PoolManager
+
+ if configuration.proxy:
+ if is_socks_proxy_url(configuration.proxy):
+ from urllib3.contrib.socks import SOCKSProxyManager
+ pool_args["proxy_url"] = configuration.proxy
+ pool_args["headers"] = configuration.proxy_headers
+ self.pool_manager = SOCKSProxyManager(**pool_args)
+ else:
+ pool_args["proxy_url"] = configuration.proxy
+ pool_args["proxy_headers"] = configuration.proxy_headers
+ self.pool_manager = urllib3.ProxyManager(**pool_args)
+ else:
+ self.pool_manager = urllib3.PoolManager(**pool_args)
+
+ def request(
+ self,
+ method,
+ url,
+ headers=None,
+ body=None,
+ post_params=None,
+ _request_timeout=None
+ ):
+ """Perform requests.
+
+ :param method: http request method
+ :param url: http request url
+ :param headers: http request headers
+ :param body: request json body, for `application/json`
+ :param post_params: request post parameters,
+ `application/x-www-form-urlencoded`
+ and `multipart/form-data`
+ :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.
+ """
+ method = method.upper()
+ assert method in [
+ 'GET',
+ 'HEAD',
+ 'DELETE',
+ 'POST',
+ 'PUT',
+ 'PATCH',
+ 'OPTIONS'
+ ]
+
+ if post_params and body:
+ raise ApiValueError(
+ "body parameter cannot be used with post_params parameter."
+ )
+
+ post_params = post_params or {}
+ headers = headers or {}
+
+ timeout = None
+ if _request_timeout:
+ if isinstance(_request_timeout, (int, float)):
+ timeout = urllib3.Timeout(total=_request_timeout)
+ elif (
+ isinstance(_request_timeout, tuple)
+ and len(_request_timeout) == 2
+ ):
+ timeout = urllib3.Timeout(
+ connect=_request_timeout[0],
+ read=_request_timeout[1]
+ )
+
+ try:
+ # For `POST`, `PUT`, `PATCH`, `OPTIONS`, `DELETE`
+ if method in ['POST', 'PUT', 'PATCH', 'OPTIONS', 'DELETE']:
+
+ # no content type provided or payload is json
+ content_type = headers.get('Content-Type')
+ if (
+ not content_type
+ or re.search('json', content_type, re.IGNORECASE)
+ ):
+ request_body = None
+ if body is not None:
+ request_body = json.dumps(body)
+ r = self.pool_manager.request(
+ method,
+ url,
+ body=request_body,
+ timeout=timeout,
+ headers=headers,
+ preload_content=False
+ )
+ elif content_type == 'application/x-www-form-urlencoded':
+ r = self.pool_manager.request(
+ method,
+ url,
+ fields=post_params,
+ encode_multipart=False,
+ timeout=timeout,
+ headers=headers,
+ preload_content=False
+ )
+ elif content_type == 'multipart/form-data':
+ # must del headers['Content-Type'], or the correct
+ # Content-Type which generated by urllib3 will be
+ # overwritten.
+ del headers['Content-Type']
+ # Ensures that dict objects are serialized
+ post_params = [(a, json.dumps(b)) if isinstance(b, dict) else (a,b) for a, b in post_params]
+ r = self.pool_manager.request(
+ method,
+ url,
+ fields=post_params,
+ encode_multipart=True,
+ timeout=timeout,
+ headers=headers,
+ preload_content=False
+ )
+ # Pass a `string` parameter directly in the body to support
+ # other content types than JSON when `body` argument is
+ # provided in serialized form.
+ elif isinstance(body, str) or isinstance(body, bytes):
+ r = self.pool_manager.request(
+ method,
+ url,
+ body=body,
+ timeout=timeout,
+ headers=headers,
+ preload_content=False
+ )
+ elif headers['Content-Type'].startswith('text/') and isinstance(body, bool):
+ request_body = "true" if body else "false"
+ r = self.pool_manager.request(
+ method,
+ url,
+ body=request_body,
+ preload_content=False,
+ timeout=timeout,
+ headers=headers)
+ else:
+ # Cannot generate the request from given parameters
+ msg = """Cannot prepare a request message for provided
+ arguments. Please check that your arguments match
+ declared content type."""
+ raise ApiException(status=0, reason=msg)
+ # For `GET`, `HEAD`
+ else:
+ r = self.pool_manager.request(
+ method,
+ url,
+ fields={},
+ timeout=timeout,
+ headers=headers,
+ preload_content=False
+ )
+ except urllib3.exceptions.SSLError as e:
+ msg = "\n".join([type(e).__name__, str(e)])
+ raise ApiException(status=0, reason=msg)
+
+ return RESTResponse(r)
diff --git a/flightctl/imagebuilder/test/__init__.py b/flightctl/imagebuilder/test/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/flightctl/imagebuilder/test/test_api_version.py b/flightctl/imagebuilder/test/test_api_version.py
new file mode 100644
index 0000000..c084323
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_api_version.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.api_version import ApiVersion
+
+class TestApiVersion(unittest.TestCase):
+ """ApiVersion unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testApiVersion(self):
+ """Test ApiVersion"""
+ # inst = ApiVersion()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_binding_type.py b/flightctl/imagebuilder/test/test_binding_type.py
new file mode 100644
index 0000000..fd18dc0
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_binding_type.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.binding_type import BindingType
+
+class TestBindingType(unittest.TestCase):
+ """BindingType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testBindingType(self):
+ """Test BindingType"""
+ # inst = BindingType()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_condition_base.py b/flightctl/imagebuilder/test/test_condition_base.py
new file mode 100644
index 0000000..8c9642c
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_condition_base.py
@@ -0,0 +1,60 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.condition_base import ConditionBase
+
+class TestConditionBase(unittest.TestCase):
+ """ConditionBase unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ConditionBase:
+ """Test ConditionBase
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ConditionBase`
+ """
+ model = ConditionBase()
+ if include_optional:
+ return ConditionBase(
+ status = 'True',
+ observed_generation = 56,
+ last_transition_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ message = '',
+ reason = ''
+ )
+ else:
+ return ConditionBase(
+ status = 'True',
+ last_transition_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ message = '',
+ reason = '',
+ )
+ """
+
+ def testConditionBase(self):
+ """Test ConditionBase"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_condition_status.py b/flightctl/imagebuilder/test/test_condition_status.py
new file mode 100644
index 0000000..ea4f4d3
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_condition_status.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.condition_status import ConditionStatus
+
+class TestConditionStatus(unittest.TestCase):
+ """ConditionStatus unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testConditionStatus(self):
+ """Test ConditionStatus"""
+ # inst = ConditionStatus()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_early_binding.py b/flightctl/imagebuilder/test/test_early_binding.py
new file mode 100644
index 0000000..7c61297
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_early_binding.py
@@ -0,0 +1,53 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.early_binding import EarlyBinding
+
+class TestEarlyBinding(unittest.TestCase):
+ """EarlyBinding unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> EarlyBinding:
+ """Test EarlyBinding
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `EarlyBinding`
+ """
+ model = EarlyBinding()
+ if include_optional:
+ return EarlyBinding(
+ type = 'early'
+ )
+ else:
+ return EarlyBinding(
+ type = 'early',
+ )
+ """
+
+ def testEarlyBinding(self):
+ """Test EarlyBinding"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_export_format_type.py b/flightctl/imagebuilder/test/test_export_format_type.py
new file mode 100644
index 0000000..83505a3
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_export_format_type.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.export_format_type import ExportFormatType
+
+class TestExportFormatType(unittest.TestCase):
+ """ExportFormatType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testExportFormatType(self):
+ """Test ExportFormatType"""
+ # inst = ExportFormatType()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_image_build.py b/flightctl/imagebuilder/test/test_image_build.py
new file mode 100644
index 0000000..530e902
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_image_build.py
@@ -0,0 +1,144 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.image_build import ImageBuild
+
+class TestImageBuild(unittest.TestCase):
+ """ImageBuild unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ImageBuild:
+ """Test ImageBuild
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ImageBuild`
+ """
+ model = ImageBuild()
+ if include_optional:
+ return ImageBuild(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.imagebuilder.models.object_meta.ObjectMeta(
+ creation_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ deletion_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ name = '',
+ labels = {
+ 'key' : ''
+ },
+ generation = 56,
+ owner = '',
+ annotations = {
+ 'key' : ''
+ },
+ resource_version = '', ),
+ spec = flightctl.imagebuilder.models.image_build_spec.ImageBuildSpec(
+ source = flightctl.imagebuilder.models.image_build_source.ImageBuildSource(
+ repository = '',
+ image_name = '',
+ image_tag = '', ),
+ destination = flightctl.imagebuilder.models.image_build_destination.ImageBuildDestination(
+ repository = '',
+ image_name = '',
+ image_tag = '', ),
+ binding = null,
+ user_configuration = flightctl.imagebuilder.models.image_build_user_configuration.ImageBuildUserConfiguration(
+ username = '',
+ publickey = '', ), ),
+ status = flightctl.imagebuilder.models.image_build_status.ImageBuildStatus(
+ conditions = [
+ null
+ ],
+ image_reference = '',
+ architecture = '',
+ manifest_digest = '',
+ last_seen = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ),
+ imageexports = [
+ flightctl.imagebuilder.models.image_export.ImageExport(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.imagebuilder.models.object_meta.ObjectMeta(
+ creation_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ deletion_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ name = '',
+ labels = {
+ 'key' : ''
+ },
+ generation = 56,
+ owner = '',
+ annotations = {
+ 'key' : ''
+ },
+ resource_version = '', ),
+ spec = flightctl.imagebuilder.models.image_export_spec.ImageExportSpec(
+ source = flightctl.imagebuilder.models.image_build_ref_source.ImageBuildRefSource(
+ type = 'imageBuild',
+ image_build_ref = '', ),
+ format = 'vmdk', ),
+ status = flightctl.imagebuilder.models.image_export_status.ImageExportStatus(
+ conditions = [
+ null
+ ],
+ manifest_digest = '',
+ last_seen = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
+ ]
+ )
+ else:
+ return ImageBuild(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.imagebuilder.models.object_meta.ObjectMeta(
+ creation_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ deletion_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ name = '',
+ labels = {
+ 'key' : ''
+ },
+ generation = 56,
+ owner = '',
+ annotations = {
+ 'key' : ''
+ },
+ resource_version = '', ),
+ spec = flightctl.imagebuilder.models.image_build_spec.ImageBuildSpec(
+ source = flightctl.imagebuilder.models.image_build_source.ImageBuildSource(
+ repository = '',
+ image_name = '',
+ image_tag = '', ),
+ destination = flightctl.imagebuilder.models.image_build_destination.ImageBuildDestination(
+ repository = '',
+ image_name = '',
+ image_tag = '', ),
+ binding = null,
+ user_configuration = flightctl.imagebuilder.models.image_build_user_configuration.ImageBuildUserConfiguration(
+ username = '',
+ publickey = '', ), ),
+ )
+ """
+
+ def testImageBuild(self):
+ """Test ImageBuild"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_image_build_binding.py b/flightctl/imagebuilder/test/test_image_build_binding.py
new file mode 100644
index 0000000..c4845f3
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_image_build_binding.py
@@ -0,0 +1,53 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.image_build_binding import ImageBuildBinding
+
+class TestImageBuildBinding(unittest.TestCase):
+ """ImageBuildBinding unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ImageBuildBinding:
+ """Test ImageBuildBinding
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ImageBuildBinding`
+ """
+ model = ImageBuildBinding()
+ if include_optional:
+ return ImageBuildBinding(
+ type = 'early'
+ )
+ else:
+ return ImageBuildBinding(
+ type = 'early',
+ )
+ """
+
+ def testImageBuildBinding(self):
+ """Test ImageBuildBinding"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_image_build_condition.py b/flightctl/imagebuilder/test/test_image_build_condition.py
new file mode 100644
index 0000000..2e553aa
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_image_build_condition.py
@@ -0,0 +1,62 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.image_build_condition import ImageBuildCondition
+
+class TestImageBuildCondition(unittest.TestCase):
+ """ImageBuildCondition unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ImageBuildCondition:
+ """Test ImageBuildCondition
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ImageBuildCondition`
+ """
+ model = ImageBuildCondition()
+ if include_optional:
+ return ImageBuildCondition(
+ status = 'True',
+ observed_generation = 56,
+ last_transition_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ message = '',
+ reason = '',
+ type = 'Ready'
+ )
+ else:
+ return ImageBuildCondition(
+ status = 'True',
+ last_transition_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ message = '',
+ reason = '',
+ type = 'Ready',
+ )
+ """
+
+ def testImageBuildCondition(self):
+ """Test ImageBuildCondition"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_image_build_condition_reason.py b/flightctl/imagebuilder/test/test_image_build_condition_reason.py
new file mode 100644
index 0000000..75677c9
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_image_build_condition_reason.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.image_build_condition_reason import ImageBuildConditionReason
+
+class TestImageBuildConditionReason(unittest.TestCase):
+ """ImageBuildConditionReason unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testImageBuildConditionReason(self):
+ """Test ImageBuildConditionReason"""
+ # inst = ImageBuildConditionReason()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_image_build_condition_type.py b/flightctl/imagebuilder/test/test_image_build_condition_type.py
new file mode 100644
index 0000000..fc2dd88
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_image_build_condition_type.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.image_build_condition_type import ImageBuildConditionType
+
+class TestImageBuildConditionType(unittest.TestCase):
+ """ImageBuildConditionType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testImageBuildConditionType(self):
+ """Test ImageBuildConditionType"""
+ # inst = ImageBuildConditionType()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_image_build_destination.py b/flightctl/imagebuilder/test/test_image_build_destination.py
new file mode 100644
index 0000000..89006f5
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_image_build_destination.py
@@ -0,0 +1,57 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.image_build_destination import ImageBuildDestination
+
+class TestImageBuildDestination(unittest.TestCase):
+ """ImageBuildDestination unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ImageBuildDestination:
+ """Test ImageBuildDestination
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ImageBuildDestination`
+ """
+ model = ImageBuildDestination()
+ if include_optional:
+ return ImageBuildDestination(
+ repository = '',
+ image_name = '',
+ image_tag = ''
+ )
+ else:
+ return ImageBuildDestination(
+ repository = '',
+ image_name = '',
+ image_tag = '',
+ )
+ """
+
+ def testImageBuildDestination(self):
+ """Test ImageBuildDestination"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_image_build_list.py b/flightctl/imagebuilder/test/test_image_build_list.py
new file mode 100644
index 0000000..5db0e77
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_image_build_list.py
@@ -0,0 +1,173 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.image_build_list import ImageBuildList
+
+class TestImageBuildList(unittest.TestCase):
+ """ImageBuildList unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ImageBuildList:
+ """Test ImageBuildList
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ImageBuildList`
+ """
+ model = ImageBuildList()
+ if include_optional:
+ return ImageBuildList(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.imagebuilder.models.list_meta.ListMeta(
+ continue = '',
+ remaining_item_count = 56, ),
+ items = [
+ flightctl.imagebuilder.models.image_build.ImageBuild(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.imagebuilder.models.object_meta.ObjectMeta(
+ creation_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ deletion_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ name = '',
+ labels = {
+ 'key' : ''
+ },
+ generation = 56,
+ owner = '',
+ annotations = {
+ 'key' : ''
+ },
+ resource_version = '', ),
+ spec = flightctl.imagebuilder.models.image_build_spec.ImageBuildSpec(
+ source = flightctl.imagebuilder.models.image_build_source.ImageBuildSource(
+ repository = '',
+ image_name = '',
+ image_tag = '', ),
+ destination = flightctl.imagebuilder.models.image_build_destination.ImageBuildDestination(
+ repository = '',
+ image_name = '',
+ image_tag = '', ),
+ binding = null,
+ user_configuration = flightctl.imagebuilder.models.image_build_user_configuration.ImageBuildUserConfiguration(
+ username = '',
+ publickey = '', ), ),
+ status = flightctl.imagebuilder.models.image_build_status.ImageBuildStatus(
+ conditions = [
+ null
+ ],
+ image_reference = '',
+ architecture = '',
+ manifest_digest = '',
+ last_seen = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ),
+ imageexports = [
+ flightctl.imagebuilder.models.image_export.ImageExport(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.imagebuilder.models.object_meta.ObjectMeta(
+ creation_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ deletion_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ name = '',
+ generation = 56,
+ owner = '',
+ resource_version = '', ),
+ spec = flightctl.imagebuilder.models.image_export_spec.ImageExportSpec(
+ source = flightctl.imagebuilder.models.image_build_ref_source.ImageBuildRefSource(
+ type = 'imageBuild',
+ image_build_ref = '', ),
+ format = 'vmdk', ), )
+ ], )
+ ]
+ )
+ else:
+ return ImageBuildList(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.imagebuilder.models.list_meta.ListMeta(
+ continue = '',
+ remaining_item_count = 56, ),
+ items = [
+ flightctl.imagebuilder.models.image_build.ImageBuild(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.imagebuilder.models.object_meta.ObjectMeta(
+ creation_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ deletion_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ name = '',
+ labels = {
+ 'key' : ''
+ },
+ generation = 56,
+ owner = '',
+ annotations = {
+ 'key' : ''
+ },
+ resource_version = '', ),
+ spec = flightctl.imagebuilder.models.image_build_spec.ImageBuildSpec(
+ source = flightctl.imagebuilder.models.image_build_source.ImageBuildSource(
+ repository = '',
+ image_name = '',
+ image_tag = '', ),
+ destination = flightctl.imagebuilder.models.image_build_destination.ImageBuildDestination(
+ repository = '',
+ image_name = '',
+ image_tag = '', ),
+ binding = null,
+ user_configuration = flightctl.imagebuilder.models.image_build_user_configuration.ImageBuildUserConfiguration(
+ username = '',
+ publickey = '', ), ),
+ status = flightctl.imagebuilder.models.image_build_status.ImageBuildStatus(
+ conditions = [
+ null
+ ],
+ image_reference = '',
+ architecture = '',
+ manifest_digest = '',
+ last_seen = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ),
+ imageexports = [
+ flightctl.imagebuilder.models.image_export.ImageExport(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.imagebuilder.models.object_meta.ObjectMeta(
+ creation_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ deletion_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ name = '',
+ generation = 56,
+ owner = '',
+ resource_version = '', ),
+ spec = flightctl.imagebuilder.models.image_export_spec.ImageExportSpec(
+ source = flightctl.imagebuilder.models.image_build_ref_source.ImageBuildRefSource(
+ type = 'imageBuild',
+ image_build_ref = '', ),
+ format = 'vmdk', ), )
+ ], )
+ ],
+ )
+ """
+
+ def testImageBuildList(self):
+ """Test ImageBuildList"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_image_build_ref_source.py b/flightctl/imagebuilder/test/test_image_build_ref_source.py
new file mode 100644
index 0000000..652dbab
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_image_build_ref_source.py
@@ -0,0 +1,55 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.image_build_ref_source import ImageBuildRefSource
+
+class TestImageBuildRefSource(unittest.TestCase):
+ """ImageBuildRefSource unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ImageBuildRefSource:
+ """Test ImageBuildRefSource
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ImageBuildRefSource`
+ """
+ model = ImageBuildRefSource()
+ if include_optional:
+ return ImageBuildRefSource(
+ type = 'imageBuild',
+ image_build_ref = ''
+ )
+ else:
+ return ImageBuildRefSource(
+ type = 'imageBuild',
+ image_build_ref = '',
+ )
+ """
+
+ def testImageBuildRefSource(self):
+ """Test ImageBuildRefSource"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_image_build_source.py b/flightctl/imagebuilder/test/test_image_build_source.py
new file mode 100644
index 0000000..2a4b312
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_image_build_source.py
@@ -0,0 +1,57 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.image_build_source import ImageBuildSource
+
+class TestImageBuildSource(unittest.TestCase):
+ """ImageBuildSource unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ImageBuildSource:
+ """Test ImageBuildSource
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ImageBuildSource`
+ """
+ model = ImageBuildSource()
+ if include_optional:
+ return ImageBuildSource(
+ repository = '',
+ image_name = '',
+ image_tag = ''
+ )
+ else:
+ return ImageBuildSource(
+ repository = '',
+ image_name = '',
+ image_tag = '',
+ )
+ """
+
+ def testImageBuildSource(self):
+ """Test ImageBuildSource"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_image_build_spec.py b/flightctl/imagebuilder/test/test_image_build_spec.py
new file mode 100644
index 0000000..888c2ce
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_image_build_spec.py
@@ -0,0 +1,72 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.image_build_spec import ImageBuildSpec
+
+class TestImageBuildSpec(unittest.TestCase):
+ """ImageBuildSpec unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ImageBuildSpec:
+ """Test ImageBuildSpec
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ImageBuildSpec`
+ """
+ model = ImageBuildSpec()
+ if include_optional:
+ return ImageBuildSpec(
+ source = flightctl.imagebuilder.models.image_build_source.ImageBuildSource(
+ repository = '',
+ image_name = '',
+ image_tag = '', ),
+ destination = flightctl.imagebuilder.models.image_build_destination.ImageBuildDestination(
+ repository = '',
+ image_name = '',
+ image_tag = '', ),
+ binding = None,
+ user_configuration = flightctl.imagebuilder.models.image_build_user_configuration.ImageBuildUserConfiguration(
+ username = '',
+ publickey = '', )
+ )
+ else:
+ return ImageBuildSpec(
+ source = flightctl.imagebuilder.models.image_build_source.ImageBuildSource(
+ repository = '',
+ image_name = '',
+ image_tag = '', ),
+ destination = flightctl.imagebuilder.models.image_build_destination.ImageBuildDestination(
+ repository = '',
+ image_name = '',
+ image_tag = '', ),
+ binding = None,
+ )
+ """
+
+ def testImageBuildSpec(self):
+ """Test ImageBuildSpec"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_image_build_status.py b/flightctl/imagebuilder/test/test_image_build_status.py
new file mode 100644
index 0000000..04b28c4
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_image_build_status.py
@@ -0,0 +1,58 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.image_build_status import ImageBuildStatus
+
+class TestImageBuildStatus(unittest.TestCase):
+ """ImageBuildStatus unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ImageBuildStatus:
+ """Test ImageBuildStatus
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ImageBuildStatus`
+ """
+ model = ImageBuildStatus()
+ if include_optional:
+ return ImageBuildStatus(
+ conditions = [
+ null
+ ],
+ image_reference = '',
+ architecture = '',
+ manifest_digest = '',
+ last_seen = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
+ )
+ else:
+ return ImageBuildStatus(
+ )
+ """
+
+ def testImageBuildStatus(self):
+ """Test ImageBuildStatus"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_image_build_user_configuration.py b/flightctl/imagebuilder/test/test_image_build_user_configuration.py
new file mode 100644
index 0000000..244274b
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_image_build_user_configuration.py
@@ -0,0 +1,55 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.image_build_user_configuration import ImageBuildUserConfiguration
+
+class TestImageBuildUserConfiguration(unittest.TestCase):
+ """ImageBuildUserConfiguration unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ImageBuildUserConfiguration:
+ """Test ImageBuildUserConfiguration
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ImageBuildUserConfiguration`
+ """
+ model = ImageBuildUserConfiguration()
+ if include_optional:
+ return ImageBuildUserConfiguration(
+ username = '',
+ publickey = ''
+ )
+ else:
+ return ImageBuildUserConfiguration(
+ username = '',
+ publickey = '',
+ )
+ """
+
+ def testImageBuildUserConfiguration(self):
+ """Test ImageBuildUserConfiguration"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_image_export.py b/flightctl/imagebuilder/test/test_image_export.py
new file mode 100644
index 0000000..10ebc59
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_image_export.py
@@ -0,0 +1,97 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.image_export import ImageExport
+
+class TestImageExport(unittest.TestCase):
+ """ImageExport unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ImageExport:
+ """Test ImageExport
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ImageExport`
+ """
+ model = ImageExport()
+ if include_optional:
+ return ImageExport(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.imagebuilder.models.object_meta.ObjectMeta(
+ creation_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ deletion_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ name = '',
+ labels = {
+ 'key' : ''
+ },
+ generation = 56,
+ owner = '',
+ annotations = {
+ 'key' : ''
+ },
+ resource_version = '', ),
+ spec = flightctl.imagebuilder.models.image_export_spec.ImageExportSpec(
+ source = flightctl.imagebuilder.models.image_build_ref_source.ImageBuildRefSource(
+ type = 'imageBuild',
+ image_build_ref = '', ),
+ format = 'vmdk', ),
+ status = flightctl.imagebuilder.models.image_export_status.ImageExportStatus(
+ conditions = [
+ null
+ ],
+ manifest_digest = '',
+ last_seen = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ )
+ else:
+ return ImageExport(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.imagebuilder.models.object_meta.ObjectMeta(
+ creation_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ deletion_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ name = '',
+ labels = {
+ 'key' : ''
+ },
+ generation = 56,
+ owner = '',
+ annotations = {
+ 'key' : ''
+ },
+ resource_version = '', ),
+ spec = flightctl.imagebuilder.models.image_export_spec.ImageExportSpec(
+ source = flightctl.imagebuilder.models.image_build_ref_source.ImageBuildRefSource(
+ type = 'imageBuild',
+ image_build_ref = '', ),
+ format = 'vmdk', ),
+ )
+ """
+
+ def testImageExport(self):
+ """Test ImageExport"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_image_export_condition.py b/flightctl/imagebuilder/test/test_image_export_condition.py
new file mode 100644
index 0000000..c39e917
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_image_export_condition.py
@@ -0,0 +1,62 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.image_export_condition import ImageExportCondition
+
+class TestImageExportCondition(unittest.TestCase):
+ """ImageExportCondition unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ImageExportCondition:
+ """Test ImageExportCondition
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ImageExportCondition`
+ """
+ model = ImageExportCondition()
+ if include_optional:
+ return ImageExportCondition(
+ status = 'True',
+ observed_generation = 56,
+ last_transition_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ message = '',
+ reason = '',
+ type = 'Ready'
+ )
+ else:
+ return ImageExportCondition(
+ status = 'True',
+ last_transition_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ message = '',
+ reason = '',
+ type = 'Ready',
+ )
+ """
+
+ def testImageExportCondition(self):
+ """Test ImageExportCondition"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_image_export_condition_reason.py b/flightctl/imagebuilder/test/test_image_export_condition_reason.py
new file mode 100644
index 0000000..ab9f841
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_image_export_condition_reason.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.image_export_condition_reason import ImageExportConditionReason
+
+class TestImageExportConditionReason(unittest.TestCase):
+ """ImageExportConditionReason unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testImageExportConditionReason(self):
+ """Test ImageExportConditionReason"""
+ # inst = ImageExportConditionReason()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_image_export_condition_type.py b/flightctl/imagebuilder/test/test_image_export_condition_type.py
new file mode 100644
index 0000000..c438a31
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_image_export_condition_type.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.image_export_condition_type import ImageExportConditionType
+
+class TestImageExportConditionType(unittest.TestCase):
+ """ImageExportConditionType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testImageExportConditionType(self):
+ """Test ImageExportConditionType"""
+ # inst = ImageExportConditionType()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_image_export_format_phase.py b/flightctl/imagebuilder/test/test_image_export_format_phase.py
new file mode 100644
index 0000000..6b6dcce
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_image_export_format_phase.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.image_export_format_phase import ImageExportFormatPhase
+
+class TestImageExportFormatPhase(unittest.TestCase):
+ """ImageExportFormatPhase unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testImageExportFormatPhase(self):
+ """Test ImageExportFormatPhase"""
+ # inst = ImageExportFormatPhase()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_image_export_list.py b/flightctl/imagebuilder/test/test_image_export_list.py
new file mode 100644
index 0000000..1e8830b
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_image_export_list.py
@@ -0,0 +1,119 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.image_export_list import ImageExportList
+
+class TestImageExportList(unittest.TestCase):
+ """ImageExportList unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ImageExportList:
+ """Test ImageExportList
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ImageExportList`
+ """
+ model = ImageExportList()
+ if include_optional:
+ return ImageExportList(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.imagebuilder.models.list_meta.ListMeta(
+ continue = '',
+ remaining_item_count = 56, ),
+ items = [
+ flightctl.imagebuilder.models.image_export.ImageExport(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.imagebuilder.models.object_meta.ObjectMeta(
+ creation_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ deletion_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ name = '',
+ labels = {
+ 'key' : ''
+ },
+ generation = 56,
+ owner = '',
+ annotations = {
+ 'key' : ''
+ },
+ resource_version = '', ),
+ spec = flightctl.imagebuilder.models.image_export_spec.ImageExportSpec(
+ source = flightctl.imagebuilder.models.image_build_ref_source.ImageBuildRefSource(
+ type = 'imageBuild',
+ image_build_ref = '', ),
+ format = 'vmdk', ),
+ status = flightctl.imagebuilder.models.image_export_status.ImageExportStatus(
+ conditions = [
+ null
+ ],
+ manifest_digest = '',
+ last_seen = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
+ ]
+ )
+ else:
+ return ImageExportList(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.imagebuilder.models.list_meta.ListMeta(
+ continue = '',
+ remaining_item_count = 56, ),
+ items = [
+ flightctl.imagebuilder.models.image_export.ImageExport(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.imagebuilder.models.object_meta.ObjectMeta(
+ creation_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ deletion_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ name = '',
+ labels = {
+ 'key' : ''
+ },
+ generation = 56,
+ owner = '',
+ annotations = {
+ 'key' : ''
+ },
+ resource_version = '', ),
+ spec = flightctl.imagebuilder.models.image_export_spec.ImageExportSpec(
+ source = flightctl.imagebuilder.models.image_build_ref_source.ImageBuildRefSource(
+ type = 'imageBuild',
+ image_build_ref = '', ),
+ format = 'vmdk', ),
+ status = flightctl.imagebuilder.models.image_export_status.ImageExportStatus(
+ conditions = [
+ null
+ ],
+ manifest_digest = '',
+ last_seen = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
+ ],
+ )
+ """
+
+ def testImageExportList(self):
+ """Test ImageExportList"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_image_export_source_type.py b/flightctl/imagebuilder/test/test_image_export_source_type.py
new file mode 100644
index 0000000..0bf4cb4
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_image_export_source_type.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.image_export_source_type import ImageExportSourceType
+
+class TestImageExportSourceType(unittest.TestCase):
+ """ImageExportSourceType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testImageExportSourceType(self):
+ """Test ImageExportSourceType"""
+ # inst = ImageExportSourceType()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_image_export_spec.py b/flightctl/imagebuilder/test/test_image_export_spec.py
new file mode 100644
index 0000000..5abad40
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_image_export_spec.py
@@ -0,0 +1,59 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.image_export_spec import ImageExportSpec
+
+class TestImageExportSpec(unittest.TestCase):
+ """ImageExportSpec unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ImageExportSpec:
+ """Test ImageExportSpec
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ImageExportSpec`
+ """
+ model = ImageExportSpec()
+ if include_optional:
+ return ImageExportSpec(
+ source = flightctl.imagebuilder.models.image_build_ref_source.ImageBuildRefSource(
+ type = 'imageBuild',
+ image_build_ref = '', ),
+ format = 'vmdk'
+ )
+ else:
+ return ImageExportSpec(
+ source = flightctl.imagebuilder.models.image_build_ref_source.ImageBuildRefSource(
+ type = 'imageBuild',
+ image_build_ref = '', ),
+ format = 'vmdk',
+ )
+ """
+
+ def testImageExportSpec(self):
+ """Test ImageExportSpec"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_image_export_status.py b/flightctl/imagebuilder/test/test_image_export_status.py
new file mode 100644
index 0000000..4dcd1e9
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_image_export_status.py
@@ -0,0 +1,56 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.image_export_status import ImageExportStatus
+
+class TestImageExportStatus(unittest.TestCase):
+ """ImageExportStatus unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ImageExportStatus:
+ """Test ImageExportStatus
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ImageExportStatus`
+ """
+ model = ImageExportStatus()
+ if include_optional:
+ return ImageExportStatus(
+ conditions = [
+ null
+ ],
+ manifest_digest = '',
+ last_seen = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
+ )
+ else:
+ return ImageExportStatus(
+ )
+ """
+
+ def testImageExportStatus(self):
+ """Test ImageExportStatus"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_imagebuild_api.py b/flightctl/imagebuilder/test/test_imagebuild_api.py
new file mode 100644
index 0000000..6dab7b2
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_imagebuild_api.py
@@ -0,0 +1,68 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.api.imagebuild_api import ImagebuildApi
+
+
+class TestImagebuildApi(unittest.TestCase):
+ """ImagebuildApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = ImagebuildApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_cancel_image_build(self) -> None:
+ """Test case for cancel_image_build
+
+ """
+ pass
+
+ def test_create_image_build(self) -> None:
+ """Test case for create_image_build
+
+ """
+ pass
+
+ def test_delete_image_build(self) -> None:
+ """Test case for delete_image_build
+
+ """
+ pass
+
+ def test_get_image_build(self) -> None:
+ """Test case for get_image_build
+
+ """
+ pass
+
+ def test_get_image_build_log(self) -> None:
+ """Test case for get_image_build_log
+
+ """
+ pass
+
+ def test_list_image_builds(self) -> None:
+ """Test case for list_image_builds
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_imageexport_api.py b/flightctl/imagebuilder/test/test_imageexport_api.py
new file mode 100644
index 0000000..756684b
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_imageexport_api.py
@@ -0,0 +1,74 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.api.imageexport_api import ImageexportApi
+
+
+class TestImageexportApi(unittest.TestCase):
+ """ImageexportApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = ImageexportApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_cancel_image_export(self) -> None:
+ """Test case for cancel_image_export
+
+ """
+ pass
+
+ def test_create_image_export(self) -> None:
+ """Test case for create_image_export
+
+ """
+ pass
+
+ def test_delete_image_export(self) -> None:
+ """Test case for delete_image_export
+
+ """
+ pass
+
+ def test_download_image_export(self) -> None:
+ """Test case for download_image_export
+
+ """
+ pass
+
+ def test_get_image_export(self) -> None:
+ """Test case for get_image_export
+
+ """
+ pass
+
+ def test_get_image_export_log(self) -> None:
+ """Test case for get_image_export_log
+
+ """
+ pass
+
+ def test_list_image_exports(self) -> None:
+ """Test case for list_image_exports
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_late_binding.py b/flightctl/imagebuilder/test/test_late_binding.py
new file mode 100644
index 0000000..e01a4fa
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_late_binding.py
@@ -0,0 +1,53 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.late_binding import LateBinding
+
+class TestLateBinding(unittest.TestCase):
+ """LateBinding unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> LateBinding:
+ """Test LateBinding
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `LateBinding`
+ """
+ model = LateBinding()
+ if include_optional:
+ return LateBinding(
+ type = 'late'
+ )
+ else:
+ return LateBinding(
+ type = 'late',
+ )
+ """
+
+ def testLateBinding(self):
+ """Test LateBinding"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_list_meta.py b/flightctl/imagebuilder/test/test_list_meta.py
new file mode 100644
index 0000000..885f594
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_list_meta.py
@@ -0,0 +1,53 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.list_meta import ListMeta
+
+class TestListMeta(unittest.TestCase):
+ """ListMeta unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ListMeta:
+ """Test ListMeta
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ListMeta`
+ """
+ model = ListMeta()
+ if include_optional:
+ return ListMeta(
+ var_continue = '',
+ remaining_item_count = 56
+ )
+ else:
+ return ListMeta(
+ )
+ """
+
+ def testListMeta(self):
+ """Test ListMeta"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_object_meta.py b/flightctl/imagebuilder/test/test_object_meta.py
new file mode 100644
index 0000000..ec7d25e
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_object_meta.py
@@ -0,0 +1,63 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.object_meta import ObjectMeta
+
+class TestObjectMeta(unittest.TestCase):
+ """ObjectMeta unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ObjectMeta:
+ """Test ObjectMeta
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ObjectMeta`
+ """
+ model = ObjectMeta()
+ if include_optional:
+ return ObjectMeta(
+ creation_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ deletion_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ name = '',
+ labels = {
+ 'key' : ''
+ },
+ generation = 56,
+ owner = '',
+ annotations = {
+ 'key' : ''
+ },
+ resource_version = ''
+ )
+ else:
+ return ObjectMeta(
+ )
+ """
+
+ def testObjectMeta(self):
+ """Test ObjectMeta"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_resource_kind.py b/flightctl/imagebuilder/test/test_resource_kind.py
new file mode 100644
index 0000000..f098156
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_resource_kind.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.resource_kind import ResourceKind
+
+class TestResourceKind(unittest.TestCase):
+ """ResourceKind unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testResourceKind(self):
+ """Test ResourceKind"""
+ # inst = ResourceKind()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder/test/test_status.py b/flightctl/imagebuilder/test/test_status.py
new file mode 100644
index 0000000..ce0a56c
--- /dev/null
+++ b/flightctl/imagebuilder/test/test_status.py
@@ -0,0 +1,63 @@
+# coding: utf-8
+
+"""
+ Flight Control Image Builder API
+
+ Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.imagebuilder.models.status import Status
+
+class TestStatus(unittest.TestCase):
+ """Status unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> Status:
+ """Test Status
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `Status`
+ """
+ model = Status()
+ if include_optional:
+ return Status(
+ api_version = 'v1alpha1',
+ kind = '',
+ code = 56,
+ message = '',
+ reason = '',
+ status = ''
+ )
+ else:
+ return Status(
+ api_version = 'v1alpha1',
+ kind = '',
+ code = 56,
+ message = '',
+ reason = '',
+ status = '',
+ )
+ """
+
+ def testStatus(self):
+ """Test Status"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/imagebuilder_README.md b/flightctl/imagebuilder_README.md
new file mode 100644
index 0000000..f6b9000
--- /dev/null
+++ b/flightctl/imagebuilder_README.md
@@ -0,0 +1,140 @@
+# flightctl.imagebuilder
+Image Builder service for Flight Control. This service manages image build resources for building and pushing container images.
+
+The `flightctl.imagebuilder` package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
+
+- API version: v1alpha1
+- Package version: 1.1.0
+- Generator version: 7.17.0
+- Build package: org.openapitools.codegen.languages.PythonClientCodegen
+For more information, please visit [https://flightctl.io](https://flightctl.io)
+
+## Requirements.
+
+Python 3.9+
+
+## Installation & Usage
+
+This python library package is generated without supporting files like setup.py or requirements files
+
+To be able to use it, you will need these dependencies in your own package that uses this library:
+
+* urllib3 >= 2.1.0, < 3.0.0
+* python-dateutil >= 2.8.2
+* pydantic >= 2
+* typing-extensions >= 4.7.1
+
+## Getting Started
+
+In your own code, to use this library to connect and interact with flightctl.imagebuilder,
+you can run the following:
+
+```python
+
+import flightctl.imagebuilder
+from flightctl.imagebuilder.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.imagebuilder.Configuration(
+ host = "http://localhost"
+)
+
+
+
+# Enter a context with an instance of the API client
+with flightctl.imagebuilder.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.imagebuilder.ImagebuildApi(api_client)
+ name = 'name_example' # str | The name of the ImageBuild resource to cancel.
+
+ try:
+ api_response = api_instance.cancel_image_build(name)
+ print("The response of ImagebuildApi->cancel_image_build:\n")
+ pprint(api_response)
+ except ApiException as e:
+ print("Exception when calling ImagebuildApi->cancel_image_build: %s\n" % e)
+
+```
+
+## Documentation for API Endpoints
+
+All URIs are relative to *http://localhost*
+
+Class | Method | HTTP request | Description
+------------ | ------------- | ------------- | -------------
+*ImagebuildApi* | [**cancel_image_build**](flightctl/imagebuilder/docs/ImagebuildApi.md#cancel_image_build) | **POST** /api/v1/imagebuilds/{name}/cancel |
+*ImagebuildApi* | [**create_image_build**](flightctl/imagebuilder/docs/ImagebuildApi.md#create_image_build) | **POST** /api/v1/imagebuilds |
+*ImagebuildApi* | [**delete_image_build**](flightctl/imagebuilder/docs/ImagebuildApi.md#delete_image_build) | **DELETE** /api/v1/imagebuilds/{name} |
+*ImagebuildApi* | [**get_image_build**](flightctl/imagebuilder/docs/ImagebuildApi.md#get_image_build) | **GET** /api/v1/imagebuilds/{name} |
+*ImagebuildApi* | [**get_image_build_log**](flightctl/imagebuilder/docs/ImagebuildApi.md#get_image_build_log) | **GET** /api/v1/imagebuilds/{name}/log |
+*ImagebuildApi* | [**list_image_builds**](flightctl/imagebuilder/docs/ImagebuildApi.md#list_image_builds) | **GET** /api/v1/imagebuilds |
+*ImageexportApi* | [**cancel_image_export**](flightctl/imagebuilder/docs/ImageexportApi.md#cancel_image_export) | **POST** /api/v1/imageexports/{name}/cancel |
+*ImageexportApi* | [**create_image_export**](flightctl/imagebuilder/docs/ImageexportApi.md#create_image_export) | **POST** /api/v1/imageexports |
+*ImageexportApi* | [**delete_image_export**](flightctl/imagebuilder/docs/ImageexportApi.md#delete_image_export) | **DELETE** /api/v1/imageexports/{name} |
+*ImageexportApi* | [**download_image_export**](flightctl/imagebuilder/docs/ImageexportApi.md#download_image_export) | **GET** /api/v1/imageexports/{name}/download |
+*ImageexportApi* | [**get_image_export**](flightctl/imagebuilder/docs/ImageexportApi.md#get_image_export) | **GET** /api/v1/imageexports/{name} |
+*ImageexportApi* | [**get_image_export_log**](flightctl/imagebuilder/docs/ImageexportApi.md#get_image_export_log) | **GET** /api/v1/imageexports/{name}/log |
+*ImageexportApi* | [**list_image_exports**](flightctl/imagebuilder/docs/ImageexportApi.md#list_image_exports) | **GET** /api/v1/imageexports |
+
+
+## Documentation For Models
+
+ - [ApiVersion](flightctl/imagebuilder/docs/ApiVersion.md)
+ - [BindingType](flightctl/imagebuilder/docs/BindingType.md)
+ - [ConditionBase](flightctl/imagebuilder/docs/ConditionBase.md)
+ - [ConditionStatus](flightctl/imagebuilder/docs/ConditionStatus.md)
+ - [EarlyBinding](flightctl/imagebuilder/docs/EarlyBinding.md)
+ - [ExportFormatType](flightctl/imagebuilder/docs/ExportFormatType.md)
+ - [ImageBuild](flightctl/imagebuilder/docs/ImageBuild.md)
+ - [ImageBuildBinding](flightctl/imagebuilder/docs/ImageBuildBinding.md)
+ - [ImageBuildCondition](flightctl/imagebuilder/docs/ImageBuildCondition.md)
+ - [ImageBuildConditionReason](flightctl/imagebuilder/docs/ImageBuildConditionReason.md)
+ - [ImageBuildConditionType](flightctl/imagebuilder/docs/ImageBuildConditionType.md)
+ - [ImageBuildDestination](flightctl/imagebuilder/docs/ImageBuildDestination.md)
+ - [ImageBuildList](flightctl/imagebuilder/docs/ImageBuildList.md)
+ - [ImageBuildRefSource](flightctl/imagebuilder/docs/ImageBuildRefSource.md)
+ - [ImageBuildSource](flightctl/imagebuilder/docs/ImageBuildSource.md)
+ - [ImageBuildSpec](flightctl/imagebuilder/docs/ImageBuildSpec.md)
+ - [ImageBuildStatus](flightctl/imagebuilder/docs/ImageBuildStatus.md)
+ - [ImageBuildUserConfiguration](flightctl/imagebuilder/docs/ImageBuildUserConfiguration.md)
+ - [ImageExport](flightctl/imagebuilder/docs/ImageExport.md)
+ - [ImageExportCondition](flightctl/imagebuilder/docs/ImageExportCondition.md)
+ - [ImageExportConditionReason](flightctl/imagebuilder/docs/ImageExportConditionReason.md)
+ - [ImageExportConditionType](flightctl/imagebuilder/docs/ImageExportConditionType.md)
+ - [ImageExportFormatPhase](flightctl/imagebuilder/docs/ImageExportFormatPhase.md)
+ - [ImageExportList](flightctl/imagebuilder/docs/ImageExportList.md)
+ - [ImageExportSourceType](flightctl/imagebuilder/docs/ImageExportSourceType.md)
+ - [ImageExportSpec](flightctl/imagebuilder/docs/ImageExportSpec.md)
+ - [ImageExportStatus](flightctl/imagebuilder/docs/ImageExportStatus.md)
+ - [LateBinding](flightctl/imagebuilder/docs/LateBinding.md)
+ - [ListMeta](flightctl/imagebuilder/docs/ListMeta.md)
+ - [ObjectMeta](flightctl/imagebuilder/docs/ObjectMeta.md)
+ - [ResourceKind](flightctl/imagebuilder/docs/ResourceKind.md)
+ - [Status](flightctl/imagebuilder/docs/Status.md)
+
+
+
+## Documentation For Authorization
+
+
+Authentication schemes defined for the API:
+
+### bearerAuth
+
+- **Type**: Bearer authentication (JWT)
+
+
+### orgId
+
+- **Type**: API key
+- **API key parameter name**: org_id
+- **Location**: URL query string
+
+
+## Author
+
+team@flightctl.io
+
+
diff --git a/flightctl/models/__init__.py b/flightctl/models/__init__.py
index b83ba40..fd20ef3 100644
--- a/flightctl/models/__init__.py
+++ b/flightctl/models/__init__.py
@@ -16,13 +16,16 @@
# import models into model package
from flightctl.models.aap_provider_spec import AapProviderSpec
from flightctl.models.absolute_path import AbsolutePath
+from flightctl.models.api_version import ApiVersion
from flightctl.models.app_type import AppType
from flightctl.models.application_content import ApplicationContent
from flightctl.models.application_env_vars import ApplicationEnvVars
+from flightctl.models.application_provider_base import ApplicationProviderBase
from flightctl.models.application_provider_spec import ApplicationProviderSpec
from flightctl.models.application_resource_limits import ApplicationResourceLimits
from flightctl.models.application_resources import ApplicationResources
from flightctl.models.application_status_type import ApplicationStatusType
+from flightctl.models.application_user import ApplicationUser
from flightctl.models.application_volume import ApplicationVolume
from flightctl.models.application_volume_provider_spec import ApplicationVolumeProviderSpec
from flightctl.models.application_volume_reclaim_policy import ApplicationVolumeReclaimPolicy
@@ -46,10 +49,14 @@
from flightctl.models.certificate_signing_request_list import CertificateSigningRequestList
from flightctl.models.certificate_signing_request_spec import CertificateSigningRequestSpec
from flightctl.models.certificate_signing_request_status import CertificateSigningRequestStatus
+from flightctl.models.compose_application import ComposeApplication
from flightctl.models.condition import Condition
+from flightctl.models.condition_base import ConditionBase
from flightctl.models.condition_status import ConditionStatus
from flightctl.models.condition_type import ConditionType
from flightctl.models.config_provider_spec import ConfigProviderSpec
+from flightctl.models.container_application import ContainerApplication
+from flightctl.models.container_application_properties import ContainerApplicationProperties
from flightctl.models.cpu_resource_monitor_spec import CpuResourceMonitorSpec
from flightctl.models.device import Device
from flightctl.models.device_application_status import DeviceApplicationStatus
@@ -88,6 +95,7 @@
from flightctl.models.devices_summary import DevicesSummary
from flightctl.models.disk_resource_monitor_spec import DiskResourceMonitorSpec
from flightctl.models.disruption_budget import DisruptionBudget
+from flightctl.models.docker_auth import DockerAuth
from flightctl.models.encoding_type import EncodingType
from flightctl.models.enrollment_config import EnrollmentConfig
from flightctl.models.enrollment_request import EnrollmentRequest
@@ -119,10 +127,11 @@
from flightctl.models.fleet_spec import FleetSpec
from flightctl.models.fleet_spec_template import FleetSpecTemplate
from flightctl.models.fleet_status import FleetStatus
-from flightctl.models.generic_repo_spec import GenericRepoSpec
from flightctl.models.git_config_provider_spec import GitConfigProviderSpec
from flightctl.models.git_config_provider_spec_git_ref import GitConfigProviderSpecGitRef
from flightctl.models.git_hub_introspection_spec import GitHubIntrospectionSpec
+from flightctl.models.git_repo_spec import GitRepoSpec
+from flightctl.models.helm_application import HelmApplication
from flightctl.models.hook_action import HookAction
from flightctl.models.hook_action_run import HookActionRun
from flightctl.models.hook_condition import HookCondition
@@ -154,6 +163,8 @@
from flightctl.models.oidc_provider_spec import OIDCProviderSpec
from flightctl.models.object_meta import ObjectMeta
from flightctl.models.object_reference import ObjectReference
+from flightctl.models.oci_auth_type import OciAuthType
+from flightctl.models.oci_repo_spec import OciRepoSpec
from flightctl.models.open_shift_provider_spec import OpenShiftProviderSpec
from flightctl.models.organization import Organization
from flightctl.models.organization_list import OrganizationList
@@ -161,6 +172,7 @@
from flightctl.models.patch_request_inner import PatchRequestInner
from flightctl.models.permission import Permission
from flightctl.models.permission_list import PermissionList
+from flightctl.models.quadlet_application import QuadletApplication
from flightctl.models.referenced_repository_updated_details import ReferencedRepositoryUpdatedDetails
from flightctl.models.relative_path import RelativePath
from flightctl.models.repo_spec_type import RepoSpecType
@@ -178,12 +190,12 @@
from flightctl.models.resource_sync_list import ResourceSyncList
from flightctl.models.resource_sync_spec import ResourceSyncSpec
from flightctl.models.resource_sync_status import ResourceSyncStatus
+from flightctl.models.resource_sync_type import ResourceSyncType
from flightctl.models.resource_updated_details import ResourceUpdatedDetails
from flightctl.models.rfc7662_introspection_spec import Rfc7662IntrospectionSpec
from flightctl.models.rollout_policy import RolloutPolicy
from flightctl.models.rollout_strategy import RolloutStrategy
from flightctl.models.ssh_config import SshConfig
-from flightctl.models.ssh_repo_spec import SshRepoSpec
from flightctl.models.status import Status
from flightctl.models.systemd_active_state_type import SystemdActiveStateType
from flightctl.models.systemd_enable_state_type import SystemdEnableStateType
diff --git a/flightctl/models/api_version.py b/flightctl/models/api_version.py
new file mode 100644
index 0000000..404749d
--- /dev/null
+++ b/flightctl/models/api_version.py
@@ -0,0 +1,39 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class ApiVersion(str, Enum):
+ """
+ APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.
+ """
+
+ """
+ allowed enum values
+ """
+ ApiVersionV1beta1 = 'v1beta1'
+ ApiVersionFlightctlIoV1beta1 = 'flightctl.io/v1beta1'
+ ApiVersionEmpty = ''
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ApiVersion from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/flightctl/models/app_type.py b/flightctl/models/app_type.py
index e6fe7c7..5760403 100644
--- a/flightctl/models/app_type.py
+++ b/flightctl/models/app_type.py
@@ -30,6 +30,7 @@ class AppType(str, Enum):
AppTypeCompose = 'compose'
AppTypeQuadlet = 'quadlet'
AppTypeContainer = 'container'
+ AppTypeHelm = 'helm'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/flightctl/models/application_provider_base.py b/flightctl/models/application_provider_base.py
new file mode 100644
index 0000000..5fc9120
--- /dev/null
+++ b/flightctl/models/application_provider_base.py
@@ -0,0 +1,91 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.models.app_type import AppType
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ApplicationProviderBase(BaseModel):
+ """
+ Common properties for all application types.
+ """ # noqa: E501
+ name: Optional[StrictStr] = Field(default=None, description="The application name must be 1–253 characters long, start with a letter or number, and contain no whitespace.")
+ app_type: AppType = Field(alias="appType")
+ __properties: ClassVar[List[str]] = ["name", "appType"]
+
+ 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 ApplicationProviderBase 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 ApplicationProviderBase from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "name": obj.get("name"),
+ "appType": obj.get("appType")
+ })
+ return _obj
+
+
diff --git a/flightctl/models/application_provider_spec.py b/flightctl/models/application_provider_spec.py
index f76f319..3c10426 100644
--- a/flightctl/models/application_provider_spec.py
+++ b/flightctl/models/application_provider_spec.py
@@ -14,111 +14,181 @@
from __future__ import annotations
-import pprint
-import re # noqa: F401
import json
-
-from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
-from typing import Any, ClassVar, Dict, List, Optional
-from typing_extensions import Annotated
-from flightctl.models.app_type import AppType
-from flightctl.models.application_content import ApplicationContent
-from flightctl.models.application_resources import ApplicationResources
-from flightctl.models.application_volume import ApplicationVolume
-from typing import Optional, Set
-from typing_extensions import Self
+import pprint
+from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
+from typing import Any, List, Optional
+from flightctl.models.compose_application import ComposeApplication
+from flightctl.models.container_application import ContainerApplication
+from flightctl.models.helm_application import HelmApplication
+from flightctl.models.quadlet_application import QuadletApplication
+from pydantic import StrictStr, Field
+from typing import Union, List, Set, Optional, Dict
+from typing_extensions import Literal, Self
+
+APPLICATIONPROVIDERSPEC_ONE_OF_SCHEMAS = ["ComposeApplication", "ContainerApplication", "HelmApplication", "QuadletApplication"]
class ApplicationProviderSpec(BaseModel):
"""
ApplicationProviderSpec
- """ # noqa: E501
- env_vars: Optional[Dict[str, StrictStr]] = Field(default=None, description="Environment variable key-value pairs, injected during runtime. The key and value each must be between 1 and 253 characters.", alias="envVars")
- name: Optional[StrictStr] = Field(default=None, description="The application name must be 1–253 characters long, start with a letter or number, and contain no whitespace.")
- app_type: AppType = Field(alias="appType")
- volumes: Optional[List[ApplicationVolume]] = Field(default=None, description="List of application volumes.")
- image: StrictStr = Field(description="Reference to the OCI image or artifact for the application package.")
- ports: Optional[List[Annotated[str, Field(strict=True)]]] = Field(default=None, description="Port mappings.")
- resources: Optional[ApplicationResources] = None
- inline: List[ApplicationContent] = Field(description="A list of application content.")
- __properties: ClassVar[List[str]] = ["envVars", "name", "appType", "volumes", "image", "ports", "resources", "inline"]
+ """
+ # data type: ComposeApplication
+ oneof_schema_1_validator: Optional[ComposeApplication] = None
+ # data type: QuadletApplication
+ oneof_schema_2_validator: Optional[QuadletApplication] = None
+ # data type: ContainerApplication
+ oneof_schema_3_validator: Optional[ContainerApplication] = None
+ # data type: HelmApplication
+ oneof_schema_4_validator: Optional[HelmApplication] = None
+ actual_instance: Optional[Union[ComposeApplication, ContainerApplication, HelmApplication, QuadletApplication]] = None
+ one_of_schemas: Set[str] = { "ComposeApplication", "ContainerApplication", "HelmApplication", "QuadletApplication" }
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())
+ discriminator_value_class_map: Dict[str, str] = {
+ }
+
+ def __init__(self, *args, **kwargs) -> None:
+ if args:
+ if len(args) > 1:
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
+ if kwargs:
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
+ super().__init__(actual_instance=args[0])
+ else:
+ super().__init__(**kwargs)
+
+ @field_validator('actual_instance')
+ def actual_instance_must_validate_oneof(cls, v):
+ instance = ApplicationProviderSpec.model_construct()
+ error_messages = []
+ match = 0
+ # validate data type: ComposeApplication
+ if not isinstance(v, ComposeApplication):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `ComposeApplication`")
+ else:
+ match += 1
+ # validate data type: QuadletApplication
+ if not isinstance(v, QuadletApplication):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `QuadletApplication`")
+ else:
+ match += 1
+ # validate data type: ContainerApplication
+ if not isinstance(v, ContainerApplication):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `ContainerApplication`")
+ else:
+ match += 1
+ # validate data type: HelmApplication
+ if not isinstance(v, HelmApplication):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `HelmApplication`")
+ else:
+ match += 1
+ if match > 1:
+ # more than 1 match
+ raise ValueError("Multiple matches found when setting `actual_instance` in ApplicationProviderSpec with oneOf schemas: ComposeApplication, ContainerApplication, HelmApplication, QuadletApplication. Details: " + ", ".join(error_messages))
+ elif match == 0:
+ # no match
+ raise ValueError("No match found when setting `actual_instance` in ApplicationProviderSpec with oneOf schemas: ComposeApplication, ContainerApplication, HelmApplication, QuadletApplication. Details: " + ", ".join(error_messages))
+ else:
+ return v
@classmethod
- def from_json(cls, json_str: str) -> Optional[Self]:
- """Create an instance of ApplicationProviderSpec 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 each item in volumes (list)
- _items = []
- if self.volumes:
- for _item_volumes in self.volumes:
- if _item_volumes:
- _items.append(_item_volumes.to_dict())
- _dict['volumes'] = _items
- # override the default output from pydantic by calling `to_dict()` of resources
- if self.resources:
- _dict['resources'] = self.resources.to_dict()
- # override the default output from pydantic by calling `to_dict()` of each item in inline (list)
- _items = []
- if self.inline:
- for _item_inline in self.inline:
- if _item_inline:
- _items.append(_item_inline.to_dict())
- _dict['inline'] = _items
- return _dict
+ def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self:
+ return cls.from_json(json.dumps(obj))
@classmethod
- def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
- """Create an instance of ApplicationProviderSpec from a dict"""
- if obj is None:
+ def from_json(cls, json_str: str) -> Self:
+ """Returns the object represented by the json string"""
+ instance = cls.model_construct()
+ error_messages = []
+ match = 0
+
+ # use oneOf discriminator to lookup the data type
+ _data_type = json.loads(json_str).get("appType")
+ if not _data_type:
+ raise ValueError("Failed to lookup data type from the field `appType` in the input.")
+
+ # check if data type is `ComposeApplication`
+ if _data_type == "compose":
+ instance.actual_instance = ComposeApplication.from_json(json_str)
+ return instance
+
+ # check if data type is `ContainerApplication`
+ if _data_type == "container":
+ instance.actual_instance = ContainerApplication.from_json(json_str)
+ return instance
+
+ # check if data type is `HelmApplication`
+ if _data_type == "helm":
+ instance.actual_instance = HelmApplication.from_json(json_str)
+ return instance
+
+ # check if data type is `QuadletApplication`
+ if _data_type == "quadlet":
+ instance.actual_instance = QuadletApplication.from_json(json_str)
+ return instance
+
+ # deserialize data into ComposeApplication
+ try:
+ instance.actual_instance = ComposeApplication.from_json(json_str)
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # deserialize data into QuadletApplication
+ try:
+ instance.actual_instance = QuadletApplication.from_json(json_str)
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # deserialize data into ContainerApplication
+ try:
+ instance.actual_instance = ContainerApplication.from_json(json_str)
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # deserialize data into HelmApplication
+ try:
+ instance.actual_instance = HelmApplication.from_json(json_str)
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+
+ if match > 1:
+ # more than 1 match
+ raise ValueError("Multiple matches found when deserializing the JSON string into ApplicationProviderSpec with oneOf schemas: ComposeApplication, ContainerApplication, HelmApplication, QuadletApplication. Details: " + ", ".join(error_messages))
+ elif match == 0:
+ # no match
+ raise ValueError("No match found when deserializing the JSON string into ApplicationProviderSpec with oneOf schemas: ComposeApplication, ContainerApplication, HelmApplication, QuadletApplication. Details: " + ", ".join(error_messages))
+ else:
+ return instance
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the actual instance"""
+ if self.actual_instance is None:
+ return "null"
+
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
+ return self.actual_instance.to_json()
+ else:
+ return json.dumps(self.actual_instance)
+
+ def to_dict(self) -> Optional[Union[Dict[str, Any], ComposeApplication, ContainerApplication, HelmApplication, QuadletApplication]]:
+ """Returns the dict representation of the actual instance"""
+ if self.actual_instance is None:
return None
- if not isinstance(obj, dict):
- return cls.model_validate(obj)
-
- _obj = cls.model_validate({
- "envVars": obj.get("envVars"),
- "name": obj.get("name"),
- "appType": obj.get("appType"),
- "volumes": [ApplicationVolume.from_dict(_item) for _item in obj["volumes"]] if obj.get("volumes") is not None else None,
- "image": obj.get("image"),
- "ports": obj.get("ports"),
- "resources": ApplicationResources.from_dict(obj["resources"]) if obj.get("resources") is not None else None,
- "inline": [ApplicationContent.from_dict(_item) for _item in obj["inline"]] if obj.get("inline") is not None else None
- })
- return _obj
+ if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
+ return self.actual_instance.to_dict()
+ else:
+ # primitive type
+ return self.actual_instance
+
+ def to_str(self) -> str:
+ """Returns the string representation of the actual instance"""
+ return pprint.pformat(self.model_dump())
diff --git a/flightctl/models/application_user.py b/flightctl/models/application_user.py
new file mode 100644
index 0000000..9f4e614
--- /dev/null
+++ b/flightctl/models/application_user.py
@@ -0,0 +1,88 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ApplicationUser(BaseModel):
+ """
+ ApplicationUser
+ """ # noqa: E501
+ run_as: Optional[StrictStr] = Field(default=None, description="The username of the system user this application should be run under. This is not the same as the user within any containers of the application (if applicable). Defaults to the user that the agent runs as (generally root) if not specified.", alias="runAs")
+ __properties: ClassVar[List[str]] = ["runAs"]
+
+ 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 ApplicationUser 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 ApplicationUser from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "runAs": obj.get("runAs")
+ })
+ return _obj
+
+
diff --git a/flightctl/models/auth_config.py b/flightctl/models/auth_config.py
index 12fae25..92c4fc6 100644
--- a/flightctl/models/auth_config.py
+++ b/flightctl/models/auth_config.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.models.api_version import ApiVersion
from flightctl.models.auth_provider import AuthProvider
from typing import Optional, Set
from typing_extensions import Self
@@ -28,7 +29,7 @@ class AuthConfig(BaseModel):
"""
AuthConfig
""" # noqa: E501
- api_version: StrictStr = Field(description="APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.", alias="apiVersion")
+ api_version: ApiVersion = Field(alias="apiVersion")
providers: Optional[List[AuthProvider]] = Field(default=None, description="List of all available authentication providers.")
default_provider: Optional[StrictStr] = Field(default=None, description="Name of the default authentication provider.", alias="defaultProvider")
organizations_enabled: Optional[StrictBool] = Field(default=None, description="Whether organizations are enabled for authentication.", alias="organizationsEnabled")
diff --git a/flightctl/models/auth_provider.py b/flightctl/models/auth_provider.py
index 679b01b..3671958 100644
--- a/flightctl/models/auth_provider.py
+++ b/flightctl/models/auth_provider.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
+from flightctl.models.api_version import ApiVersion
from flightctl.models.auth_provider_spec import AuthProviderSpec
from flightctl.models.object_meta import ObjectMeta
from typing import Optional, Set
@@ -29,7 +30,7 @@ class AuthProvider(BaseModel):
"""
AuthProvider represents an authentication provider configuration supporting both OIDC and OAuth2.
""" # noqa: E501
- api_version: StrictStr = Field(description="APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.", alias="apiVersion")
+ api_version: ApiVersion = Field(alias="apiVersion")
kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
metadata: ObjectMeta
spec: AuthProviderSpec
diff --git a/flightctl/models/auth_provider_list.py b/flightctl/models/auth_provider_list.py
index d6d307d..75c9124 100644
--- a/flightctl/models/auth_provider_list.py
+++ b/flightctl/models/auth_provider_list.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
+from flightctl.models.api_version import ApiVersion
from flightctl.models.auth_provider import AuthProvider
from flightctl.models.list_meta import ListMeta
from typing import Optional, Set
@@ -29,7 +30,7 @@ class AuthProviderList(BaseModel):
"""
AuthProviderList is a list of auth providers.
""" # noqa: E501
- api_version: StrictStr = Field(description="APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.", alias="apiVersion")
+ api_version: ApiVersion = Field(alias="apiVersion")
kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
metadata: ListMeta
items: List[AuthProvider] = Field(description="List of auth providers.")
diff --git a/flightctl/models/certificate_signing_request.py b/flightctl/models/certificate_signing_request.py
index 2e3aa6e..ad53257 100644
--- a/flightctl/models/certificate_signing_request.py
+++ b/flightctl/models/certificate_signing_request.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.models.api_version import ApiVersion
from flightctl.models.certificate_signing_request_spec import CertificateSigningRequestSpec
from flightctl.models.certificate_signing_request_status import CertificateSigningRequestStatus
from flightctl.models.object_meta import ObjectMeta
@@ -30,7 +31,7 @@ class CertificateSigningRequest(BaseModel):
"""
CertificateSigningRequest represents a request for a signed certificate from the CA.
""" # noqa: E501
- api_version: StrictStr = Field(description="APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.", alias="apiVersion")
+ api_version: ApiVersion = Field(alias="apiVersion")
kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
metadata: ObjectMeta
spec: CertificateSigningRequestSpec
diff --git a/flightctl/models/certificate_signing_request_list.py b/flightctl/models/certificate_signing_request_list.py
index e07e9bd..1c2779b 100644
--- a/flightctl/models/certificate_signing_request_list.py
+++ b/flightctl/models/certificate_signing_request_list.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
+from flightctl.models.api_version import ApiVersion
from flightctl.models.certificate_signing_request import CertificateSigningRequest
from flightctl.models.list_meta import ListMeta
from typing import Optional, Set
@@ -29,7 +30,7 @@ class CertificateSigningRequestList(BaseModel):
"""
CertificateSigningRequestList is a list of CertificateSigningRequest.
""" # noqa: E501
- api_version: StrictStr = Field(description="APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.", alias="apiVersion")
+ api_version: ApiVersion = Field(alias="apiVersion")
kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
metadata: ListMeta
items: List[CertificateSigningRequest] = Field(description="List of CertificateSigningRequest.")
diff --git a/flightctl/models/compose_application.py b/flightctl/models/compose_application.py
new file mode 100644
index 0000000..7edf379
--- /dev/null
+++ b/flightctl/models/compose_application.py
@@ -0,0 +1,115 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.models.app_type import AppType
+from flightctl.models.application_content import ApplicationContent
+from flightctl.models.application_volume import ApplicationVolume
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ComposeApplication(BaseModel):
+ """
+ ComposeApplication
+ """ # noqa: E501
+ name: Optional[StrictStr] = Field(default=None, description="The application name must be 1–253 characters long, start with a letter or number, and contain no whitespace.")
+ app_type: AppType = Field(alias="appType")
+ env_vars: Optional[Dict[str, StrictStr]] = Field(default=None, description="Environment variable key-value pairs, injected during runtime. The key and value each must be between 1 and 253 characters.", alias="envVars")
+ volumes: Optional[List[ApplicationVolume]] = Field(default=None, description="List of application volumes.")
+ image: StrictStr = Field(description="Reference to the OCI image or artifact for the application package.")
+ inline: List[ApplicationContent] = Field(description="A list of application content.")
+ __properties: ClassVar[List[str]] = ["name", "appType", "envVars", "volumes", "image", "inline"]
+
+ 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 ComposeApplication 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 each item in volumes (list)
+ _items = []
+ if self.volumes:
+ for _item_volumes in self.volumes:
+ if _item_volumes:
+ _items.append(_item_volumes.to_dict())
+ _dict['volumes'] = _items
+ # override the default output from pydantic by calling `to_dict()` of each item in inline (list)
+ _items = []
+ if self.inline:
+ for _item_inline in self.inline:
+ if _item_inline:
+ _items.append(_item_inline.to_dict())
+ _dict['inline'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ComposeApplication from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "name": obj.get("name"),
+ "appType": obj.get("appType"),
+ "envVars": obj.get("envVars"),
+ "volumes": [ApplicationVolume.from_dict(_item) for _item in obj["volumes"]] if obj.get("volumes") is not None else None,
+ "image": obj.get("image"),
+ "inline": [ApplicationContent.from_dict(_item) for _item in obj["inline"]] if obj.get("inline") is not None else None
+ })
+ return _obj
+
+
diff --git a/flightctl/models/condition.py b/flightctl/models/condition.py
index 0c9b6d6..3fc79b5 100644
--- a/flightctl/models/condition.py
+++ b/flightctl/models/condition.py
@@ -30,13 +30,13 @@ class Condition(BaseModel):
"""
Condition contains details for one aspect of the current state of this API Resource.
""" # noqa: E501
- type: ConditionType
status: ConditionStatus
observed_generation: Optional[StrictInt] = Field(default=None, description="The .metadata.generation that the condition was set based upon.", alias="observedGeneration")
last_transition_time: datetime = Field(description="The last time the condition transitioned from one status to another.", alias="lastTransitionTime")
message: StrictStr = Field(description="Human readable message indicating details about last transition.")
reason: StrictStr = Field(description="A (brief) reason for the condition's last transition.")
- __properties: ClassVar[List[str]] = ["type", "status", "observedGeneration", "lastTransitionTime", "message", "reason"]
+ type: ConditionType
+ __properties: ClassVar[List[str]] = ["status", "observedGeneration", "lastTransitionTime", "message", "reason", "type"]
model_config = ConfigDict(
populate_by_name=True,
@@ -89,12 +89,12 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
- "type": obj.get("type"),
"status": obj.get("status"),
"observedGeneration": obj.get("observedGeneration"),
"lastTransitionTime": obj.get("lastTransitionTime"),
"message": obj.get("message"),
- "reason": obj.get("reason")
+ "reason": obj.get("reason"),
+ "type": obj.get("type")
})
return _obj
diff --git a/flightctl/models/condition_base.py b/flightctl/models/condition_base.py
new file mode 100644
index 0000000..a65fe08
--- /dev/null
+++ b/flightctl/models/condition_base.py
@@ -0,0 +1,98 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ 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 datetime import datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.models.condition_status import ConditionStatus
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ConditionBase(BaseModel):
+ """
+ Base condition structure following Kubernetes API conventions. Use with allOf to add a specific type enum.
+ """ # noqa: E501
+ status: ConditionStatus
+ observed_generation: Optional[StrictInt] = Field(default=None, description="The .metadata.generation that the condition was set based upon.", alias="observedGeneration")
+ last_transition_time: datetime = Field(description="The last time the condition transitioned from one status to another.", alias="lastTransitionTime")
+ message: StrictStr = Field(description="Human readable message indicating details about last transition.")
+ reason: StrictStr = Field(description="A (brief) reason for the condition's last transition.")
+ __properties: ClassVar[List[str]] = ["status", "observedGeneration", "lastTransitionTime", "message", "reason"]
+
+ 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 ConditionBase 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 ConditionBase from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "status": obj.get("status"),
+ "observedGeneration": obj.get("observedGeneration"),
+ "lastTransitionTime": obj.get("lastTransitionTime"),
+ "message": obj.get("message"),
+ "reason": obj.get("reason")
+ })
+ return _obj
+
+
diff --git a/flightctl/models/container_application.py b/flightctl/models/container_application.py
new file mode 100644
index 0000000..52c0b68
--- /dev/null
+++ b/flightctl/models/container_application.py
@@ -0,0 +1,116 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ 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, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from flightctl.models.app_type import AppType
+from flightctl.models.application_resources import ApplicationResources
+from flightctl.models.application_volume import ApplicationVolume
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ContainerApplication(BaseModel):
+ """
+ ContainerApplication
+ """ # noqa: E501
+ name: Optional[StrictStr] = Field(default=None, description="The application name must be 1–253 characters long, start with a letter or number, and contain no whitespace.")
+ app_type: AppType = Field(alias="appType")
+ env_vars: Optional[Dict[str, StrictStr]] = Field(default=None, description="Environment variable key-value pairs, injected during runtime. The key and value each must be between 1 and 253 characters.", alias="envVars")
+ run_as: Optional[StrictStr] = Field(default=None, description="The username of the system user this application should be run under. This is not the same as the user within any containers of the application (if applicable). Defaults to the user that the agent runs as (generally root) if not specified.", alias="runAs")
+ volumes: Optional[List[ApplicationVolume]] = Field(default=None, description="List of application volumes.")
+ image: StrictStr = Field(description="Reference to the image for this container.")
+ ports: Optional[List[Annotated[str, Field(strict=True)]]] = Field(default=None, description="Port mappings.")
+ resources: Optional[ApplicationResources] = None
+ __properties: ClassVar[List[str]] = ["name", "appType", "envVars", "runAs", "volumes", "image", "ports", "resources"]
+
+ 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 ContainerApplication 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 each item in volumes (list)
+ _items = []
+ if self.volumes:
+ for _item_volumes in self.volumes:
+ if _item_volumes:
+ _items.append(_item_volumes.to_dict())
+ _dict['volumes'] = _items
+ # override the default output from pydantic by calling `to_dict()` of resources
+ if self.resources:
+ _dict['resources'] = self.resources.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ContainerApplication from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "name": obj.get("name"),
+ "appType": obj.get("appType"),
+ "envVars": obj.get("envVars"),
+ "runAs": obj.get("runAs"),
+ "volumes": [ApplicationVolume.from_dict(_item) for _item in obj["volumes"]] if obj.get("volumes") is not None else None,
+ "image": obj.get("image"),
+ "ports": obj.get("ports"),
+ "resources": ApplicationResources.from_dict(obj["resources"]) if obj.get("resources") is not None else None
+ })
+ return _obj
+
+
diff --git a/flightctl/models/container_application_properties.py b/flightctl/models/container_application_properties.py
new file mode 100644
index 0000000..dec93cb
--- /dev/null
+++ b/flightctl/models/container_application_properties.py
@@ -0,0 +1,95 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ 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, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from flightctl.models.application_resources import ApplicationResources
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ContainerApplicationProperties(BaseModel):
+ """
+ Properties for container application deployments.
+ """ # noqa: E501
+ ports: Optional[List[Annotated[str, Field(strict=True)]]] = Field(default=None, description="Port mappings.")
+ resources: Optional[ApplicationResources] = None
+ __properties: ClassVar[List[str]] = ["ports", "resources"]
+
+ 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 ContainerApplicationProperties 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 resources
+ if self.resources:
+ _dict['resources'] = self.resources.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ContainerApplicationProperties from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "ports": obj.get("ports"),
+ "resources": ApplicationResources.from_dict(obj["resources"]) if obj.get("resources") is not None else None
+ })
+ return _obj
+
+
diff --git a/flightctl/models/device.py b/flightctl/models/device.py
index 045de82..0d581b6 100644
--- a/flightctl/models/device.py
+++ b/flightctl/models/device.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.models.api_version import ApiVersion
from flightctl.models.device_spec import DeviceSpec
from flightctl.models.device_status import DeviceStatus
from flightctl.models.object_meta import ObjectMeta
@@ -30,7 +31,7 @@ class Device(BaseModel):
"""
Device represents a physical device.
""" # noqa: E501
- api_version: StrictStr = Field(description="APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.", alias="apiVersion")
+ api_version: ApiVersion = Field(alias="apiVersion")
kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
metadata: ObjectMeta
spec: Optional[DeviceSpec] = None
diff --git a/flightctl/models/device_application_status.py b/flightctl/models/device_application_status.py
index 7af81b3..659f053 100644
--- a/flightctl/models/device_application_status.py
+++ b/flightctl/models/device_application_status.py
@@ -36,8 +36,9 @@ class DeviceApplicationStatus(BaseModel):
status: ApplicationStatusType
embedded: StrictBool = Field(description="Whether the application is embedded in the bootc image.")
app_type: AppType = Field(alias="appType")
+ run_as: Optional[StrictStr] = Field(default=None, description="The username of the system user this application is runing under. If blank, the application is run as the same user as the agent (generally root).", alias="runAs")
volumes: Optional[List[ApplicationVolumeStatus]] = Field(default=None, description="Status of volumes used by this application.")
- __properties: ClassVar[List[str]] = ["name", "ready", "restarts", "status", "embedded", "appType", "volumes"]
+ __properties: ClassVar[List[str]] = ["name", "ready", "restarts", "status", "embedded", "appType", "runAs", "volumes"]
model_config = ConfigDict(
populate_by_name=True,
@@ -103,6 +104,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"status": obj.get("status"),
"embedded": obj.get("embedded"),
"appType": obj.get("appType"),
+ "runAs": obj.get("runAs"),
"volumes": [ApplicationVolumeStatus.from_dict(_item) for _item in obj["volumes"]] if obj.get("volumes") is not None else None
})
return _obj
diff --git a/flightctl/models/device_list.py b/flightctl/models/device_list.py
index fc38e2e..663e4c5 100644
--- a/flightctl/models/device_list.py
+++ b/flightctl/models/device_list.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.models.api_version import ApiVersion
from flightctl.models.device import Device
from flightctl.models.devices_summary import DevicesSummary
from flightctl.models.list_meta import ListMeta
@@ -30,7 +31,7 @@ class DeviceList(BaseModel):
"""
DeviceList is a list of Devices.
""" # noqa: E501
- api_version: StrictStr = Field(description="APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.", alias="apiVersion")
+ api_version: ApiVersion = Field(alias="apiVersion")
kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
metadata: ListMeta
items: List[Device] = Field(description="List of Devices.")
diff --git a/flightctl/models/device_spec.py b/flightctl/models/device_spec.py
index 3e27a39..da07f1f 100644
--- a/flightctl/models/device_spec.py
+++ b/flightctl/models/device_spec.py
@@ -91,7 +91,7 @@ def to_dict(self) -> Dict[str, Any]:
if self.os:
_dict['os'] = self.os.to_dict()
# override the default output from pydantic by calling `to_dict()` of each item in config (list)
- _items = []
+ _items: list[Any] = []
if self.config:
for _item_config in self.config:
if _item_config:
diff --git a/flightctl/models/docker_auth.py b/flightctl/models/docker_auth.py
new file mode 100644
index 0000000..41c1845
--- /dev/null
+++ b/flightctl/models/docker_auth.py
@@ -0,0 +1,93 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ 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, SecretStr, StrictStr
+from typing import Any, ClassVar, Dict, List
+from flightctl.models.oci_auth_type import OciAuthType
+from typing import Optional, Set
+from typing_extensions import Self
+
+class DockerAuth(BaseModel):
+ """
+ Docker-style authentication for OCI registries.
+ """ # noqa: E501
+ auth_type: OciAuthType = Field(alias="authType")
+ username: StrictStr = Field(description="The username for registry authentication.")
+ password: SecretStr = Field(description="The password or token for registry authentication.")
+ __properties: ClassVar[List[str]] = ["authType", "username", "password"]
+
+ 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 DockerAuth 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 DockerAuth from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "authType": obj.get("authType"),
+ "username": obj.get("username"),
+ "password": obj.get("password")
+ })
+ return _obj
+
+
diff --git a/flightctl/models/enrollment_request.py b/flightctl/models/enrollment_request.py
index b6f4c4f..ffa6485 100644
--- a/flightctl/models/enrollment_request.py
+++ b/flightctl/models/enrollment_request.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.models.api_version import ApiVersion
from flightctl.models.enrollment_request_spec import EnrollmentRequestSpec
from flightctl.models.enrollment_request_status import EnrollmentRequestStatus
from flightctl.models.object_meta import ObjectMeta
@@ -30,7 +31,7 @@ class EnrollmentRequest(BaseModel):
"""
EnrollmentRequest represents a request for approval to enroll a device.
""" # noqa: E501
- api_version: StrictStr = Field(description="APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.", alias="apiVersion")
+ api_version: ApiVersion = Field(alias="apiVersion")
kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
metadata: ObjectMeta
spec: EnrollmentRequestSpec
diff --git a/flightctl/models/enrollment_request_list.py b/flightctl/models/enrollment_request_list.py
index 76bcb9a..775d2b9 100644
--- a/flightctl/models/enrollment_request_list.py
+++ b/flightctl/models/enrollment_request_list.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
+from flightctl.models.api_version import ApiVersion
from flightctl.models.enrollment_request import EnrollmentRequest
from flightctl.models.list_meta import ListMeta
from typing import Optional, Set
@@ -29,7 +30,7 @@ class EnrollmentRequestList(BaseModel):
"""
EnrollmentRequestList is a list of EnrollmentRequest.
""" # noqa: E501
- api_version: StrictStr = Field(description="APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.", alias="apiVersion")
+ api_version: ApiVersion = Field(alias="apiVersion")
kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
metadata: ListMeta
items: List[EnrollmentRequest] = Field(description="List of EnrollmentRequest.")
diff --git a/flightctl/models/event.py b/flightctl/models/event.py
index 88ec25b..ad4267e 100644
--- a/flightctl/models/event.py
+++ b/flightctl/models/event.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.models.api_version import ApiVersion
from flightctl.models.event_source import EventSource
from flightctl.models.object_meta import ObjectMeta
from flightctl.models.object_reference import ObjectReference
@@ -30,7 +31,7 @@ class Event(BaseModel):
"""
Event represents a single event that occurred in the system.
""" # noqa: E501
- api_version: StrictStr = Field(description="APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.", alias="apiVersion")
+ api_version: ApiVersion = Field(alias="apiVersion")
kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
metadata: ObjectMeta
involved_object: ObjectReference = Field(alias="involvedObject")
diff --git a/flightctl/models/event_list.py b/flightctl/models/event_list.py
index 8f9c516..341295d 100644
--- a/flightctl/models/event_list.py
+++ b/flightctl/models/event_list.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
+from flightctl.models.api_version import ApiVersion
from flightctl.models.event import Event
from flightctl.models.list_meta import ListMeta
from typing import Optional, Set
@@ -29,7 +30,7 @@ class EventList(BaseModel):
"""
EventList is a list of Events.
""" # noqa: E501
- api_version: StrictStr = Field(description="APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.", alias="apiVersion")
+ api_version: ApiVersion = Field(alias="apiVersion")
kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
metadata: ListMeta
items: List[Event] = Field(description="List of Events.")
diff --git a/flightctl/models/fleet.py b/flightctl/models/fleet.py
index 6dd6c32..3a0e071 100644
--- a/flightctl/models/fleet.py
+++ b/flightctl/models/fleet.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.models.api_version import ApiVersion
from flightctl.models.fleet_spec import FleetSpec
from flightctl.models.fleet_status import FleetStatus
from flightctl.models.object_meta import ObjectMeta
@@ -30,7 +31,7 @@ class Fleet(BaseModel):
"""
Fleet represents a set of devices.
""" # noqa: E501
- api_version: StrictStr = Field(description="APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.", alias="apiVersion")
+ api_version: ApiVersion = Field(alias="apiVersion")
kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
metadata: ObjectMeta
spec: FleetSpec
diff --git a/flightctl/models/fleet_list.py b/flightctl/models/fleet_list.py
index 70f837b..c1fb41b 100644
--- a/flightctl/models/fleet_list.py
+++ b/flightctl/models/fleet_list.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
+from flightctl.models.api_version import ApiVersion
from flightctl.models.fleet import Fleet
from flightctl.models.list_meta import ListMeta
from typing import Optional, Set
@@ -29,7 +30,7 @@ class FleetList(BaseModel):
"""
FleetList is a list of Fleets.
""" # noqa: E501
- api_version: StrictStr = Field(description="APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.", alias="apiVersion")
+ api_version: ApiVersion = Field(alias="apiVersion")
kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
metadata: ListMeta
items: List[Fleet] = Field(description="List of Fleets.")
diff --git a/flightctl/models/git_repo_spec.py b/flightctl/models/git_repo_spec.py
new file mode 100644
index 0000000..0cdeabc
--- /dev/null
+++ b/flightctl/models/git_repo_spec.py
@@ -0,0 +1,109 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ 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, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.models.http_config import HttpConfig
+from flightctl.models.ssh_config import SshConfig
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GitRepoSpec(BaseModel):
+ """
+ Git repository specification. Supports no auth (public repos), HTTP/HTTPS auth, or SSH auth.
+ """ # noqa: E501
+ url: StrictStr = Field(description="The Git repository URL to clone from.")
+ type: StrictStr = Field(description="The repository type discriminator.")
+ http_config: Optional[HttpConfig] = Field(default=None, alias="httpConfig")
+ ssh_config: Optional[SshConfig] = Field(default=None, alias="sshConfig")
+ __properties: ClassVar[List[str]] = ["url", "type", "httpConfig", "sshConfig"]
+
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['git']):
+ raise ValueError("must be one of enum values ('git')")
+ return value
+
+ 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 GitRepoSpec 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 http_config
+ if self.http_config:
+ _dict['httpConfig'] = self.http_config.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of ssh_config
+ if self.ssh_config:
+ _dict['sshConfig'] = self.ssh_config.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of GitRepoSpec from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "url": obj.get("url"),
+ "type": obj.get("type"),
+ "httpConfig": HttpConfig.from_dict(obj["httpConfig"]) if obj.get("httpConfig") is not None else None,
+ "sshConfig": SshConfig.from_dict(obj["sshConfig"]) if obj.get("sshConfig") is not None else None
+ })
+ return _obj
+
+
diff --git a/flightctl/models/helm_application.py b/flightctl/models/helm_application.py
new file mode 100644
index 0000000..4f65641
--- /dev/null
+++ b/flightctl/models/helm_application.py
@@ -0,0 +1,99 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.models.app_type import AppType
+from typing import Optional, Set
+from typing_extensions import Self
+
+class HelmApplication(BaseModel):
+ """
+ HelmApplication
+ """ # noqa: E501
+ name: Optional[StrictStr] = Field(default=None, description="The application name must be 1–253 characters long, start with a letter or number, and contain no whitespace.")
+ app_type: AppType = Field(alias="appType")
+ image: StrictStr = Field(description="Reference to the chart for this helm application.")
+ namespace: Optional[StrictStr] = Field(default=None, description="The target namespace for the application deployment.")
+ values: Optional[Dict[str, Any]] = Field(default=None, description="Configuration values for the application. Supports arbitrarily nested structures.")
+ values_files: Optional[List[StrictStr]] = Field(default=None, description="List of values files to apply during deployment. Files are relative paths and applied in array order before user-provided values.", alias="valuesFiles")
+ __properties: ClassVar[List[str]] = ["name", "appType", "image", "namespace", "values", "valuesFiles"]
+
+ 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 HelmApplication 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 HelmApplication from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "name": obj.get("name"),
+ "appType": obj.get("appType"),
+ "image": obj.get("image"),
+ "namespace": obj.get("namespace"),
+ "values": obj.get("values"),
+ "valuesFiles": obj.get("valuesFiles")
+ })
+ return _obj
+
+
diff --git a/flightctl/models/http_repo_spec.py b/flightctl/models/http_repo_spec.py
index 0055bd6..f26b909 100644
--- a/flightctl/models/http_repo_spec.py
+++ b/flightctl/models/http_repo_spec.py
@@ -18,23 +18,29 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List, Optional
from flightctl.models.http_config import HttpConfig
-from flightctl.models.repo_spec_type import RepoSpecType
from typing import Optional, Set
from typing_extensions import Self
class HttpRepoSpec(BaseModel):
"""
- HttpRepoSpec
+ HTTP endpoint specification for fetching configuration.
""" # noqa: E501
- url: StrictStr = Field(description="The HTTP URL to call or clone from.")
- type: RepoSpecType
- http_config: HttpConfig = Field(alias="httpConfig")
+ url: StrictStr = Field(description="The HTTP URL to call.")
+ type: StrictStr = Field(description="The repository type discriminator.")
+ http_config: Optional[HttpConfig] = Field(default=None, alias="httpConfig")
validation_suffix: Optional[StrictStr] = Field(default=None, description="URL suffix used only for validating access to the repository. Users might use the URL field as a root URL to be used by config sources adding suffixes. This will help with the validation of the http endpoint.", alias="validationSuffix")
__properties: ClassVar[List[str]] = ["url", "type", "httpConfig", "validationSuffix"]
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['http']):
+ raise ValueError("must be one of enum values ('http')")
+ return value
+
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
diff --git a/flightctl/models/image_application_provider_spec.py b/flightctl/models/image_application_provider_spec.py
index f492e15..9347d66 100644
--- a/flightctl/models/image_application_provider_spec.py
+++ b/flightctl/models/image_application_provider_spec.py
@@ -18,11 +18,8 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
-from typing import Any, ClassVar, Dict, List, Optional
-from typing_extensions import Annotated
-from flightctl.models.application_resources import ApplicationResources
-from flightctl.models.application_volume import ApplicationVolume
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List
from typing import Optional, Set
from typing_extensions import Self
@@ -30,11 +27,8 @@ class ImageApplicationProviderSpec(BaseModel):
"""
ImageApplicationProviderSpec
""" # noqa: E501
- volumes: Optional[List[ApplicationVolume]] = Field(default=None, description="List of application volumes.")
image: StrictStr = Field(description="Reference to the OCI image or artifact for the application package.")
- ports: Optional[List[Annotated[str, Field(strict=True)]]] = Field(default=None, description="Port mappings.")
- resources: Optional[ApplicationResources] = None
- __properties: ClassVar[List[str]] = ["volumes", "image", "ports", "resources"]
+ __properties: ClassVar[List[str]] = ["image"]
model_config = ConfigDict(
populate_by_name=True,
@@ -75,16 +69,6 @@ def to_dict(self) -> Dict[str, Any]:
exclude=excluded_fields,
exclude_none=True,
)
- # override the default output from pydantic by calling `to_dict()` of each item in volumes (list)
- _items = []
- if self.volumes:
- for _item_volumes in self.volumes:
- if _item_volumes:
- _items.append(_item_volumes.to_dict())
- _dict['volumes'] = _items
- # override the default output from pydantic by calling `to_dict()` of resources
- if self.resources:
- _dict['resources'] = self.resources.to_dict()
return _dict
@classmethod
@@ -97,10 +81,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
- "volumes": [ApplicationVolume.from_dict(_item) for _item in obj["volumes"]] if obj.get("volumes") is not None else None,
- "image": obj.get("image"),
- "ports": obj.get("ports"),
- "resources": ApplicationResources.from_dict(obj["resources"]) if obj.get("resources") is not None else None
+ "image": obj.get("image")
})
return _obj
diff --git a/flightctl/models/inline_application_provider_spec.py b/flightctl/models/inline_application_provider_spec.py
index 90d650b..701ee34 100644
--- a/flightctl/models/inline_application_provider_spec.py
+++ b/flightctl/models/inline_application_provider_spec.py
@@ -19,9 +19,8 @@
import json
from pydantic import BaseModel, ConfigDict, Field
-from typing import Any, ClassVar, Dict, List, Optional
+from typing import Any, ClassVar, Dict, List
from flightctl.models.application_content import ApplicationContent
-from flightctl.models.application_volume import ApplicationVolume
from typing import Optional, Set
from typing_extensions import Self
@@ -29,9 +28,8 @@ class InlineApplicationProviderSpec(BaseModel):
"""
InlineApplicationProviderSpec
""" # noqa: E501
- volumes: Optional[List[ApplicationVolume]] = Field(default=None, description="List of application volumes.")
inline: List[ApplicationContent] = Field(description="A list of application content.")
- __properties: ClassVar[List[str]] = ["volumes", "inline"]
+ __properties: ClassVar[List[str]] = ["inline"]
model_config = ConfigDict(
populate_by_name=True,
@@ -72,13 +70,6 @@ def to_dict(self) -> Dict[str, Any]:
exclude=excluded_fields,
exclude_none=True,
)
- # override the default output from pydantic by calling `to_dict()` of each item in volumes (list)
- _items = []
- if self.volumes:
- for _item_volumes in self.volumes:
- if _item_volumes:
- _items.append(_item_volumes.to_dict())
- _dict['volumes'] = _items
# override the default output from pydantic by calling `to_dict()` of each item in inline (list)
_items = []
if self.inline:
@@ -98,7 +89,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
- "volumes": [ApplicationVolume.from_dict(_item) for _item in obj["volumes"]] if obj.get("volumes") is not None else None,
"inline": [ApplicationContent.from_dict(_item) for _item in obj["inline"]] if obj.get("inline") is not None else None
})
return _obj
diff --git a/flightctl/models/kubernetes_secret_provider_spec_secret_ref.py b/flightctl/models/kubernetes_secret_provider_spec_secret_ref.py
index bbc7fcc..cf8ee16 100644
--- a/flightctl/models/kubernetes_secret_provider_spec_secret_ref.py
+++ b/flightctl/models/kubernetes_secret_provider_spec_secret_ref.py
@@ -19,7 +19,7 @@
import json
from pydantic import BaseModel, ConfigDict, Field, StrictStr
-from typing import Any, ClassVar, Dict, List
+from typing import Any, ClassVar, Dict, List, Optional
from typing import Optional, Set
from typing_extensions import Self
@@ -30,7 +30,9 @@ class KubernetesSecretProviderSpecSecretRef(BaseModel):
name: StrictStr = Field(description="The name of the secret.")
namespace: StrictStr = Field(description="The namespace of the secret.")
mount_path: StrictStr = Field(description="Path in the device's file system at which the secret should be mounted.", alias="mountPath")
- __properties: ClassVar[List[str]] = ["name", "namespace", "mountPath"]
+ user: Optional[StrictStr] = Field(default=None, description="The file's owner, specified either as a name or numeric ID. Defaults to \"root\".")
+ group: Optional[StrictStr] = Field(default=None, description="The file's group, specified either as a name or numeric ID. Defaults to \"root\".")
+ __properties: ClassVar[List[str]] = ["name", "namespace", "mountPath", "user", "group"]
model_config = ConfigDict(
populate_by_name=True,
@@ -85,7 +87,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
_obj = cls.model_validate({
"name": obj.get("name"),
"namespace": obj.get("namespace"),
- "mountPath": obj.get("mountPath")
+ "mountPath": obj.get("mountPath"),
+ "user": obj.get("user"),
+ "group": obj.get("group")
})
return _obj
diff --git a/flightctl/models/oci_auth_type.py b/flightctl/models/oci_auth_type.py
new file mode 100644
index 0000000..aabb1ef
--- /dev/null
+++ b/flightctl/models/oci_auth_type.py
@@ -0,0 +1,37 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class OciAuthType(str, Enum):
+ """
+ The type of authentication for OCI registries.
+ """
+
+ """
+ allowed enum values
+ """
+ DOCKER = 'docker'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of OciAuthType from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/flightctl/models/oci_repo_spec.py b/flightctl/models/oci_repo_spec.py
new file mode 100644
index 0000000..073e46c
--- /dev/null
+++ b/flightctl/models/oci_repo_spec.py
@@ -0,0 +1,131 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ 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, StrictBool, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.models.docker_auth import DockerAuth
+from typing import Optional, Set
+from typing_extensions import Self
+
+class OciRepoSpec(BaseModel):
+ """
+ OCI container registry specification.
+ """ # noqa: E501
+ registry: StrictStr = Field(description="The OCI registry hostname, FQDN, or IP address with optional port (e.g., quay.io, registry.redhat.io, myregistry.com:5000, 192.168.1.1:5000, [::1]:5000).")
+ scheme: Optional[StrictStr] = Field(default='https', description="URL scheme for connecting to the registry.")
+ type: StrictStr = Field(description="The repository type discriminator.")
+ access_mode: Optional[StrictStr] = Field(default='Read', description="Access mode for the registry: \"Read\" for read-only (pull), \"ReadWrite\" for read-write (pull and push).", alias="accessMode")
+ oci_auth: Optional[DockerAuth] = Field(default=None, alias="ociAuth")
+ ca_crt: Optional[StrictStr] = Field(default=None, description="Base64 encoded root CA.", alias="ca.crt")
+ skip_server_verification: Optional[StrictBool] = Field(default=None, description="Skip remote server verification.", alias="skipServerVerification")
+ __properties: ClassVar[List[str]] = ["registry", "scheme", "type", "accessMode", "ociAuth", "ca.crt", "skipServerVerification"]
+
+ @field_validator('scheme')
+ def scheme_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['http', 'https']):
+ raise ValueError("must be one of enum values ('http', 'https')")
+ return value
+
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['oci']):
+ raise ValueError("must be one of enum values ('oci')")
+ return value
+
+ @field_validator('access_mode')
+ def access_mode_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['Read', 'ReadWrite']):
+ raise ValueError("must be one of enum values ('Read', 'ReadWrite')")
+ return value
+
+ 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 OciRepoSpec 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 oci_auth
+ if self.oci_auth:
+ _dict['ociAuth'] = self.oci_auth.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of OciRepoSpec from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "registry": obj.get("registry"),
+ "scheme": obj.get("scheme") if obj.get("scheme") is not None else 'https',
+ "type": obj.get("type"),
+ "accessMode": obj.get("accessMode") if obj.get("accessMode") is not None else 'Read',
+ "ociAuth": DockerAuth.from_dict(obj["ociAuth"]) if obj.get("ociAuth") is not None else None,
+ "ca.crt": obj.get("ca.crt"),
+ "skipServerVerification": obj.get("skipServerVerification")
+ })
+ return _obj
+
+
diff --git a/flightctl/models/organization.py b/flightctl/models/organization.py
index 79bd3d1..691c5ea 100644
--- a/flightctl/models/organization.py
+++ b/flightctl/models/organization.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.models.api_version import ApiVersion
from flightctl.models.object_meta import ObjectMeta
from flightctl.models.organization_spec import OrganizationSpec
from typing import Optional, Set
@@ -29,7 +30,7 @@ class Organization(BaseModel):
"""
Organization
""" # noqa: E501
- api_version: StrictStr = Field(description="APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.", alias="apiVersion")
+ api_version: ApiVersion = Field(alias="apiVersion")
kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
metadata: ObjectMeta
spec: Optional[OrganizationSpec] = None
diff --git a/flightctl/models/organization_list.py b/flightctl/models/organization_list.py
index e71bcaf..f2d6db0 100644
--- a/flightctl/models/organization_list.py
+++ b/flightctl/models/organization_list.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
+from flightctl.models.api_version import ApiVersion
from flightctl.models.list_meta import ListMeta
from flightctl.models.organization import Organization
from typing import Optional, Set
@@ -29,7 +30,7 @@ class OrganizationList(BaseModel):
"""
OrganizationList is a list of Organizations.
""" # noqa: E501
- api_version: StrictStr = Field(description="APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.", alias="apiVersion")
+ api_version: ApiVersion = Field(alias="apiVersion")
kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
metadata: ListMeta
items: List[Organization] = Field(description="List of Organizations.")
diff --git a/flightctl/models/quadlet_application.py b/flightctl/models/quadlet_application.py
new file mode 100644
index 0000000..a97e3c6
--- /dev/null
+++ b/flightctl/models/quadlet_application.py
@@ -0,0 +1,117 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.models.app_type import AppType
+from flightctl.models.application_content import ApplicationContent
+from flightctl.models.application_volume import ApplicationVolume
+from typing import Optional, Set
+from typing_extensions import Self
+
+class QuadletApplication(BaseModel):
+ """
+ QuadletApplication
+ """ # noqa: E501
+ name: Optional[StrictStr] = Field(default=None, description="The application name must be 1–253 characters long, start with a letter or number, and contain no whitespace.")
+ app_type: AppType = Field(alias="appType")
+ env_vars: Optional[Dict[str, StrictStr]] = Field(default=None, description="Environment variable key-value pairs, injected during runtime. The key and value each must be between 1 and 253 characters.", alias="envVars")
+ run_as: Optional[StrictStr] = Field(default=None, description="The username of the system user this application should be run under. This is not the same as the user within any containers of the application (if applicable). Defaults to the user that the agent runs as (generally root) if not specified.", alias="runAs")
+ volumes: Optional[List[ApplicationVolume]] = Field(default=None, description="List of application volumes.")
+ image: StrictStr = Field(description="Reference to the OCI image or artifact for the application package.")
+ inline: List[ApplicationContent] = Field(description="A list of application content.")
+ __properties: ClassVar[List[str]] = ["name", "appType", "envVars", "runAs", "volumes", "image", "inline"]
+
+ 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 QuadletApplication 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 each item in volumes (list)
+ _items = []
+ if self.volumes:
+ for _item_volumes in self.volumes:
+ if _item_volumes:
+ _items.append(_item_volumes.to_dict())
+ _dict['volumes'] = _items
+ # override the default output from pydantic by calling `to_dict()` of each item in inline (list)
+ _items = []
+ if self.inline:
+ for _item_inline in self.inline:
+ if _item_inline:
+ _items.append(_item_inline.to_dict())
+ _dict['inline'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of QuadletApplication from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "name": obj.get("name"),
+ "appType": obj.get("appType"),
+ "envVars": obj.get("envVars"),
+ "runAs": obj.get("runAs"),
+ "volumes": [ApplicationVolume.from_dict(_item) for _item in obj["volumes"]] if obj.get("volumes") is not None else None,
+ "image": obj.get("image"),
+ "inline": [ApplicationContent.from_dict(_item) for _item in obj["inline"]] if obj.get("inline") is not None else None
+ })
+ return _obj
+
+
diff --git a/flightctl/models/repo_spec_type.py b/flightctl/models/repo_spec_type.py
index 8b378d1..50674eb 100644
--- a/flightctl/models/repo_spec_type.py
+++ b/flightctl/models/repo_spec_type.py
@@ -27,8 +27,9 @@ class RepoSpecType(str, Enum):
"""
allowed enum values
"""
- GIT = 'git'
- HTTP = 'http'
+ RepoSpecTypeGit = 'git'
+ RepoSpecTypeHttp = 'http'
+ RepoSpecTypeOci = 'oci'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/flightctl/models/repository.py b/flightctl/models/repository.py
index 6a1ca5e..e6ed3f1 100644
--- a/flightctl/models/repository.py
+++ b/flightctl/models/repository.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.models.api_version import ApiVersion
from flightctl.models.object_meta import ObjectMeta
from flightctl.models.repository_spec import RepositorySpec
from flightctl.models.repository_status import RepositoryStatus
@@ -30,7 +31,7 @@ class Repository(BaseModel):
"""
Repository represents a Git repository or an HTTP endpoint.
""" # noqa: E501
- api_version: StrictStr = Field(description="APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.", alias="apiVersion")
+ api_version: ApiVersion = Field(alias="apiVersion")
kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
metadata: ObjectMeta
spec: RepositorySpec
diff --git a/flightctl/models/repository_list.py b/flightctl/models/repository_list.py
index f7166fd..78d397e 100644
--- a/flightctl/models/repository_list.py
+++ b/flightctl/models/repository_list.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
+from flightctl.models.api_version import ApiVersion
from flightctl.models.list_meta import ListMeta
from flightctl.models.repository import Repository
from typing import Optional, Set
@@ -29,7 +30,7 @@ class RepositoryList(BaseModel):
"""
RepositoryList is a list of Repositories.
""" # noqa: E501
- api_version: StrictStr = Field(description="APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.", alias="apiVersion")
+ api_version: ApiVersion = Field(alias="apiVersion")
kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
metadata: ListMeta
items: List[Repository] = Field(description="List of repositories.")
diff --git a/flightctl/models/repository_spec.py b/flightctl/models/repository_spec.py
index ea8d0c7..726c33e 100644
--- a/flightctl/models/repository_spec.py
+++ b/flightctl/models/repository_spec.py
@@ -18,27 +18,27 @@
import pprint
from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
from typing import Any, List, Optional
-from flightctl.models.generic_repo_spec import GenericRepoSpec
+from flightctl.models.git_repo_spec import GitRepoSpec
from flightctl.models.http_repo_spec import HttpRepoSpec
-from flightctl.models.ssh_repo_spec import SshRepoSpec
+from flightctl.models.oci_repo_spec import OciRepoSpec
from pydantic import StrictStr, Field
from typing import Union, List, Set, Optional, Dict
from typing_extensions import Literal, Self
-REPOSITORYSPEC_ONE_OF_SCHEMAS = ["GenericRepoSpec", "HttpRepoSpec", "SshRepoSpec"]
+REPOSITORYSPEC_ONE_OF_SCHEMAS = ["GitRepoSpec", "HttpRepoSpec", "OciRepoSpec"]
class RepositorySpec(BaseModel):
"""
RepositorySpec describes a configuration repository.
"""
- # data type: GenericRepoSpec
- oneof_schema_1_validator: Optional[GenericRepoSpec] = None
+ # data type: GitRepoSpec
+ oneof_schema_1_validator: Optional[GitRepoSpec] = None
# data type: HttpRepoSpec
oneof_schema_2_validator: Optional[HttpRepoSpec] = None
- # data type: SshRepoSpec
- oneof_schema_3_validator: Optional[SshRepoSpec] = None
- actual_instance: Optional[Union[GenericRepoSpec, HttpRepoSpec, SshRepoSpec]] = None
- one_of_schemas: Set[str] = { "GenericRepoSpec", "HttpRepoSpec", "SshRepoSpec" }
+ # data type: OciRepoSpec
+ oneof_schema_3_validator: Optional[OciRepoSpec] = None
+ actual_instance: Optional[Union[GitRepoSpec, HttpRepoSpec, OciRepoSpec]] = None
+ one_of_schemas: Set[str] = { "GitRepoSpec", "HttpRepoSpec", "OciRepoSpec" }
model_config = ConfigDict(
validate_assignment=True,
@@ -46,6 +46,9 @@ class RepositorySpec(BaseModel):
)
+ discriminator_value_class_map: Dict[str, str] = {
+ }
+
def __init__(self, *args, **kwargs) -> None:
if args:
if len(args) > 1:
@@ -61,9 +64,9 @@ def actual_instance_must_validate_oneof(cls, v):
instance = RepositorySpec.model_construct()
error_messages = []
match = 0
- # validate data type: GenericRepoSpec
- if not isinstance(v, GenericRepoSpec):
- error_messages.append(f"Error! Input type `{type(v)}` is not `GenericRepoSpec`")
+ # validate data type: GitRepoSpec
+ if not isinstance(v, GitRepoSpec):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `GitRepoSpec`")
else:
match += 1
# validate data type: HttpRepoSpec
@@ -71,17 +74,17 @@ def actual_instance_must_validate_oneof(cls, v):
error_messages.append(f"Error! Input type `{type(v)}` is not `HttpRepoSpec`")
else:
match += 1
- # validate data type: SshRepoSpec
- if not isinstance(v, SshRepoSpec):
- error_messages.append(f"Error! Input type `{type(v)}` is not `SshRepoSpec`")
+ # validate data type: OciRepoSpec
+ if not isinstance(v, OciRepoSpec):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OciRepoSpec`")
else:
match += 1
if match > 1:
# more than 1 match
- raise ValueError("Multiple matches found when setting `actual_instance` in RepositorySpec with oneOf schemas: GenericRepoSpec, HttpRepoSpec, SshRepoSpec. Details: " + ", ".join(error_messages))
+ raise ValueError("Multiple matches found when setting `actual_instance` in RepositorySpec with oneOf schemas: GitRepoSpec, HttpRepoSpec, OciRepoSpec. Details: " + ", ".join(error_messages))
elif match == 0:
# no match
- raise ValueError("No match found when setting `actual_instance` in RepositorySpec with oneOf schemas: GenericRepoSpec, HttpRepoSpec, SshRepoSpec. Details: " + ", ".join(error_messages))
+ raise ValueError("No match found when setting `actual_instance` in RepositorySpec with oneOf schemas: GitRepoSpec, HttpRepoSpec, OciRepoSpec. Details: " + ", ".join(error_messages))
else:
return v
@@ -96,9 +99,29 @@ def from_json(cls, json_str: str) -> Self:
error_messages = []
match = 0
- # deserialize data into GenericRepoSpec
+ # use oneOf discriminator to lookup the data type
+ _data_type = json.loads(json_str).get("type")
+ if not _data_type:
+ raise ValueError("Failed to lookup data type from the field `type` in the input.")
+
+ # check if data type is `GitRepoSpec`
+ if _data_type == "git":
+ instance.actual_instance = GitRepoSpec.from_json(json_str)
+ return instance
+
+ # check if data type is `HttpRepoSpec`
+ if _data_type == "http":
+ instance.actual_instance = HttpRepoSpec.from_json(json_str)
+ return instance
+
+ # check if data type is `OciRepoSpec`
+ if _data_type == "oci":
+ instance.actual_instance = OciRepoSpec.from_json(json_str)
+ return instance
+
+ # deserialize data into GitRepoSpec
try:
- instance.actual_instance = GenericRepoSpec.from_json(json_str)
+ instance.actual_instance = GitRepoSpec.from_json(json_str)
match += 1
except (ValidationError, ValueError) as e:
error_messages.append(str(e))
@@ -108,19 +131,19 @@ def from_json(cls, json_str: str) -> Self:
match += 1
except (ValidationError, ValueError) as e:
error_messages.append(str(e))
- # deserialize data into SshRepoSpec
+ # deserialize data into OciRepoSpec
try:
- instance.actual_instance = SshRepoSpec.from_json(json_str)
+ instance.actual_instance = OciRepoSpec.from_json(json_str)
match += 1
except (ValidationError, ValueError) as e:
error_messages.append(str(e))
if match > 1:
# more than 1 match
- raise ValueError("Multiple matches found when deserializing the JSON string into RepositorySpec with oneOf schemas: GenericRepoSpec, HttpRepoSpec, SshRepoSpec. Details: " + ", ".join(error_messages))
+ raise ValueError("Multiple matches found when deserializing the JSON string into RepositorySpec with oneOf schemas: GitRepoSpec, HttpRepoSpec, OciRepoSpec. Details: " + ", ".join(error_messages))
elif match == 0:
# no match
- raise ValueError("No match found when deserializing the JSON string into RepositorySpec with oneOf schemas: GenericRepoSpec, HttpRepoSpec, SshRepoSpec. Details: " + ", ".join(error_messages))
+ raise ValueError("No match found when deserializing the JSON string into RepositorySpec with oneOf schemas: GitRepoSpec, HttpRepoSpec, OciRepoSpec. Details: " + ", ".join(error_messages))
else:
return instance
@@ -134,7 +157,7 @@ def to_json(self) -> str:
else:
return json.dumps(self.actual_instance)
- def to_dict(self) -> Optional[Union[Dict[str, Any], GenericRepoSpec, HttpRepoSpec, SshRepoSpec]]:
+ def to_dict(self) -> Optional[Union[Dict[str, Any], GitRepoSpec, HttpRepoSpec, OciRepoSpec]]:
"""Returns the dict representation of the actual instance"""
if self.actual_instance is None:
return None
diff --git a/flightctl/models/resource_sync.py b/flightctl/models/resource_sync.py
index 812ecd3..91cefb9 100644
--- a/flightctl/models/resource_sync.py
+++ b/flightctl/models/resource_sync.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.models.api_version import ApiVersion
from flightctl.models.object_meta import ObjectMeta
from flightctl.models.resource_sync_spec import ResourceSyncSpec
from flightctl.models.resource_sync_status import ResourceSyncStatus
@@ -30,7 +31,7 @@ class ResourceSync(BaseModel):
"""
ResourceSync represents a reference to one or more files in a repository to sync to resource definitions.
""" # noqa: E501
- api_version: StrictStr = Field(description="APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.", alias="apiVersion")
+ api_version: ApiVersion = Field(alias="apiVersion")
kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
metadata: ObjectMeta
spec: ResourceSyncSpec
diff --git a/flightctl/models/resource_sync_list.py b/flightctl/models/resource_sync_list.py
index d6bb11c..660b8c2 100644
--- a/flightctl/models/resource_sync_list.py
+++ b/flightctl/models/resource_sync_list.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
+from flightctl.models.api_version import ApiVersion
from flightctl.models.list_meta import ListMeta
from flightctl.models.resource_sync import ResourceSync
from typing import Optional, Set
@@ -29,7 +30,7 @@ class ResourceSyncList(BaseModel):
"""
ResourceSyncList
""" # noqa: E501
- api_version: StrictStr = Field(description="APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.", alias="apiVersion")
+ api_version: ApiVersion = Field(alias="apiVersion")
kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
metadata: ListMeta
items: List[ResourceSync] = Field(description="List of resourcesync.")
diff --git a/flightctl/models/resource_sync_spec.py b/flightctl/models/resource_sync_spec.py
index 021502a..f63c243 100644
--- a/flightctl/models/resource_sync_spec.py
+++ b/flightctl/models/resource_sync_spec.py
@@ -19,7 +19,8 @@
import json
from pydantic import BaseModel, ConfigDict, Field, StrictStr
-from typing import Any, ClassVar, Dict, List
+from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.models.resource_sync_type import ResourceSyncType
from typing import Optional, Set
from typing_extensions import Self
@@ -27,10 +28,11 @@ class ResourceSyncSpec(BaseModel):
"""
ResourceSyncSpec describes the file(s) to sync from a repository.
""" # noqa: E501
+ type: Optional[ResourceSyncType] = ResourceSyncType.ResourceSyncTypeFleet
repository: StrictStr = Field(description="The name of the repository resource to use as the sync source.")
target_revision: StrictStr = Field(description="The desired revision in the repository.", alias="targetRevision")
path: StrictStr = Field(description="The path of a file or directory in the repository. If a directory, the directory should contain only resource definitions with no subdirectories. Each file should contain the definition of one or more resources.")
- __properties: ClassVar[List[str]] = ["repository", "targetRevision", "path"]
+ __properties: ClassVar[List[str]] = ["type", "repository", "targetRevision", "path"]
model_config = ConfigDict(
populate_by_name=True,
@@ -83,6 +85,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
+ "type": obj.get("type") if obj.get("type") is not None else ResourceSyncType.ResourceSyncTypeFleet,
"repository": obj.get("repository"),
"targetRevision": obj.get("targetRevision"),
"path": obj.get("path")
diff --git a/flightctl/models/resource_sync_type.py b/flightctl/models/resource_sync_type.py
new file mode 100644
index 0000000..9b68085
--- /dev/null
+++ b/flightctl/models/resource_sync_type.py
@@ -0,0 +1,38 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class ResourceSyncType(str, Enum):
+ """
+ The type of resources this ResourceSync manages. Defaults to fleet if not specified.
+ """
+
+ """
+ allowed enum values
+ """
+ ResourceSyncTypeFleet = 'fleet'
+ ResourceSyncTypeCatalog = 'catalog'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ResourceSyncType from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/flightctl/models/status.py b/flightctl/models/status.py
index 2b057ba..bc2b901 100644
--- a/flightctl/models/status.py
+++ b/flightctl/models/status.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List
+from flightctl.models.api_version import ApiVersion
from typing import Optional, Set
from typing_extensions import Self
@@ -27,7 +28,7 @@ class Status(BaseModel):
"""
Status is a return value for calls that don't return other objects.
""" # noqa: E501
- api_version: StrictStr = Field(description="APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.", alias="apiVersion")
+ api_version: ApiVersion = Field(alias="apiVersion")
kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
code: StrictInt = Field(description="Suggested HTTP return code for this status, 0 if not set.")
message: StrictStr = Field(description="A human-readable description of the status of this operation.")
diff --git a/flightctl/models/template_version.py b/flightctl/models/template_version.py
index a1c8b5c..bb2d910 100644
--- a/flightctl/models/template_version.py
+++ b/flightctl/models/template_version.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.models.api_version import ApiVersion
from flightctl.models.object_meta import ObjectMeta
from flightctl.models.template_version_spec import TemplateVersionSpec
from flightctl.models.template_version_status import TemplateVersionStatus
@@ -30,7 +31,7 @@ class TemplateVersion(BaseModel):
"""
TemplateVersion represents a version of a template.
""" # noqa: E501
- api_version: StrictStr = Field(description="APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.", alias="apiVersion")
+ api_version: ApiVersion = Field(alias="apiVersion")
kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
metadata: ObjectMeta
spec: TemplateVersionSpec
diff --git a/flightctl/models/template_version_list.py b/flightctl/models/template_version_list.py
index dd73f6f..0ccb932 100644
--- a/flightctl/models/template_version_list.py
+++ b/flightctl/models/template_version_list.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
+from flightctl.models.api_version import ApiVersion
from flightctl.models.list_meta import ListMeta
from flightctl.models.template_version import TemplateVersion
from typing import Optional, Set
@@ -29,7 +30,7 @@ class TemplateVersionList(BaseModel):
"""
TemplateVersionList is a list of TemplateVersions.
""" # noqa: E501
- api_version: StrictStr = Field(description="APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.", alias="apiVersion")
+ api_version: ApiVersion = Field(alias="apiVersion")
kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
metadata: ListMeta
items: List[TemplateVersion] = Field(description="List of TemplateVersions.")
diff --git a/flightctl/models/template_version_status.py b/flightctl/models/template_version_status.py
index a8fb9b2..27526f5 100644
--- a/flightctl/models/template_version_status.py
+++ b/flightctl/models/template_version_status.py
@@ -95,7 +95,7 @@ def to_dict(self) -> Dict[str, Any]:
if self.os:
_dict['os'] = self.os.to_dict()
# override the default output from pydantic by calling `to_dict()` of each item in config (list)
- _items = []
+ _items: list[Any] = []
if self.config:
for _item_config in self.config:
if _item_config:
diff --git a/flightctl/v1alpha1/__init__.py b/flightctl/v1alpha1/__init__.py
new file mode 100644
index 0000000..0e63453
--- /dev/null
+++ b/flightctl/v1alpha1/__init__.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+# flake8: noqa
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+__version__ = "1.1.0"
+
+# Define package exports
+__all__ = [
+ "CatalogApi",
+ "ApiResponse",
+ "ApiClient",
+ "Configuration",
+ "OpenApiException",
+ "ApiTypeError",
+ "ApiValueError",
+ "ApiKeyError",
+ "ApiAttributeError",
+ "ApiException",
+ "ApiVersion",
+ "Catalog",
+ "CatalogItem",
+ "CatalogItemArtifact",
+ "CatalogItemArtifactType",
+ "CatalogItemCategory",
+ "CatalogItemConfigurable",
+ "CatalogItemDeprecation",
+ "CatalogItemList",
+ "CatalogItemMeta",
+ "CatalogItemSpec",
+ "CatalogItemType",
+ "CatalogItemVersion",
+ "CatalogList",
+ "CatalogSpec",
+ "CatalogStatus",
+ "Condition",
+ "ConditionBase",
+ "ConditionStatus",
+ "ConditionType",
+ "ListMeta",
+ "ObjectMeta",
+ "PatchRequestInner",
+ "SchemasApiVersion",
+ "SchemasStatus",
+ "Status",
+]
+
+# import apis into sdk package
+from flightctl.v1alpha1.api.catalog_api import CatalogApi as CatalogApi
+
+# import ApiClient
+from flightctl.v1alpha1.api_response import ApiResponse as ApiResponse
+from flightctl.v1alpha1.api_client import ApiClient as ApiClient
+from flightctl.v1alpha1.configuration import Configuration as Configuration
+from flightctl.v1alpha1.exceptions import OpenApiException as OpenApiException
+from flightctl.v1alpha1.exceptions import ApiTypeError as ApiTypeError
+from flightctl.v1alpha1.exceptions import ApiValueError as ApiValueError
+from flightctl.v1alpha1.exceptions import ApiKeyError as ApiKeyError
+from flightctl.v1alpha1.exceptions import ApiAttributeError as ApiAttributeError
+from flightctl.v1alpha1.exceptions import ApiException as ApiException
+
+# import models into sdk package
+from flightctl.v1alpha1.models.api_version import ApiVersion as ApiVersion
+from flightctl.v1alpha1.models.catalog import Catalog as Catalog
+from flightctl.v1alpha1.models.catalog_item import CatalogItem as CatalogItem
+from flightctl.v1alpha1.models.catalog_item_artifact import CatalogItemArtifact as CatalogItemArtifact
+from flightctl.v1alpha1.models.catalog_item_artifact_type import CatalogItemArtifactType as CatalogItemArtifactType
+from flightctl.v1alpha1.models.catalog_item_category import CatalogItemCategory as CatalogItemCategory
+from flightctl.v1alpha1.models.catalog_item_configurable import CatalogItemConfigurable as CatalogItemConfigurable
+from flightctl.v1alpha1.models.catalog_item_deprecation import CatalogItemDeprecation as CatalogItemDeprecation
+from flightctl.v1alpha1.models.catalog_item_list import CatalogItemList as CatalogItemList
+from flightctl.v1alpha1.models.catalog_item_meta import CatalogItemMeta as CatalogItemMeta
+from flightctl.v1alpha1.models.catalog_item_spec import CatalogItemSpec as CatalogItemSpec
+from flightctl.v1alpha1.models.catalog_item_type import CatalogItemType as CatalogItemType
+from flightctl.v1alpha1.models.catalog_item_version import CatalogItemVersion as CatalogItemVersion
+from flightctl.v1alpha1.models.catalog_list import CatalogList as CatalogList
+from flightctl.v1alpha1.models.catalog_spec import CatalogSpec as CatalogSpec
+from flightctl.v1alpha1.models.catalog_status import CatalogStatus as CatalogStatus
+from flightctl.v1alpha1.models.condition import Condition as Condition
+from flightctl.v1alpha1.models.condition_base import ConditionBase as ConditionBase
+from flightctl.v1alpha1.models.condition_status import ConditionStatus as ConditionStatus
+from flightctl.v1alpha1.models.condition_type import ConditionType as ConditionType
+from flightctl.v1alpha1.models.list_meta import ListMeta as ListMeta
+from flightctl.v1alpha1.models.object_meta import ObjectMeta as ObjectMeta
+from flightctl.v1alpha1.models.patch_request_inner import PatchRequestInner as PatchRequestInner
+from flightctl.v1alpha1.models.schemas_api_version import SchemasApiVersion as SchemasApiVersion
+from flightctl.v1alpha1.models.schemas_status import SchemasStatus as SchemasStatus
+from flightctl.v1alpha1.models.status import Status as Status
+
diff --git a/flightctl/v1alpha1/api/__init__.py b/flightctl/v1alpha1/api/__init__.py
new file mode 100644
index 0000000..9b6d9cd
--- /dev/null
+++ b/flightctl/v1alpha1/api/__init__.py
@@ -0,0 +1,5 @@
+# flake8: noqa
+
+# import apis into api package
+from flightctl.v1alpha1.api.catalog_api import CatalogApi
+
diff --git a/flightctl/v1alpha1/api/catalog_api.py b/flightctl/v1alpha1/api/catalog_api.py
new file mode 100644
index 0000000..f37a3d7
--- /dev/null
+++ b/flightctl/v1alpha1/api/catalog_api.py
@@ -0,0 +1,4907 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import Field, StrictInt, StrictStr
+from typing import List, Optional
+from typing_extensions import Annotated
+from flightctl.v1alpha1.models.catalog import Catalog
+from flightctl.v1alpha1.models.catalog_item import CatalogItem
+from flightctl.v1alpha1.models.catalog_item_list import CatalogItemList
+from flightctl.v1alpha1.models.catalog_list import CatalogList
+from flightctl.v1alpha1.models.patch_request_inner import PatchRequestInner
+from flightctl.v1alpha1.models.status import Status
+
+from flightctl.v1alpha1.api_client import ApiClient, RequestSerialized
+from flightctl.v1alpha1.api_response import ApiResponse
+from flightctl.v1alpha1.rest import RESTResponseType
+
+
+class CatalogApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def create_catalog(
+ self,
+ catalog: Catalog,
+ _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,
+ ) -> Catalog:
+ """create_catalog
+
+ Create a Catalog resource.
+
+ :param catalog: (required)
+ :type catalog: Catalog
+ :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._create_catalog_serialize(
+ catalog=catalog,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "Catalog",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 create_catalog_with_http_info(
+ self,
+ catalog: Catalog,
+ _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[Catalog]:
+ """create_catalog
+
+ Create a Catalog resource.
+
+ :param catalog: (required)
+ :type catalog: Catalog
+ :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._create_catalog_serialize(
+ catalog=catalog,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "Catalog",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 create_catalog_without_preload_content(
+ self,
+ catalog: Catalog,
+ _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:
+ """create_catalog
+
+ Create a Catalog resource.
+
+ :param catalog: (required)
+ :type catalog: Catalog
+ :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._create_catalog_serialize(
+ catalog=catalog,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "Catalog",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_catalog_serialize(
+ self,
+ catalog,
+ _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 catalog is not None:
+ _body_params = catalog
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/catalogs',
+ 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 create_catalog_item(
+ self,
+ catalog: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ catalog_item: Annotated[CatalogItem, Field(description="The CatalogItem resource to create.")],
+ _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,
+ ) -> CatalogItem:
+ """create_catalog_item
+
+ Create a CatalogItem in a Catalog.
+
+ :param catalog: The name of the Catalog resource. (required)
+ :type catalog: str
+ :param catalog_item: The CatalogItem resource to create. (required)
+ :type catalog_item: CatalogItem
+ :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._create_catalog_item_serialize(
+ catalog=catalog,
+ catalog_item=catalog_item,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "CatalogItem",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '503': "Status",
+ }
+ 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 create_catalog_item_with_http_info(
+ self,
+ catalog: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ catalog_item: Annotated[CatalogItem, Field(description="The CatalogItem resource to create.")],
+ _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[CatalogItem]:
+ """create_catalog_item
+
+ Create a CatalogItem in a Catalog.
+
+ :param catalog: The name of the Catalog resource. (required)
+ :type catalog: str
+ :param catalog_item: The CatalogItem resource to create. (required)
+ :type catalog_item: CatalogItem
+ :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._create_catalog_item_serialize(
+ catalog=catalog,
+ catalog_item=catalog_item,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "CatalogItem",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '503': "Status",
+ }
+ 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 create_catalog_item_without_preload_content(
+ self,
+ catalog: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ catalog_item: Annotated[CatalogItem, Field(description="The CatalogItem resource to create.")],
+ _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:
+ """create_catalog_item
+
+ Create a CatalogItem in a Catalog.
+
+ :param catalog: The name of the Catalog resource. (required)
+ :type catalog: str
+ :param catalog_item: The CatalogItem resource to create. (required)
+ :type catalog_item: CatalogItem
+ :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._create_catalog_item_serialize(
+ catalog=catalog,
+ catalog_item=catalog_item,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "CatalogItem",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_catalog_item_serialize(
+ self,
+ catalog,
+ catalog_item,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if catalog is not None:
+ _path_params['catalog'] = catalog
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if catalog_item is not None:
+ _body_params = catalog_item
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/catalogs/{catalog}/items',
+ 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 delete_catalog(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the Catalog resource to delete.")],
+ _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,
+ ) -> Status:
+ """delete_catalog
+
+ Delete a Catalog resource.
+
+ :param name: The name of the Catalog resource to delete. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_catalog_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_catalog_with_http_info(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the Catalog resource to delete.")],
+ _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[Status]:
+ """delete_catalog
+
+ Delete a Catalog resource.
+
+ :param name: The name of the Catalog resource to delete. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_catalog_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_catalog_without_preload_content(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the Catalog resource to delete.")],
+ _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:
+ """delete_catalog
+
+ Delete a Catalog resource.
+
+ :param name: The name of the Catalog resource to delete. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_catalog_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_catalog_serialize(
+ self,
+ name,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if name is not None:
+ _path_params['name'] = name
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/catalogs/{name}',
+ 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 delete_catalog_item(
+ self,
+ catalog: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ name: Annotated[StrictStr, Field(description="The name of the CatalogItem resource.")],
+ _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,
+ ) -> Status:
+ """delete_catalog_item
+
+ Delete a CatalogItem from a Catalog.
+
+ :param catalog: The name of the Catalog resource. (required)
+ :type catalog: str
+ :param name: The name of the CatalogItem resource. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_catalog_item_serialize(
+ catalog=catalog,
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_catalog_item_with_http_info(
+ self,
+ catalog: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ name: Annotated[StrictStr, Field(description="The name of the CatalogItem resource.")],
+ _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[Status]:
+ """delete_catalog_item
+
+ Delete a CatalogItem from a Catalog.
+
+ :param catalog: The name of the Catalog resource. (required)
+ :type catalog: str
+ :param name: The name of the CatalogItem resource. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_catalog_item_serialize(
+ catalog=catalog,
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_catalog_item_without_preload_content(
+ self,
+ catalog: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ name: Annotated[StrictStr, Field(description="The name of the CatalogItem resource.")],
+ _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:
+ """delete_catalog_item
+
+ Delete a CatalogItem from a Catalog.
+
+ :param catalog: The name of the Catalog resource. (required)
+ :type catalog: str
+ :param name: The name of the CatalogItem resource. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_catalog_item_serialize(
+ catalog=catalog,
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_catalog_item_serialize(
+ self,
+ catalog,
+ name,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if catalog is not None:
+ _path_params['catalog'] = catalog
+ if name is not None:
+ _path_params['name'] = name
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/catalogs/{catalog}/items/{name}',
+ 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_catalog(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the Catalog resource to get.")],
+ _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,
+ ) -> Catalog:
+ """get_catalog
+
+ Get a Catalog resource.
+
+ :param name: The name of the Catalog resource to get. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_catalog_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Catalog",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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_catalog_with_http_info(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the Catalog resource to get.")],
+ _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[Catalog]:
+ """get_catalog
+
+ Get a Catalog resource.
+
+ :param name: The name of the Catalog resource to get. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_catalog_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Catalog",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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_catalog_without_preload_content(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the Catalog resource to get.")],
+ _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:
+ """get_catalog
+
+ Get a Catalog resource.
+
+ :param name: The name of the Catalog resource to get. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_catalog_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Catalog",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_catalog_serialize(
+ self,
+ name,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if name is not None:
+ _path_params['name'] = name
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/catalogs/{name}',
+ 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_catalog_item(
+ self,
+ catalog: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ name: Annotated[StrictStr, Field(description="The name of the CatalogItem resource.")],
+ _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,
+ ) -> CatalogItem:
+ """get_catalog_item
+
+ Get a CatalogItem from a Catalog.
+
+ :param catalog: The name of the Catalog resource. (required)
+ :type catalog: str
+ :param name: The name of the CatalogItem resource. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_catalog_item_serialize(
+ catalog=catalog,
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CatalogItem",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '503': "Status",
+ }
+ 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_catalog_item_with_http_info(
+ self,
+ catalog: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ name: Annotated[StrictStr, Field(description="The name of the CatalogItem resource.")],
+ _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[CatalogItem]:
+ """get_catalog_item
+
+ Get a CatalogItem from a Catalog.
+
+ :param catalog: The name of the Catalog resource. (required)
+ :type catalog: str
+ :param name: The name of the CatalogItem resource. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_catalog_item_serialize(
+ catalog=catalog,
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CatalogItem",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '503': "Status",
+ }
+ 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_catalog_item_without_preload_content(
+ self,
+ catalog: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ name: Annotated[StrictStr, Field(description="The name of the CatalogItem resource.")],
+ _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:
+ """get_catalog_item
+
+ Get a CatalogItem from a Catalog.
+
+ :param catalog: The name of the Catalog resource. (required)
+ :type catalog: str
+ :param name: The name of the CatalogItem resource. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_catalog_item_serialize(
+ catalog=catalog,
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CatalogItem",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_catalog_item_serialize(
+ self,
+ catalog,
+ name,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if catalog is not None:
+ _path_params['catalog'] = catalog
+ if name is not None:
+ _path_params['name'] = name
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/catalogs/{catalog}/items/{name}',
+ 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_catalog_status(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ _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,
+ ) -> Catalog:
+ """get_catalog_status
+
+ Get status of a Catalog resource.
+
+ :param name: The name of the Catalog resource. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_catalog_status_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Catalog",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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_catalog_status_with_http_info(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ _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[Catalog]:
+ """get_catalog_status
+
+ Get status of a Catalog resource.
+
+ :param name: The name of the Catalog resource. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_catalog_status_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Catalog",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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_catalog_status_without_preload_content(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ _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:
+ """get_catalog_status
+
+ Get status of a Catalog resource.
+
+ :param name: The name of the Catalog resource. (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_catalog_status_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Catalog",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_catalog_status_serialize(
+ self,
+ name,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if name is not None:
+ _path_params['name'] = name
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/catalogs/{name}/status',
+ 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 list_all_catalog_items(
+ self,
+ var_continue: Annotated[Optional[StrictStr], Field(description="An optional parameter to query more results from the server. The value of the parameter must match the value of the 'continue' field in the previous list response.")] = None,
+ label_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their labels. Defaults to everything.")] = None,
+ field_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their fields, supporting operators like '=', '==', and '!=' (e.g., \"key1=value1,key2!=value2\").")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="The maximum number of results returned in the list response. The server will set the 'continue' field in the list response if more results exist. The continue value may then be specified as parameter in a subsequent query.")] = 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,
+ ) -> CatalogItemList:
+ """list_all_catalog_items
+
+ List CatalogItems across all Catalogs.
+
+ :param var_continue: An optional parameter to query more results from the server. The value of the parameter must match the value of the 'continue' field in the previous list response.
+ :type var_continue: str
+ :param label_selector: A selector to restrict the list of returned objects by their labels. Defaults to everything.
+ :type label_selector: str
+ :param field_selector: A selector to restrict the list of returned objects by their fields, supporting operators like '=', '==', and '!=' (e.g., \"key1=value1,key2!=value2\").
+ :type field_selector: str
+ :param limit: The maximum number of results returned in the list response. The server will set the 'continue' field in the list response if more results exist. The continue value may then be specified as parameter in a subsequent query.
+ :type limit: int
+ :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._list_all_catalog_items_serialize(
+ var_continue=var_continue,
+ label_selector=label_selector,
+ field_selector=field_selector,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CatalogItemList",
+ '400': "SchemasStatus",
+ '401': "SchemasStatus",
+ '403': "SchemasStatus",
+ '429': "SchemasStatus",
+ '503': "SchemasStatus",
+ }
+ 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 list_all_catalog_items_with_http_info(
+ self,
+ var_continue: Annotated[Optional[StrictStr], Field(description="An optional parameter to query more results from the server. The value of the parameter must match the value of the 'continue' field in the previous list response.")] = None,
+ label_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their labels. Defaults to everything.")] = None,
+ field_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their fields, supporting operators like '=', '==', and '!=' (e.g., \"key1=value1,key2!=value2\").")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="The maximum number of results returned in the list response. The server will set the 'continue' field in the list response if more results exist. The continue value may then be specified as parameter in a subsequent query.")] = 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[CatalogItemList]:
+ """list_all_catalog_items
+
+ List CatalogItems across all Catalogs.
+
+ :param var_continue: An optional parameter to query more results from the server. The value of the parameter must match the value of the 'continue' field in the previous list response.
+ :type var_continue: str
+ :param label_selector: A selector to restrict the list of returned objects by their labels. Defaults to everything.
+ :type label_selector: str
+ :param field_selector: A selector to restrict the list of returned objects by their fields, supporting operators like '=', '==', and '!=' (e.g., \"key1=value1,key2!=value2\").
+ :type field_selector: str
+ :param limit: The maximum number of results returned in the list response. The server will set the 'continue' field in the list response if more results exist. The continue value may then be specified as parameter in a subsequent query.
+ :type limit: int
+ :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._list_all_catalog_items_serialize(
+ var_continue=var_continue,
+ label_selector=label_selector,
+ field_selector=field_selector,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CatalogItemList",
+ '400': "SchemasStatus",
+ '401': "SchemasStatus",
+ '403': "SchemasStatus",
+ '429': "SchemasStatus",
+ '503': "SchemasStatus",
+ }
+ 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 list_all_catalog_items_without_preload_content(
+ self,
+ var_continue: Annotated[Optional[StrictStr], Field(description="An optional parameter to query more results from the server. The value of the parameter must match the value of the 'continue' field in the previous list response.")] = None,
+ label_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their labels. Defaults to everything.")] = None,
+ field_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their fields, supporting operators like '=', '==', and '!=' (e.g., \"key1=value1,key2!=value2\").")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="The maximum number of results returned in the list response. The server will set the 'continue' field in the list response if more results exist. The continue value may then be specified as parameter in a subsequent query.")] = 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:
+ """list_all_catalog_items
+
+ List CatalogItems across all Catalogs.
+
+ :param var_continue: An optional parameter to query more results from the server. The value of the parameter must match the value of the 'continue' field in the previous list response.
+ :type var_continue: str
+ :param label_selector: A selector to restrict the list of returned objects by their labels. Defaults to everything.
+ :type label_selector: str
+ :param field_selector: A selector to restrict the list of returned objects by their fields, supporting operators like '=', '==', and '!=' (e.g., \"key1=value1,key2!=value2\").
+ :type field_selector: str
+ :param limit: The maximum number of results returned in the list response. The server will set the 'continue' field in the list response if more results exist. The continue value may then be specified as parameter in a subsequent query.
+ :type limit: int
+ :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._list_all_catalog_items_serialize(
+ var_continue=var_continue,
+ label_selector=label_selector,
+ field_selector=field_selector,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CatalogItemList",
+ '400': "SchemasStatus",
+ '401': "SchemasStatus",
+ '403': "SchemasStatus",
+ '429': "SchemasStatus",
+ '503': "SchemasStatus",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _list_all_catalog_items_serialize(
+ self,
+ var_continue,
+ label_selector,
+ field_selector,
+ limit,
+ _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
+ if var_continue is not None:
+
+ _query_params.append(('continue', var_continue))
+
+ if label_selector is not None:
+
+ _query_params.append(('labelSelector', label_selector))
+
+ if field_selector is not None:
+
+ _query_params.append(('fieldSelector', field_selector))
+
+ if limit is not None:
+
+ _query_params.append(('limit', limit))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/catalogitems',
+ 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 list_catalog_items(
+ self,
+ catalog: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ var_continue: Annotated[Optional[StrictStr], Field(description="An optional parameter to query more results from the server.")] = None,
+ label_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their labels.")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="The maximum number of results returned in the list response.")] = 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,
+ ) -> CatalogItemList:
+ """list_catalog_items
+
+ List CatalogItems from a Catalog.
+
+ :param catalog: The name of the Catalog resource. (required)
+ :type catalog: str
+ :param var_continue: An optional parameter to query more results from the server.
+ :type var_continue: str
+ :param label_selector: A selector to restrict the list of returned objects by their labels.
+ :type label_selector: str
+ :param limit: The maximum number of results returned in the list response.
+ :type limit: int
+ :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._list_catalog_items_serialize(
+ catalog=catalog,
+ var_continue=var_continue,
+ label_selector=label_selector,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CatalogItemList",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 list_catalog_items_with_http_info(
+ self,
+ catalog: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ var_continue: Annotated[Optional[StrictStr], Field(description="An optional parameter to query more results from the server.")] = None,
+ label_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their labels.")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="The maximum number of results returned in the list response.")] = 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[CatalogItemList]:
+ """list_catalog_items
+
+ List CatalogItems from a Catalog.
+
+ :param catalog: The name of the Catalog resource. (required)
+ :type catalog: str
+ :param var_continue: An optional parameter to query more results from the server.
+ :type var_continue: str
+ :param label_selector: A selector to restrict the list of returned objects by their labels.
+ :type label_selector: str
+ :param limit: The maximum number of results returned in the list response.
+ :type limit: int
+ :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._list_catalog_items_serialize(
+ catalog=catalog,
+ var_continue=var_continue,
+ label_selector=label_selector,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CatalogItemList",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 list_catalog_items_without_preload_content(
+ self,
+ catalog: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ var_continue: Annotated[Optional[StrictStr], Field(description="An optional parameter to query more results from the server.")] = None,
+ label_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their labels.")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="The maximum number of results returned in the list response.")] = 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:
+ """list_catalog_items
+
+ List CatalogItems from a Catalog.
+
+ :param catalog: The name of the Catalog resource. (required)
+ :type catalog: str
+ :param var_continue: An optional parameter to query more results from the server.
+ :type var_continue: str
+ :param label_selector: A selector to restrict the list of returned objects by their labels.
+ :type label_selector: str
+ :param limit: The maximum number of results returned in the list response.
+ :type limit: int
+ :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._list_catalog_items_serialize(
+ catalog=catalog,
+ var_continue=var_continue,
+ label_selector=label_selector,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CatalogItemList",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _list_catalog_items_serialize(
+ self,
+ catalog,
+ var_continue,
+ label_selector,
+ limit,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if catalog is not None:
+ _path_params['catalog'] = catalog
+ # process the query parameters
+ if var_continue is not None:
+
+ _query_params.append(('continue', var_continue))
+
+ if label_selector is not None:
+
+ _query_params.append(('labelSelector', label_selector))
+
+ if limit is not None:
+
+ _query_params.append(('limit', limit))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/catalogs/{catalog}/items',
+ 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 list_catalogs(
+ self,
+ var_continue: Annotated[Optional[StrictStr], Field(description="An optional parameter to query more results from the server. The value of the paramter must match the value of the 'continue' field in the previous list response.")] = None,
+ label_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their labels. Defaults to everything.")] = None,
+ field_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their fields, supporting operators like '=', '==', and '!=' (e.g., \"key1=value1,key2!=value2\").")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="The maximum number of results returned in the list response. The server will set the 'continue' field in the list response if more results exist. The continue value may then be specified as parameter in a subsequent query.")] = 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,
+ ) -> CatalogList:
+ """list_catalogs
+
+ List Catalog resources.
+
+ :param var_continue: An optional parameter to query more results from the server. The value of the paramter must match the value of the 'continue' field in the previous list response.
+ :type var_continue: str
+ :param label_selector: A selector to restrict the list of returned objects by their labels. Defaults to everything.
+ :type label_selector: str
+ :param field_selector: A selector to restrict the list of returned objects by their fields, supporting operators like '=', '==', and '!=' (e.g., \"key1=value1,key2!=value2\").
+ :type field_selector: str
+ :param limit: The maximum number of results returned in the list response. The server will set the 'continue' field in the list response if more results exist. The continue value may then be specified as parameter in a subsequent query.
+ :type limit: int
+ :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._list_catalogs_serialize(
+ var_continue=var_continue,
+ label_selector=label_selector,
+ field_selector=field_selector,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CatalogList",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 list_catalogs_with_http_info(
+ self,
+ var_continue: Annotated[Optional[StrictStr], Field(description="An optional parameter to query more results from the server. The value of the paramter must match the value of the 'continue' field in the previous list response.")] = None,
+ label_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their labels. Defaults to everything.")] = None,
+ field_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their fields, supporting operators like '=', '==', and '!=' (e.g., \"key1=value1,key2!=value2\").")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="The maximum number of results returned in the list response. The server will set the 'continue' field in the list response if more results exist. The continue value may then be specified as parameter in a subsequent query.")] = 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[CatalogList]:
+ """list_catalogs
+
+ List Catalog resources.
+
+ :param var_continue: An optional parameter to query more results from the server. The value of the paramter must match the value of the 'continue' field in the previous list response.
+ :type var_continue: str
+ :param label_selector: A selector to restrict the list of returned objects by their labels. Defaults to everything.
+ :type label_selector: str
+ :param field_selector: A selector to restrict the list of returned objects by their fields, supporting operators like '=', '==', and '!=' (e.g., \"key1=value1,key2!=value2\").
+ :type field_selector: str
+ :param limit: The maximum number of results returned in the list response. The server will set the 'continue' field in the list response if more results exist. The continue value may then be specified as parameter in a subsequent query.
+ :type limit: int
+ :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._list_catalogs_serialize(
+ var_continue=var_continue,
+ label_selector=label_selector,
+ field_selector=field_selector,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CatalogList",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 list_catalogs_without_preload_content(
+ self,
+ var_continue: Annotated[Optional[StrictStr], Field(description="An optional parameter to query more results from the server. The value of the paramter must match the value of the 'continue' field in the previous list response.")] = None,
+ label_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their labels. Defaults to everything.")] = None,
+ field_selector: Annotated[Optional[StrictStr], Field(description="A selector to restrict the list of returned objects by their fields, supporting operators like '=', '==', and '!=' (e.g., \"key1=value1,key2!=value2\").")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="The maximum number of results returned in the list response. The server will set the 'continue' field in the list response if more results exist. The continue value may then be specified as parameter in a subsequent query.")] = 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:
+ """list_catalogs
+
+ List Catalog resources.
+
+ :param var_continue: An optional parameter to query more results from the server. The value of the paramter must match the value of the 'continue' field in the previous list response.
+ :type var_continue: str
+ :param label_selector: A selector to restrict the list of returned objects by their labels. Defaults to everything.
+ :type label_selector: str
+ :param field_selector: A selector to restrict the list of returned objects by their fields, supporting operators like '=', '==', and '!=' (e.g., \"key1=value1,key2!=value2\").
+ :type field_selector: str
+ :param limit: The maximum number of results returned in the list response. The server will set the 'continue' field in the list response if more results exist. The continue value may then be specified as parameter in a subsequent query.
+ :type limit: int
+ :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._list_catalogs_serialize(
+ var_continue=var_continue,
+ label_selector=label_selector,
+ field_selector=field_selector,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CatalogList",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _list_catalogs_serialize(
+ self,
+ var_continue,
+ label_selector,
+ field_selector,
+ limit,
+ _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
+ if var_continue is not None:
+
+ _query_params.append(('continue', var_continue))
+
+ if label_selector is not None:
+
+ _query_params.append(('labelSelector', label_selector))
+
+ if field_selector is not None:
+
+ _query_params.append(('fieldSelector', field_selector))
+
+ if limit is not None:
+
+ _query_params.append(('limit', limit))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/catalogs',
+ 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 patch_catalog(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the Catalog resource to patch.")],
+ patch_request_inner: List[PatchRequestInner],
+ _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,
+ ) -> Catalog:
+ """patch_catalog
+
+ Patch a Catalog resource.
+
+ :param name: The name of the Catalog resource to patch. (required)
+ :type name: str
+ :param patch_request_inner: (required)
+ :type patch_request_inner: List[PatchRequestInner]
+ :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._patch_catalog_serialize(
+ name=name,
+ patch_request_inner=patch_request_inner,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Catalog",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 patch_catalog_with_http_info(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the Catalog resource to patch.")],
+ patch_request_inner: List[PatchRequestInner],
+ _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[Catalog]:
+ """patch_catalog
+
+ Patch a Catalog resource.
+
+ :param name: The name of the Catalog resource to patch. (required)
+ :type name: str
+ :param patch_request_inner: (required)
+ :type patch_request_inner: List[PatchRequestInner]
+ :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._patch_catalog_serialize(
+ name=name,
+ patch_request_inner=patch_request_inner,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Catalog",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 patch_catalog_without_preload_content(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the Catalog resource to patch.")],
+ patch_request_inner: List[PatchRequestInner],
+ _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:
+ """patch_catalog
+
+ Patch a Catalog resource.
+
+ :param name: The name of the Catalog resource to patch. (required)
+ :type name: str
+ :param patch_request_inner: (required)
+ :type patch_request_inner: List[PatchRequestInner]
+ :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._patch_catalog_serialize(
+ name=name,
+ patch_request_inner=patch_request_inner,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Catalog",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _patch_catalog_serialize(
+ self,
+ name,
+ patch_request_inner,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ 'PatchRequestInner': '',
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if name is not None:
+ _path_params['name'] = name
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if patch_request_inner is not None:
+ _body_params = patch_request_inner
+
+
+ # 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-patch+json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='PATCH',
+ resource_path='/catalogs/{name}',
+ 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 patch_catalog_item(
+ self,
+ catalog: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ name: Annotated[StrictStr, Field(description="The name of the CatalogItem resource to patch.")],
+ patch_request_inner: List[PatchRequestInner],
+ _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,
+ ) -> CatalogItem:
+ """patch_catalog_item
+
+ Patch a CatalogItem in a Catalog.
+
+ :param catalog: The name of the Catalog resource. (required)
+ :type catalog: str
+ :param name: The name of the CatalogItem resource to patch. (required)
+ :type name: str
+ :param patch_request_inner: (required)
+ :type patch_request_inner: List[PatchRequestInner]
+ :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._patch_catalog_item_serialize(
+ catalog=catalog,
+ name=name,
+ patch_request_inner=patch_request_inner,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CatalogItem",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '503': "Status",
+ }
+ 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 patch_catalog_item_with_http_info(
+ self,
+ catalog: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ name: Annotated[StrictStr, Field(description="The name of the CatalogItem resource to patch.")],
+ patch_request_inner: List[PatchRequestInner],
+ _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[CatalogItem]:
+ """patch_catalog_item
+
+ Patch a CatalogItem in a Catalog.
+
+ :param catalog: The name of the Catalog resource. (required)
+ :type catalog: str
+ :param name: The name of the CatalogItem resource to patch. (required)
+ :type name: str
+ :param patch_request_inner: (required)
+ :type patch_request_inner: List[PatchRequestInner]
+ :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._patch_catalog_item_serialize(
+ catalog=catalog,
+ name=name,
+ patch_request_inner=patch_request_inner,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CatalogItem",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '503': "Status",
+ }
+ 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 patch_catalog_item_without_preload_content(
+ self,
+ catalog: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ name: Annotated[StrictStr, Field(description="The name of the CatalogItem resource to patch.")],
+ patch_request_inner: List[PatchRequestInner],
+ _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:
+ """patch_catalog_item
+
+ Patch a CatalogItem in a Catalog.
+
+ :param catalog: The name of the Catalog resource. (required)
+ :type catalog: str
+ :param name: The name of the CatalogItem resource to patch. (required)
+ :type name: str
+ :param patch_request_inner: (required)
+ :type patch_request_inner: List[PatchRequestInner]
+ :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._patch_catalog_item_serialize(
+ catalog=catalog,
+ name=name,
+ patch_request_inner=patch_request_inner,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CatalogItem",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _patch_catalog_item_serialize(
+ self,
+ catalog,
+ name,
+ patch_request_inner,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ 'PatchRequestInner': '',
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if catalog is not None:
+ _path_params['catalog'] = catalog
+ if name is not None:
+ _path_params['name'] = name
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if patch_request_inner is not None:
+ _body_params = patch_request_inner
+
+
+ # 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-patch+json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='PATCH',
+ resource_path='/catalogs/{catalog}/items/{name}',
+ 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 patch_catalog_status(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ patch_request_inner: List[PatchRequestInner],
+ _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,
+ ) -> Catalog:
+ """patch_catalog_status
+
+ Patch status of a Catalog resource.
+
+ :param name: The name of the Catalog resource. (required)
+ :type name: str
+ :param patch_request_inner: (required)
+ :type patch_request_inner: List[PatchRequestInner]
+ :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._patch_catalog_status_serialize(
+ name=name,
+ patch_request_inner=patch_request_inner,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Catalog",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 patch_catalog_status_with_http_info(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ patch_request_inner: List[PatchRequestInner],
+ _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[Catalog]:
+ """patch_catalog_status
+
+ Patch status of a Catalog resource.
+
+ :param name: The name of the Catalog resource. (required)
+ :type name: str
+ :param patch_request_inner: (required)
+ :type patch_request_inner: List[PatchRequestInner]
+ :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._patch_catalog_status_serialize(
+ name=name,
+ patch_request_inner=patch_request_inner,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Catalog",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 patch_catalog_status_without_preload_content(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ patch_request_inner: List[PatchRequestInner],
+ _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:
+ """patch_catalog_status
+
+ Patch status of a Catalog resource.
+
+ :param name: The name of the Catalog resource. (required)
+ :type name: str
+ :param patch_request_inner: (required)
+ :type patch_request_inner: List[PatchRequestInner]
+ :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._patch_catalog_status_serialize(
+ name=name,
+ patch_request_inner=patch_request_inner,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Catalog",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _patch_catalog_status_serialize(
+ self,
+ name,
+ patch_request_inner,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ 'PatchRequestInner': '',
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if name is not None:
+ _path_params['name'] = name
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if patch_request_inner is not None:
+ _body_params = patch_request_inner
+
+
+ # 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-patch+json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='PATCH',
+ resource_path='/catalogs/{name}/status',
+ 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 replace_catalog(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the Catalog resource to update.")],
+ catalog: Catalog,
+ _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,
+ ) -> Catalog:
+ """replace_catalog
+
+ Update a Catalog resource.
+
+ :param name: The name of the Catalog resource to update. (required)
+ :type name: str
+ :param catalog: (required)
+ :type catalog: Catalog
+ :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._replace_catalog_serialize(
+ name=name,
+ catalog=catalog,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Catalog",
+ '201': "Catalog",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 replace_catalog_with_http_info(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the Catalog resource to update.")],
+ catalog: Catalog,
+ _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[Catalog]:
+ """replace_catalog
+
+ Update a Catalog resource.
+
+ :param name: The name of the Catalog resource to update. (required)
+ :type name: str
+ :param catalog: (required)
+ :type catalog: Catalog
+ :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._replace_catalog_serialize(
+ name=name,
+ catalog=catalog,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Catalog",
+ '201': "Catalog",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 replace_catalog_without_preload_content(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the Catalog resource to update.")],
+ catalog: Catalog,
+ _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:
+ """replace_catalog
+
+ Update a Catalog resource.
+
+ :param name: The name of the Catalog resource to update. (required)
+ :type name: str
+ :param catalog: (required)
+ :type catalog: Catalog
+ :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._replace_catalog_serialize(
+ name=name,
+ catalog=catalog,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Catalog",
+ '201': "Catalog",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _replace_catalog_serialize(
+ self,
+ name,
+ catalog,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if name is not None:
+ _path_params['name'] = name
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if catalog is not None:
+ _body_params = catalog
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/catalogs/{name}',
+ 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 replace_catalog_item(
+ self,
+ catalog: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ name: Annotated[StrictStr, Field(description="The name of the CatalogItem resource.")],
+ catalog_item: Annotated[CatalogItem, Field(description="The CatalogItem resource to replace.")],
+ _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,
+ ) -> CatalogItem:
+ """replace_catalog_item
+
+ Replace a CatalogItem in a Catalog.
+
+ :param catalog: The name of the Catalog resource. (required)
+ :type catalog: str
+ :param name: The name of the CatalogItem resource. (required)
+ :type name: str
+ :param catalog_item: The CatalogItem resource to replace. (required)
+ :type catalog_item: CatalogItem
+ :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._replace_catalog_item_serialize(
+ catalog=catalog,
+ name=name,
+ catalog_item=catalog_item,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CatalogItem",
+ '201': "CatalogItem",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '503': "Status",
+ }
+ 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 replace_catalog_item_with_http_info(
+ self,
+ catalog: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ name: Annotated[StrictStr, Field(description="The name of the CatalogItem resource.")],
+ catalog_item: Annotated[CatalogItem, Field(description="The CatalogItem resource to replace.")],
+ _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[CatalogItem]:
+ """replace_catalog_item
+
+ Replace a CatalogItem in a Catalog.
+
+ :param catalog: The name of the Catalog resource. (required)
+ :type catalog: str
+ :param name: The name of the CatalogItem resource. (required)
+ :type name: str
+ :param catalog_item: The CatalogItem resource to replace. (required)
+ :type catalog_item: CatalogItem
+ :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._replace_catalog_item_serialize(
+ catalog=catalog,
+ name=name,
+ catalog_item=catalog_item,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CatalogItem",
+ '201': "CatalogItem",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '503': "Status",
+ }
+ 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 replace_catalog_item_without_preload_content(
+ self,
+ catalog: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ name: Annotated[StrictStr, Field(description="The name of the CatalogItem resource.")],
+ catalog_item: Annotated[CatalogItem, Field(description="The CatalogItem resource to replace.")],
+ _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:
+ """replace_catalog_item
+
+ Replace a CatalogItem in a Catalog.
+
+ :param catalog: The name of the Catalog resource. (required)
+ :type catalog: str
+ :param name: The name of the CatalogItem resource. (required)
+ :type name: str
+ :param catalog_item: The CatalogItem resource to replace. (required)
+ :type catalog_item: CatalogItem
+ :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._replace_catalog_item_serialize(
+ catalog=catalog,
+ name=name,
+ catalog_item=catalog_item,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CatalogItem",
+ '201': "CatalogItem",
+ '400': "Status",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _replace_catalog_item_serialize(
+ self,
+ catalog,
+ name,
+ catalog_item,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if catalog is not None:
+ _path_params['catalog'] = catalog
+ if name is not None:
+ _path_params['name'] = name
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if catalog_item is not None:
+ _body_params = catalog_item
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/catalogs/{catalog}/items/{name}',
+ 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 replace_catalog_status(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ catalog: Catalog,
+ _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,
+ ) -> Catalog:
+ """replace_catalog_status
+
+ Update status of a Catalog resource.
+
+ :param name: The name of the Catalog resource. (required)
+ :type name: str
+ :param catalog: (required)
+ :type catalog: Catalog
+ :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._replace_catalog_status_serialize(
+ name=name,
+ catalog=catalog,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Catalog",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 replace_catalog_status_with_http_info(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ catalog: Catalog,
+ _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[Catalog]:
+ """replace_catalog_status
+
+ Update status of a Catalog resource.
+
+ :param name: The name of the Catalog resource. (required)
+ :type name: str
+ :param catalog: (required)
+ :type catalog: Catalog
+ :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._replace_catalog_status_serialize(
+ name=name,
+ catalog=catalog,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Catalog",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ 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 replace_catalog_status_without_preload_content(
+ self,
+ name: Annotated[StrictStr, Field(description="The name of the Catalog resource.")],
+ catalog: Catalog,
+ _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:
+ """replace_catalog_status
+
+ Update status of a Catalog resource.
+
+ :param name: The name of the Catalog resource. (required)
+ :type name: str
+ :param catalog: (required)
+ :type catalog: Catalog
+ :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._replace_catalog_status_serialize(
+ name=name,
+ catalog=catalog,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Catalog",
+ '401': "Status",
+ '403': "Status",
+ '404': "Status",
+ '409': "Status",
+ '429': "Status",
+ '503': "Status",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _replace_catalog_status_serialize(
+ self,
+ name,
+ catalog,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if name is not None:
+ _path_params['name'] = name
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if catalog is not None:
+ _body_params = catalog
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/catalogs/{name}/status',
+ 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
+ )
+
+
diff --git a/flightctl/v1alpha1/api_client.py b/flightctl/v1alpha1/api_client.py
new file mode 100644
index 0000000..4d63bb8
--- /dev/null
+++ b/flightctl/v1alpha1/api_client.py
@@ -0,0 +1,805 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import datetime
+from dateutil.parser import parse
+from enum import Enum
+import decimal
+import json
+import mimetypes
+import os
+import re
+import tempfile
+import uuid
+
+from urllib.parse import quote
+from typing import Tuple, Optional, List, Dict, Union
+from pydantic import SecretStr
+
+from flightctl.v1alpha1.configuration import Configuration
+from flightctl.v1alpha1.api_response import ApiResponse, T as ApiResponseT
+import flightctl.v1alpha1.models
+from flightctl.v1alpha1 import rest
+from flightctl.v1alpha1.exceptions import (
+ ApiValueError,
+ ApiException,
+ BadRequestException,
+ UnauthorizedException,
+ ForbiddenException,
+ NotFoundException,
+ ServiceException
+)
+
+RequestSerialized = Tuple[str, str, Dict[str, str], Optional[str], List[str]]
+
+class ApiClient:
+ """Generic API client for OpenAPI client library builds.
+
+ OpenAPI generic API client. This client handles the client-
+ server communication, and is invariant across implementations. Specifics of
+ the methods and models for each application are generated from the OpenAPI
+ templates.
+
+ :param configuration: .Configuration object for this client
+ :param header_name: a header to pass when making calls to the API.
+ :param header_value: a header value to pass when making calls to
+ the API.
+ :param cookie: a cookie to include in the header when making calls
+ to the API
+ """
+
+ PRIMITIVE_TYPES = (float, bool, bytes, str, int)
+ NATIVE_TYPES_MAPPING = {
+ 'int': int,
+ 'long': int, # TODO remove as only py3 is supported?
+ 'float': float,
+ 'str': str,
+ 'bool': bool,
+ 'date': datetime.date,
+ 'datetime': datetime.datetime,
+ 'decimal': decimal.Decimal,
+ 'object': object,
+ }
+ _pool = None
+
+ def __init__(
+ self,
+ configuration=None,
+ header_name=None,
+ header_value=None,
+ cookie=None
+ ) -> None:
+ # use default configuration if none is provided
+ if configuration is None:
+ configuration = Configuration.get_default()
+ self.configuration = configuration
+
+ self.rest_client = rest.RESTClientObject(configuration)
+ self.default_headers = {}
+ if header_name is not None:
+ self.default_headers[header_name] = header_value
+ self.cookie = cookie
+ # Set default User-Agent.
+ self.user_agent = 'OpenAPI-Generator/1.1.0/python'
+ self.client_side_validation = configuration.client_side_validation
+
+ def __enter__(self):
+ return self
+
+ def __exit__(self, exc_type, exc_value, traceback):
+ pass
+
+ @property
+ def user_agent(self):
+ """User agent for this API client"""
+ return self.default_headers['User-Agent']
+
+ @user_agent.setter
+ def user_agent(self, value):
+ self.default_headers['User-Agent'] = value
+
+ def set_default_header(self, header_name, header_value):
+ self.default_headers[header_name] = header_value
+
+
+ _default = None
+
+ @classmethod
+ def get_default(cls):
+ """Return new instance of ApiClient.
+
+ This method returns newly created, based on default constructor,
+ object of ApiClient class or returns a copy of default
+ ApiClient.
+
+ :return: The ApiClient object.
+ """
+ if cls._default is None:
+ cls._default = ApiClient()
+ return cls._default
+
+ @classmethod
+ def set_default(cls, default):
+ """Set default instance of ApiClient.
+
+ It stores default ApiClient.
+
+ :param default: object of ApiClient.
+ """
+ cls._default = default
+
+ def param_serialize(
+ self,
+ method,
+ resource_path,
+ path_params=None,
+ query_params=None,
+ header_params=None,
+ body=None,
+ post_params=None,
+ files=None, auth_settings=None,
+ collection_formats=None,
+ _host=None,
+ _request_auth=None
+ ) -> RequestSerialized:
+
+ """Builds the HTTP request params needed by the request.
+ :param method: Method to call.
+ :param resource_path: Path to method endpoint.
+ :param path_params: Path parameters in the url.
+ :param query_params: Query parameters in the url.
+ :param header_params: Header parameters to be
+ placed in the request header.
+ :param body: Request body.
+ :param post_params dict: Request post form parameters,
+ for `application/x-www-form-urlencoded`, `multipart/form-data`.
+ :param auth_settings list: Auth Settings names for the request.
+ :param files dict: key -> filename, value -> filepath,
+ for `multipart/form-data`.
+ :param collection_formats: dict of collection formats for path, query,
+ header, and post parameters.
+ :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.
+ :return: tuple of form (path, http_method, query_params, header_params,
+ body, post_params, files)
+ """
+
+ config = self.configuration
+
+ # header parameters
+ header_params = header_params or {}
+ header_params.update(self.default_headers)
+ if self.cookie:
+ header_params['Cookie'] = self.cookie
+ if header_params:
+ header_params = self.sanitize_for_serialization(header_params)
+ header_params = dict(
+ self.parameters_to_tuples(header_params,collection_formats)
+ )
+
+ # path parameters
+ if path_params:
+ path_params = self.sanitize_for_serialization(path_params)
+ path_params = self.parameters_to_tuples(
+ path_params,
+ collection_formats
+ )
+ for k, v in path_params:
+ # specified safe chars, encode everything
+ resource_path = resource_path.replace(
+ '{%s}' % k,
+ quote(str(v), safe=config.safe_chars_for_path_param)
+ )
+
+ # post parameters
+ if post_params or files:
+ post_params = post_params if post_params else []
+ post_params = self.sanitize_for_serialization(post_params)
+ post_params = self.parameters_to_tuples(
+ post_params,
+ collection_formats
+ )
+ if files:
+ post_params.extend(self.files_parameters(files))
+
+ # auth setting
+ self.update_params_for_auth(
+ header_params,
+ query_params,
+ auth_settings,
+ resource_path,
+ method,
+ body,
+ request_auth=_request_auth
+ )
+
+ # body
+ if body:
+ body = self.sanitize_for_serialization(body)
+
+ # request url
+ if _host is None or self.configuration.ignore_operation_servers:
+ url = self.configuration.host + resource_path
+ else:
+ # use server/host defined in path or operation instead
+ url = _host + resource_path
+
+ # query parameters
+ if query_params:
+ query_params = self.sanitize_for_serialization(query_params)
+ url_query = self.parameters_to_url_query(
+ query_params,
+ collection_formats
+ )
+ url += "?" + url_query
+
+ return method, url, header_params, body, post_params
+
+
+ def call_api(
+ self,
+ method,
+ url,
+ header_params=None,
+ body=None,
+ post_params=None,
+ _request_timeout=None
+ ) -> rest.RESTResponse:
+ """Makes the HTTP request (synchronous)
+ :param method: Method to call.
+ :param url: Path to method endpoint.
+ :param header_params: Header parameters to be
+ placed in the request header.
+ :param body: Request body.
+ :param post_params dict: Request post form parameters,
+ for `application/x-www-form-urlencoded`, `multipart/form-data`.
+ :param _request_timeout: timeout setting for this request.
+ :return: RESTResponse
+ """
+
+ try:
+ # perform request and return response
+ response_data = self.rest_client.request(
+ method, url,
+ headers=header_params,
+ body=body, post_params=post_params,
+ _request_timeout=_request_timeout
+ )
+
+ except ApiException as e:
+ raise e
+
+ return response_data
+
+ def response_deserialize(
+ self,
+ response_data: rest.RESTResponse,
+ response_types_map: Optional[Dict[str, ApiResponseT]]=None
+ ) -> ApiResponse[ApiResponseT]:
+ """Deserializes response into an object.
+ :param response_data: RESTResponse object to be deserialized.
+ :param response_types_map: dict of response types.
+ :return: ApiResponse
+ """
+
+ msg = "RESTResponse.read() must be called before passing it to response_deserialize()"
+ assert response_data.data is not None, msg
+
+ response_type = response_types_map.get(str(response_data.status), None)
+ if not response_type and isinstance(response_data.status, int) and 100 <= response_data.status <= 599:
+ # if not found, look for '1XX', '2XX', etc.
+ response_type = response_types_map.get(str(response_data.status)[0] + "XX", None)
+
+ # deserialize response data
+ response_text = None
+ return_data = None
+ try:
+ if response_type == "bytearray":
+ return_data = response_data.data
+ elif response_type == "file":
+ return_data = self.__deserialize_file(response_data)
+ elif response_type is not None:
+ match = None
+ content_type = response_data.getheader('content-type')
+ if content_type is not None:
+ match = re.search(r"charset=([a-zA-Z\-\d]+)[\s;]?", content_type)
+ encoding = match.group(1) if match else "utf-8"
+ response_text = response_data.data.decode(encoding)
+ return_data = self.deserialize(response_text, response_type, content_type)
+ finally:
+ if not 200 <= response_data.status <= 299:
+ raise ApiException.from_response(
+ http_resp=response_data,
+ body=response_text,
+ data=return_data,
+ )
+
+ return ApiResponse(
+ status_code = response_data.status,
+ data = return_data,
+ headers = response_data.getheaders(),
+ raw_data = response_data.data
+ )
+
+ def sanitize_for_serialization(self, obj):
+ """Builds a JSON POST object.
+
+ If obj is None, return None.
+ If obj is SecretStr, return obj.get_secret_value()
+ If obj is str, int, long, float, bool, return directly.
+ If obj is datetime.datetime, datetime.date
+ convert to string in iso8601 format.
+ If obj is decimal.Decimal return string representation.
+ If obj is list, sanitize each element in the list.
+ If obj is dict, return the dict.
+ If obj is OpenAPI model, return the properties dict.
+
+ :param obj: The data to serialize.
+ :return: The serialized form of data.
+ """
+ if obj is None:
+ return None
+ elif isinstance(obj, Enum):
+ return obj.value
+ elif isinstance(obj, SecretStr):
+ return obj.get_secret_value()
+ elif isinstance(obj, self.PRIMITIVE_TYPES):
+ return obj
+ elif isinstance(obj, uuid.UUID):
+ return str(obj)
+ elif isinstance(obj, list):
+ return [
+ self.sanitize_for_serialization(sub_obj) for sub_obj in obj
+ ]
+ elif isinstance(obj, tuple):
+ return tuple(
+ self.sanitize_for_serialization(sub_obj) for sub_obj in obj
+ )
+ elif isinstance(obj, (datetime.datetime, datetime.date)):
+ return obj.isoformat()
+ elif isinstance(obj, decimal.Decimal):
+ return str(obj)
+
+ elif isinstance(obj, dict):
+ obj_dict = obj
+ else:
+ # Convert model obj to dict except
+ # attributes `openapi_types`, `attribute_map`
+ # and attributes which value is not None.
+ # Convert attribute name to json key in
+ # model definition for request.
+ if hasattr(obj, 'to_dict') and callable(getattr(obj, 'to_dict')):
+ obj_dict = obj.to_dict()
+ else:
+ obj_dict = obj.__dict__
+
+ if isinstance(obj_dict, list):
+ # here we handle instances that can either be a list or something else, and only became a real list by calling to_dict()
+ return self.sanitize_for_serialization(obj_dict)
+
+ return {
+ key: self.sanitize_for_serialization(val)
+ for key, val in obj_dict.items()
+ }
+
+ def deserialize(self, response_text: str, response_type: str, content_type: Optional[str]):
+ """Deserializes response into an object.
+
+ :param response: RESTResponse object to be deserialized.
+ :param response_type: class literal for
+ deserialized object, or string of class name.
+ :param content_type: content type of response.
+
+ :return: deserialized object.
+ """
+
+ # fetch data from response object
+ if content_type is None:
+ try:
+ data = json.loads(response_text)
+ except ValueError:
+ data = response_text
+ elif re.match(r'^application/(json|[\w!#$&.+\-^_]+\+json)\s*(;|$)', content_type, re.IGNORECASE):
+ if response_text == "":
+ data = ""
+ else:
+ data = json.loads(response_text)
+ elif re.match(r'^text\/[a-z.+-]+\s*(;|$)', content_type, re.IGNORECASE):
+ data = response_text
+ else:
+ raise ApiException(
+ status=0,
+ reason="Unsupported content type: {0}".format(content_type)
+ )
+
+ return self.__deserialize(data, response_type)
+
+ def __deserialize(self, data, klass):
+ """Deserializes dict, list, str into an object.
+
+ :param data: dict, list or str.
+ :param klass: class literal, or string of class name.
+
+ :return: object.
+ """
+ if data is None:
+ return None
+
+ if isinstance(klass, str):
+ if klass.startswith('List['):
+ m = re.match(r'List\[(.*)]', klass)
+ assert m is not None, "Malformed List type definition"
+ sub_kls = m.group(1)
+ return [self.__deserialize(sub_data, sub_kls)
+ for sub_data in data]
+
+ if klass.startswith('Dict['):
+ m = re.match(r'Dict\[([^,]*), (.*)]', klass)
+ assert m is not None, "Malformed Dict type definition"
+ sub_kls = m.group(2)
+ return {k: self.__deserialize(v, sub_kls)
+ for k, v in data.items()}
+
+ # convert str to class
+ if klass in self.NATIVE_TYPES_MAPPING:
+ klass = self.NATIVE_TYPES_MAPPING[klass]
+ else:
+ klass = getattr(flightctl.v1alpha1.models, klass)
+
+ if klass in self.PRIMITIVE_TYPES:
+ return self.__deserialize_primitive(data, klass)
+ elif klass is object:
+ return self.__deserialize_object(data)
+ elif klass is datetime.date:
+ return self.__deserialize_date(data)
+ elif klass is datetime.datetime:
+ return self.__deserialize_datetime(data)
+ elif klass is decimal.Decimal:
+ return decimal.Decimal(data)
+ elif issubclass(klass, Enum):
+ return self.__deserialize_enum(data, klass)
+ else:
+ return self.__deserialize_model(data, klass)
+
+ def parameters_to_tuples(self, params, collection_formats):
+ """Get parameters as list of tuples, formatting collections.
+
+ :param params: Parameters as dict or list of two-tuples
+ :param dict collection_formats: Parameter collection formats
+ :return: Parameters as list of tuples, collections formatted
+ """
+ new_params: List[Tuple[str, str]] = []
+ if collection_formats is None:
+ collection_formats = {}
+ for k, v in params.items() if isinstance(params, dict) else params:
+ if k in collection_formats:
+ collection_format = collection_formats[k]
+ if collection_format == 'multi':
+ new_params.extend((k, value) for value in v)
+ else:
+ if collection_format == 'ssv':
+ delimiter = ' '
+ elif collection_format == 'tsv':
+ delimiter = '\t'
+ elif collection_format == 'pipes':
+ delimiter = '|'
+ else: # csv is the default
+ delimiter = ','
+ new_params.append(
+ (k, delimiter.join(str(value) for value in v)))
+ else:
+ new_params.append((k, v))
+ return new_params
+
+ def parameters_to_url_query(self, params, collection_formats):
+ """Get parameters as list of tuples, formatting collections.
+
+ :param params: Parameters as dict or list of two-tuples
+ :param dict collection_formats: Parameter collection formats
+ :return: URL query string (e.g. a=Hello%20World&b=123)
+ """
+ new_params: List[Tuple[str, str]] = []
+ if collection_formats is None:
+ collection_formats = {}
+ for k, v in params.items() if isinstance(params, dict) else params:
+ if isinstance(v, bool):
+ v = str(v).lower()
+ if isinstance(v, (int, float)):
+ v = str(v)
+ if isinstance(v, dict):
+ v = json.dumps(v)
+
+ if k in collection_formats:
+ collection_format = collection_formats[k]
+ if collection_format == 'multi':
+ new_params.extend((k, quote(str(value))) for value in v)
+ else:
+ if collection_format == 'ssv':
+ delimiter = ' '
+ elif collection_format == 'tsv':
+ delimiter = '\t'
+ elif collection_format == 'pipes':
+ delimiter = '|'
+ else: # csv is the default
+ delimiter = ','
+ new_params.append(
+ (k, delimiter.join(quote(str(value)) for value in v))
+ )
+ else:
+ new_params.append((k, quote(str(v))))
+
+ return "&".join(["=".join(map(str, item)) for item in new_params])
+
+ def files_parameters(
+ self,
+ files: Dict[str, Union[str, bytes, List[str], List[bytes], Tuple[str, bytes]]],
+ ):
+ """Builds form parameters.
+
+ :param files: File parameters.
+ :return: Form parameters with files.
+ """
+ params = []
+ for k, v in files.items():
+ if isinstance(v, str):
+ with open(v, 'rb') as f:
+ filename = os.path.basename(f.name)
+ filedata = f.read()
+ elif isinstance(v, bytes):
+ filename = k
+ filedata = v
+ elif isinstance(v, tuple):
+ filename, filedata = v
+ elif isinstance(v, list):
+ for file_param in v:
+ params.extend(self.files_parameters({k: file_param}))
+ continue
+ else:
+ raise ValueError("Unsupported file value")
+ mimetype = (
+ mimetypes.guess_type(filename)[0]
+ or 'application/octet-stream'
+ )
+ params.append(
+ tuple([k, tuple([filename, filedata, mimetype])])
+ )
+ return params
+
+ def select_header_accept(self, accepts: List[str]) -> Optional[str]:
+ """Returns `Accept` based on an array of accepts provided.
+
+ :param accepts: List of headers.
+ :return: Accept (e.g. application/json).
+ """
+ if not accepts:
+ return None
+
+ for accept in accepts:
+ if re.search('json', accept, re.IGNORECASE):
+ return accept
+
+ return accepts[0]
+
+ def select_header_content_type(self, content_types):
+ """Returns `Content-Type` based on an array of content_types provided.
+
+ :param content_types: List of content-types.
+ :return: Content-Type (e.g. application/json).
+ """
+ if not content_types:
+ return None
+
+ for content_type in content_types:
+ if re.search('json', content_type, re.IGNORECASE):
+ return content_type
+
+ return content_types[0]
+
+ def update_params_for_auth(
+ self,
+ headers,
+ queries,
+ auth_settings,
+ resource_path,
+ method,
+ body,
+ request_auth=None
+ ) -> None:
+ """Updates header and query params based on authentication setting.
+
+ :param headers: Header parameters dict to be updated.
+ :param queries: Query parameters tuple list to be updated.
+ :param auth_settings: Authentication setting identifiers list.
+ :resource_path: A string representation of the HTTP request resource path.
+ :method: A string representation of the HTTP request method.
+ :body: A object representing the body of the HTTP request.
+ The object type is the return value of sanitize_for_serialization().
+ :param request_auth: if set, the provided settings will
+ override the token in the configuration.
+ """
+ if not auth_settings:
+ return
+
+ if request_auth:
+ self._apply_auth_params(
+ headers,
+ queries,
+ resource_path,
+ method,
+ body,
+ request_auth
+ )
+ else:
+ for auth in auth_settings:
+ auth_setting = self.configuration.auth_settings().get(auth)
+ if auth_setting:
+ self._apply_auth_params(
+ headers,
+ queries,
+ resource_path,
+ method,
+ body,
+ auth_setting
+ )
+
+ def _apply_auth_params(
+ self,
+ headers,
+ queries,
+ resource_path,
+ method,
+ body,
+ auth_setting
+ ) -> None:
+ """Updates the request parameters based on a single auth_setting
+
+ :param headers: Header parameters dict to be updated.
+ :param queries: Query parameters tuple list to be updated.
+ :resource_path: A string representation of the HTTP request resource path.
+ :method: A string representation of the HTTP request method.
+ :body: A object representing the body of the HTTP request.
+ The object type is the return value of sanitize_for_serialization().
+ :param auth_setting: auth settings for the endpoint
+ """
+ if auth_setting['in'] == 'cookie':
+ headers['Cookie'] = auth_setting['value']
+ elif auth_setting['in'] == 'header':
+ if auth_setting['type'] != 'http-signature':
+ headers[auth_setting['key']] = auth_setting['value']
+ elif auth_setting['in'] == 'query':
+ queries.append((auth_setting['key'], auth_setting['value']))
+ else:
+ raise ApiValueError(
+ 'Authentication token must be in `query` or `header`'
+ )
+
+ def __deserialize_file(self, response):
+ """Deserializes body to file
+
+ Saves response body into a file in a temporary folder,
+ using the filename from the `Content-Disposition` header if provided.
+
+ handle file downloading
+ save response body into a tmp file and return the instance
+
+ :param response: RESTResponse.
+ :return: file path.
+ """
+ fd, path = tempfile.mkstemp(dir=self.configuration.temp_folder_path)
+ os.close(fd)
+ os.remove(path)
+
+ content_disposition = response.getheader("Content-Disposition")
+ if content_disposition:
+ m = re.search(
+ r'filename=[\'"]?([^\'"\s]+)[\'"]?',
+ content_disposition
+ )
+ assert m is not None, "Unexpected 'content-disposition' header value"
+ filename = m.group(1)
+ path = os.path.join(os.path.dirname(path), filename)
+
+ with open(path, "wb") as f:
+ f.write(response.data)
+
+ return path
+
+ def __deserialize_primitive(self, data, klass):
+ """Deserializes string to primitive type.
+
+ :param data: str.
+ :param klass: class literal.
+
+ :return: int, long, float, str, bool.
+ """
+ try:
+ return klass(data)
+ except UnicodeEncodeError:
+ return str(data)
+ except TypeError:
+ return data
+
+ def __deserialize_object(self, value):
+ """Return an original value.
+
+ :return: object.
+ """
+ return value
+
+ def __deserialize_date(self, string):
+ """Deserializes string to date.
+
+ :param string: str.
+ :return: date.
+ """
+ try:
+ return parse(string).date()
+ except ImportError:
+ return string
+ except ValueError:
+ raise rest.ApiException(
+ status=0,
+ reason="Failed to parse `{0}` as date object".format(string)
+ )
+
+ def __deserialize_datetime(self, string):
+ """Deserializes string to datetime.
+
+ The string should be in iso8601 datetime format.
+
+ :param string: str.
+ :return: datetime.
+ """
+ try:
+ return parse(string)
+ except ImportError:
+ return string
+ except ValueError:
+ raise rest.ApiException(
+ status=0,
+ reason=(
+ "Failed to parse `{0}` as datetime object"
+ .format(string)
+ )
+ )
+
+ def __deserialize_enum(self, data, klass):
+ """Deserializes primitive type to enum.
+
+ :param data: primitive type.
+ :param klass: class literal.
+ :return: enum value.
+ """
+ try:
+ return klass(data)
+ except ValueError:
+ raise rest.ApiException(
+ status=0,
+ reason=(
+ "Failed to parse `{0}` as `{1}`"
+ .format(data, klass)
+ )
+ )
+
+ def __deserialize_model(self, data, klass):
+ """Deserializes list or dict to model.
+
+ :param data: dict, list.
+ :param klass: class literal.
+ :return: model object.
+ """
+
+ return klass.from_dict(data)
diff --git a/flightctl/v1alpha1/api_response.py b/flightctl/v1alpha1/api_response.py
new file mode 100644
index 0000000..9bc7c11
--- /dev/null
+++ b/flightctl/v1alpha1/api_response.py
@@ -0,0 +1,21 @@
+"""API response object."""
+
+from __future__ import annotations
+from typing import Optional, Generic, Mapping, TypeVar
+from pydantic import Field, StrictInt, StrictBytes, BaseModel
+
+T = TypeVar("T")
+
+class ApiResponse(BaseModel, Generic[T]):
+ """
+ API response object
+ """
+
+ status_code: StrictInt = Field(description="HTTP status code")
+ headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers")
+ data: T = Field(description="Deserialized data given the data type")
+ raw_data: StrictBytes = Field(description="Raw data (HTTP response body)")
+
+ model_config = {
+ "arbitrary_types_allowed": True
+ }
diff --git a/flightctl/v1alpha1/configuration.py b/flightctl/v1alpha1/configuration.py
new file mode 100644
index 0000000..9d4348d
--- /dev/null
+++ b/flightctl/v1alpha1/configuration.py
@@ -0,0 +1,616 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import copy
+import http.client as httplib
+import logging
+from logging import FileHandler
+import multiprocessing
+import sys
+from typing import Any, ClassVar, Dict, List, Literal, Optional, TypedDict, Union
+from typing_extensions import NotRequired, Self
+
+import urllib3
+
+
+JSON_SCHEMA_VALIDATION_KEYWORDS = {
+ 'multipleOf', 'maximum', 'exclusiveMaximum',
+ 'minimum', 'exclusiveMinimum', 'maxLength',
+ 'minLength', 'pattern', 'maxItems', 'minItems'
+}
+
+ServerVariablesT = Dict[str, str]
+
+GenericAuthSetting = TypedDict(
+ "GenericAuthSetting",
+ {
+ "type": str,
+ "in": str,
+ "key": str,
+ "value": str,
+ },
+)
+
+
+OAuth2AuthSetting = TypedDict(
+ "OAuth2AuthSetting",
+ {
+ "type": Literal["oauth2"],
+ "in": Literal["header"],
+ "key": Literal["Authorization"],
+ "value": str,
+ },
+)
+
+
+APIKeyAuthSetting = TypedDict(
+ "APIKeyAuthSetting",
+ {
+ "type": Literal["api_key"],
+ "in": str,
+ "key": str,
+ "value": Optional[str],
+ },
+)
+
+
+BasicAuthSetting = TypedDict(
+ "BasicAuthSetting",
+ {
+ "type": Literal["basic"],
+ "in": Literal["header"],
+ "key": Literal["Authorization"],
+ "value": Optional[str],
+ },
+)
+
+
+BearerFormatAuthSetting = TypedDict(
+ "BearerFormatAuthSetting",
+ {
+ "type": Literal["bearer"],
+ "in": Literal["header"],
+ "format": Literal["JWT"],
+ "key": Literal["Authorization"],
+ "value": str,
+ },
+)
+
+
+BearerAuthSetting = TypedDict(
+ "BearerAuthSetting",
+ {
+ "type": Literal["bearer"],
+ "in": Literal["header"],
+ "key": Literal["Authorization"],
+ "value": str,
+ },
+)
+
+
+HTTPSignatureAuthSetting = TypedDict(
+ "HTTPSignatureAuthSetting",
+ {
+ "type": Literal["http-signature"],
+ "in": Literal["header"],
+ "key": Literal["Authorization"],
+ "value": None,
+ },
+)
+
+
+AuthSettings = TypedDict(
+ "AuthSettings",
+ {
+ "bearerAuth": BearerFormatAuthSetting,
+ "orgId": APIKeyAuthSetting,
+ },
+ total=False,
+)
+
+
+class HostSettingVariable(TypedDict):
+ description: str
+ default_value: str
+ enum_values: List[str]
+
+
+class HostSetting(TypedDict):
+ url: str
+ description: str
+ variables: NotRequired[Dict[str, HostSettingVariable]]
+
+
+class Configuration:
+ """This class contains various settings of the API client.
+
+ :param host: Base url.
+ :param ignore_operation_servers
+ Boolean to ignore operation servers for the API client.
+ Config will use `host` as the base url regardless of the operation servers.
+ :param api_key: Dict to store API key(s).
+ Each entry in the dict specifies an API key.
+ The dict key is the name of the security scheme in the OAS specification.
+ The dict value is the API key secret.
+ :param api_key_prefix: Dict to store API prefix (e.g. Bearer).
+ The dict key is the name of the security scheme in the OAS specification.
+ The dict value is an API key prefix when generating the auth data.
+ :param username: Username for HTTP basic authentication.
+ :param password: Password for HTTP basic authentication.
+ :param access_token: Access token.
+ :param server_index: Index to servers configuration.
+ :param server_variables: Mapping with string values to replace variables in
+ templated server configuration. The validation of enums is performed for
+ variables with defined enum values before.
+ :param server_operation_index: Mapping from operation ID to an index to server
+ configuration.
+ :param server_operation_variables: Mapping from operation ID to a mapping with
+ string values to replace variables in templated server configuration.
+ The validation of enums is performed for variables with defined enum
+ values before.
+ :param ssl_ca_cert: str - the path to a file of concatenated CA certificates
+ in PEM format.
+ :param retries: Number of retries for API requests.
+ :param ca_cert_data: verify the peer using concatenated CA certificate data
+ in PEM (str) or DER (bytes) format.
+ :param cert_file: the path to a client certificate file, for mTLS.
+ :param key_file: the path to a client key file, for mTLS.
+
+ :Example:
+
+ API Key Authentication Example.
+ Given the following security scheme in the OpenAPI specification:
+ components:
+ securitySchemes:
+ cookieAuth: # name for the security scheme
+ type: apiKey
+ in: cookie
+ name: JSESSIONID # cookie name
+
+ You can programmatically set the cookie:
+
+conf = flightctl.v1alpha1.Configuration(
+ api_key={'cookieAuth': 'abc123'}
+ api_key_prefix={'cookieAuth': 'JSESSIONID'}
+)
+
+ The following cookie will be added to the HTTP request:
+ Cookie: JSESSIONID abc123
+ """
+
+ _default: ClassVar[Optional[Self]] = None
+
+ def __init__(
+ self,
+ host: Optional[str]=None,
+ api_key: Optional[Dict[str, str]]=None,
+ api_key_prefix: Optional[Dict[str, str]]=None,
+ username: Optional[str]=None,
+ password: Optional[str]=None,
+ access_token: Optional[str]=None,
+ server_index: Optional[int]=None,
+ server_variables: Optional[ServerVariablesT]=None,
+ server_operation_index: Optional[Dict[int, int]]=None,
+ server_operation_variables: Optional[Dict[int, ServerVariablesT]]=None,
+ ignore_operation_servers: bool=False,
+ ssl_ca_cert: Optional[str]=None,
+ retries: Optional[int] = None,
+ ca_cert_data: Optional[Union[str, bytes]] = None,
+ cert_file: Optional[str]=None,
+ key_file: Optional[str]=None,
+ *,
+ debug: Optional[bool] = None,
+ ) -> None:
+ """Constructor
+ """
+ self._base_path = "/api/v1" if host is None else host.rstrip("/") + "/api/v1"
+ """Default Base url
+ """
+ self.server_index = 0 if server_index is None and host is None else server_index
+ self.server_operation_index = server_operation_index or {}
+ """Default server index
+ """
+ self.server_variables = server_variables or {}
+ self.server_operation_variables = server_operation_variables or {}
+ """Default server variables
+ """
+ self.ignore_operation_servers = ignore_operation_servers
+ """Ignore operation servers
+ """
+ self.temp_folder_path = None
+ """Temp file folder for downloading files
+ """
+ # Authentication Settings
+ self.api_key = {}
+ if api_key:
+ self.api_key = api_key
+ """dict to store API key(s)
+ """
+ self.api_key_prefix = {}
+ if api_key_prefix:
+ self.api_key_prefix = api_key_prefix
+ """dict to store API prefix (e.g. Bearer)
+ """
+ self.refresh_api_key_hook = None
+ """function hook to refresh API key if expired
+ """
+ self.username = username
+ """Username for HTTP basic authentication
+ """
+ self.password = password
+ """Password for HTTP basic authentication
+ """
+ self.access_token = access_token
+ """Access token
+ """
+ self.logger = {}
+ """Logging Settings
+ """
+ self.logger["package_logger"] = logging.getLogger("flightctl.v1alpha1")
+ self.logger["urllib3_logger"] = logging.getLogger("urllib3")
+ self.logger_format = '%(asctime)s %(levelname)s %(message)s'
+ """Log format
+ """
+ self.logger_stream_handler = None
+ """Log stream handler
+ """
+ self.logger_file_handler: Optional[FileHandler] = None
+ """Log file handler
+ """
+ self.logger_file = None
+ """Debug file location
+ """
+ if debug is not None:
+ self.debug = debug
+ else:
+ self.__debug = False
+ """Debug switch
+ """
+
+ self.verify_ssl = True
+ """SSL/TLS verification
+ Set this to false to skip verifying SSL certificate when calling API
+ from https server.
+ """
+ self.ssl_ca_cert = ssl_ca_cert
+ """Set this to customize the certificate file to verify the peer.
+ """
+ self.ca_cert_data = ca_cert_data
+ """Set this to verify the peer using PEM (str) or DER (bytes)
+ certificate data.
+ """
+ self.cert_file = cert_file
+ """client certificate file
+ """
+ self.key_file = key_file
+ """client key file
+ """
+ self.assert_hostname = None
+ """Set this to True/False to enable/disable SSL hostname verification.
+ """
+ self.tls_server_name = None
+ """SSL/TLS Server Name Indication (SNI)
+ Set this to the SNI value expected by the server.
+ """
+
+ self.connection_pool_maxsize = multiprocessing.cpu_count() * 5
+ """urllib3 connection pool's maximum number of connections saved
+ per pool. urllib3 uses 1 connection as default value, but this is
+ not the best value when you are making a lot of possibly parallel
+ requests to the same host, which is often the case here.
+ cpu_count * 5 is used as default value to increase performance.
+ """
+
+ self.proxy: Optional[str] = None
+ """Proxy URL
+ """
+ self.proxy_headers = None
+ """Proxy headers
+ """
+ self.safe_chars_for_path_param = ''
+ """Safe chars for path_param
+ """
+ self.retries = retries
+ """Adding retries to override urllib3 default value 3
+ """
+ # Enable client side validation
+ self.client_side_validation = True
+
+ self.socket_options = None
+ """Options to pass down to the underlying urllib3 socket
+ """
+
+ self.datetime_format = "%Y-%m-%dT%H:%M:%S.%f%z"
+ """datetime format
+ """
+
+ self.date_format = "%Y-%m-%d"
+ """date format
+ """
+
+ def __deepcopy__(self, memo: Dict[int, Any]) -> Self:
+ cls = self.__class__
+ result = cls.__new__(cls)
+ memo[id(self)] = result
+ for k, v in self.__dict__.items():
+ if k not in ('logger', 'logger_file_handler'):
+ setattr(result, k, copy.deepcopy(v, memo))
+ # shallow copy of loggers
+ result.logger = copy.copy(self.logger)
+ # use setters to configure loggers
+ result.logger_file = self.logger_file
+ result.debug = self.debug
+ return result
+
+ def __setattr__(self, name: str, value: Any) -> None:
+ object.__setattr__(self, name, value)
+
+ @classmethod
+ def set_default(cls, default: Optional[Self]) -> None:
+ """Set default instance of configuration.
+
+ It stores default configuration, which can be
+ returned by get_default_copy method.
+
+ :param default: object of Configuration
+ """
+ cls._default = default
+
+ @classmethod
+ def get_default_copy(cls) -> Self:
+ """Deprecated. Please use `get_default` instead.
+
+ Deprecated. Please use `get_default` instead.
+
+ :return: The configuration object.
+ """
+ return cls.get_default()
+
+ @classmethod
+ def get_default(cls) -> Self:
+ """Return the default configuration.
+
+ This method returns newly created, based on default constructor,
+ object of Configuration class or returns a copy of default
+ configuration.
+
+ :return: The configuration object.
+ """
+ if cls._default is None:
+ cls._default = cls()
+ return cls._default
+
+ @property
+ def logger_file(self) -> Optional[str]:
+ """The logger file.
+
+ If the logger_file is None, then add stream handler and remove file
+ handler. Otherwise, add file handler and remove stream handler.
+
+ :param value: The logger_file path.
+ :type: str
+ """
+ return self.__logger_file
+
+ @logger_file.setter
+ def logger_file(self, value: Optional[str]) -> None:
+ """The logger file.
+
+ If the logger_file is None, then add stream handler and remove file
+ handler. Otherwise, add file handler and remove stream handler.
+
+ :param value: The logger_file path.
+ :type: str
+ """
+ self.__logger_file = value
+ if self.__logger_file:
+ # If set logging file,
+ # then add file handler and remove stream handler.
+ self.logger_file_handler = logging.FileHandler(self.__logger_file)
+ self.logger_file_handler.setFormatter(self.logger_formatter)
+ for _, logger in self.logger.items():
+ logger.addHandler(self.logger_file_handler)
+
+ @property
+ def debug(self) -> bool:
+ """Debug status
+
+ :param value: The debug status, True or False.
+ :type: bool
+ """
+ return self.__debug
+
+ @debug.setter
+ def debug(self, value: bool) -> None:
+ """Debug status
+
+ :param value: The debug status, True or False.
+ :type: bool
+ """
+ self.__debug = value
+ if self.__debug:
+ # if debug status is True, turn on debug logging
+ for _, logger in self.logger.items():
+ logger.setLevel(logging.DEBUG)
+ # turn on httplib debug
+ httplib.HTTPConnection.debuglevel = 1
+ else:
+ # if debug status is False, turn off debug logging,
+ # setting log level to default `logging.WARNING`
+ for _, logger in self.logger.items():
+ logger.setLevel(logging.WARNING)
+ # turn off httplib debug
+ httplib.HTTPConnection.debuglevel = 0
+
+ @property
+ def logger_format(self) -> str:
+ """The logger format.
+
+ The logger_formatter will be updated when sets logger_format.
+
+ :param value: The format string.
+ :type: str
+ """
+ return self.__logger_format
+
+ @logger_format.setter
+ def logger_format(self, value: str) -> None:
+ """The logger format.
+
+ The logger_formatter will be updated when sets logger_format.
+
+ :param value: The format string.
+ :type: str
+ """
+ self.__logger_format = value
+ self.logger_formatter = logging.Formatter(self.__logger_format)
+
+ def get_api_key_with_prefix(self, identifier: str, alias: Optional[str]=None) -> Optional[str]:
+ """Gets API key (with prefix if set).
+
+ :param identifier: The identifier of apiKey.
+ :param alias: The alternative identifier of apiKey.
+ :return: The token for api key authentication.
+ """
+ if self.refresh_api_key_hook is not None:
+ self.refresh_api_key_hook(self)
+ key = self.api_key.get(identifier, self.api_key.get(alias) if alias is not None else None)
+ if key:
+ prefix = self.api_key_prefix.get(identifier)
+ if prefix:
+ return "%s %s" % (prefix, key)
+ else:
+ return key
+
+ return None
+
+ def get_basic_auth_token(self) -> Optional[str]:
+ """Gets HTTP basic authentication header (string).
+
+ :return: The token for basic HTTP authentication.
+ """
+ username = ""
+ if self.username is not None:
+ username = self.username
+ password = ""
+ if self.password is not None:
+ password = self.password
+ return urllib3.util.make_headers(
+ basic_auth=username + ':' + password
+ ).get('authorization')
+
+ def auth_settings(self)-> AuthSettings:
+ """Gets Auth Settings dict for api client.
+
+ :return: The Auth Settings information dict.
+ """
+ auth: AuthSettings = {}
+ if self.access_token is not None:
+ auth['bearerAuth'] = {
+ 'type': 'bearer',
+ 'in': 'header',
+ 'format': 'JWT',
+ 'key': 'Authorization',
+ 'value': 'Bearer ' + self.access_token
+ }
+ if 'orgId' in self.api_key:
+ auth['orgId'] = {
+ 'type': 'api_key',
+ 'in': 'query',
+ 'key': 'org_id',
+ 'value': self.get_api_key_with_prefix(
+ 'orgId',
+ ),
+ }
+ return auth
+
+ def to_debug_report(self) -> str:
+ """Gets the essential information for debugging.
+
+ :return: The report for debugging.
+ """
+ return "Python SDK Debug Report:\n"\
+ "OS: {env}\n"\
+ "Python Version: {pyversion}\n"\
+ "Version of the API: v1alpha1\n"\
+ "SDK Package Version: 1.1.0".\
+ format(env=sys.platform, pyversion=sys.version)
+
+ def get_host_settings(self) -> List[HostSetting]:
+ """Gets an array of host settings
+
+ :return: An array of host settings
+ """
+ return [
+ {
+ 'url': "/api/v1",
+ 'description': "No description provided",
+ }
+ ]
+
+ def get_host_from_settings(
+ self,
+ index: Optional[int],
+ variables: Optional[ServerVariablesT]=None,
+ servers: Optional[List[HostSetting]]=None,
+ ) -> str:
+ """Gets host URL based on the index and variables
+ :param index: array index of the host settings
+ :param variables: hash of variable and the corresponding value
+ :param servers: an array of host settings or None
+ :return: URL based on host settings
+ """
+ if index is None:
+ return self._base_path
+
+ variables = {} if variables is None else variables
+ servers = self.get_host_settings() if servers is None else servers
+
+ try:
+ server = servers[index]
+ except IndexError:
+ raise ValueError(
+ "Invalid index {0} when selecting the host settings. "
+ "Must be less than {1}".format(index, len(servers)))
+
+ url = server['url']
+
+ # go through variables and replace placeholders
+ for variable_name, variable in server.get('variables', {}).items():
+ used_value = variables.get(
+ variable_name, variable['default_value'])
+
+ if 'enum_values' in variable \
+ and used_value not in variable['enum_values']:
+ raise ValueError(
+ "The variable `{0}` in the host URL has invalid value "
+ "{1}. Must be {2}.".format(
+ variable_name, variables[variable_name],
+ variable['enum_values']))
+
+ url = url.replace("{" + variable_name + "}", used_value)
+
+ return url
+
+ @property
+ def host(self) -> str:
+ """Return generated host."""
+ return self.get_host_from_settings(self.server_index, variables=self.server_variables)
+
+ @host.setter
+ def host(self, value: str) -> None:
+ """Fix base path."""
+ self._base_path = value
+ self.server_index = None
diff --git a/flightctl/v1alpha1/docs/ApiVersion.md b/flightctl/v1alpha1/docs/ApiVersion.md
new file mode 100644
index 0000000..1cdff2f
--- /dev/null
+++ b/flightctl/v1alpha1/docs/ApiVersion.md
@@ -0,0 +1,13 @@
+# ApiVersion
+
+APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.
+
+## Enum
+
+* `V1ALPHA1` (value: `'v1alpha1'`)
+
+* `FLIGHTCTL_DOT_IO_SLASH_V1ALPHA1` (value: `'flightctl.io/v1alpha1'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/Catalog.md b/flightctl/v1alpha1/docs/Catalog.md
new file mode 100644
index 0000000..bb4f674
--- /dev/null
+++ b/flightctl/v1alpha1/docs/Catalog.md
@@ -0,0 +1,33 @@
+# Catalog
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
+**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
+**metadata** | [**ObjectMeta**](ObjectMeta.md) | |
+**spec** | [**CatalogSpec**](CatalogSpec.md) | |
+**status** | [**CatalogStatus**](CatalogStatus.md) | | [optional]
+
+## Example
+
+```python
+from flightctl.v1alpha1.models.catalog import Catalog
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of Catalog from a JSON string
+catalog_instance = Catalog.from_json(json)
+# print the JSON string representation of the object
+print(Catalog.to_json())
+
+# convert the object into a dict
+catalog_dict = catalog_instance.to_dict()
+# create an instance of Catalog from a dict
+catalog_from_dict = Catalog.from_dict(catalog_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/CatalogApi.md b/flightctl/v1alpha1/docs/CatalogApi.md
new file mode 100644
index 0000000..ac3add7
--- /dev/null
+++ b/flightctl/v1alpha1/docs/CatalogApi.md
@@ -0,0 +1,1198 @@
+# flightctl.v1alpha1.CatalogApi
+
+All URIs are relative to */api/v1*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_catalog**](CatalogApi.md#create_catalog) | **POST** /catalogs |
+[**create_catalog_item**](CatalogApi.md#create_catalog_item) | **POST** /catalogs/{catalog}/items |
+[**delete_catalog**](CatalogApi.md#delete_catalog) | **DELETE** /catalogs/{name} |
+[**delete_catalog_item**](CatalogApi.md#delete_catalog_item) | **DELETE** /catalogs/{catalog}/items/{name} |
+[**get_catalog**](CatalogApi.md#get_catalog) | **GET** /catalogs/{name} |
+[**get_catalog_item**](CatalogApi.md#get_catalog_item) | **GET** /catalogs/{catalog}/items/{name} |
+[**get_catalog_status**](CatalogApi.md#get_catalog_status) | **GET** /catalogs/{name}/status |
+[**list_all_catalog_items**](CatalogApi.md#list_all_catalog_items) | **GET** /catalogitems |
+[**list_catalog_items**](CatalogApi.md#list_catalog_items) | **GET** /catalogs/{catalog}/items |
+[**list_catalogs**](CatalogApi.md#list_catalogs) | **GET** /catalogs |
+[**patch_catalog**](CatalogApi.md#patch_catalog) | **PATCH** /catalogs/{name} |
+[**patch_catalog_item**](CatalogApi.md#patch_catalog_item) | **PATCH** /catalogs/{catalog}/items/{name} |
+[**patch_catalog_status**](CatalogApi.md#patch_catalog_status) | **PATCH** /catalogs/{name}/status |
+[**replace_catalog**](CatalogApi.md#replace_catalog) | **PUT** /catalogs/{name} |
+[**replace_catalog_item**](CatalogApi.md#replace_catalog_item) | **PUT** /catalogs/{catalog}/items/{name} |
+[**replace_catalog_status**](CatalogApi.md#replace_catalog_status) | **PUT** /catalogs/{name}/status |
+
+
+# **create_catalog**
+> Catalog create_catalog(catalog)
+
+Create a Catalog resource.
+
+### Example
+
+
+```python
+import flightctl.v1alpha1
+from flightctl.v1alpha1.models.catalog import Catalog
+from flightctl.v1alpha1.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to /api/v1
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.v1alpha1.Configuration(
+ host = "/api/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.v1alpha1.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.v1alpha1.CatalogApi(api_client)
+ catalog = flightctl.v1alpha1.Catalog() # Catalog |
+
+ try:
+ api_response = api_instance.create_catalog(catalog)
+ print("The response of CatalogApi->create_catalog:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CatalogApi->create_catalog: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **catalog** | [**Catalog**](Catalog.md)| |
+
+### Return type
+
+[**Catalog**](Catalog.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | Created | - |
+**400** | Bad Request | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**409** | Conflict | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **create_catalog_item**
+> CatalogItem create_catalog_item(catalog, catalog_item)
+
+Create a CatalogItem in a Catalog.
+
+### Example
+
+
+```python
+import flightctl.v1alpha1
+from flightctl.v1alpha1.models.catalog_item import CatalogItem
+from flightctl.v1alpha1.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to /api/v1
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.v1alpha1.Configuration(
+ host = "/api/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.v1alpha1.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.v1alpha1.CatalogApi(api_client)
+ catalog = 'catalog_example' # str | The name of the Catalog resource.
+ catalog_item = flightctl.v1alpha1.CatalogItem() # CatalogItem | The CatalogItem resource to create.
+
+ try:
+ api_response = api_instance.create_catalog_item(catalog, catalog_item)
+ print("The response of CatalogApi->create_catalog_item:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CatalogApi->create_catalog_item: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **catalog** | **str**| The name of the Catalog resource. |
+ **catalog_item** | [**CatalogItem**](CatalogItem.md)| The CatalogItem resource to create. |
+
+### Return type
+
+[**CatalogItem**](CatalogItem.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | Created | - |
+**400** | Bad Request | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**409** | Conflict | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_catalog**
+> Status delete_catalog(name)
+
+Delete a Catalog resource.
+
+### Example
+
+
+```python
+import flightctl.v1alpha1
+from flightctl.v1alpha1.models.status import Status
+from flightctl.v1alpha1.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to /api/v1
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.v1alpha1.Configuration(
+ host = "/api/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.v1alpha1.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.v1alpha1.CatalogApi(api_client)
+ name = 'name_example' # str | The name of the Catalog resource to delete.
+
+ try:
+ api_response = api_instance.delete_catalog(name)
+ print("The response of CatalogApi->delete_catalog:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CatalogApi->delete_catalog: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **name** | **str**| The name of the Catalog resource to delete. |
+
+### Return type
+
+[**Status**](Status.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_catalog_item**
+> Status delete_catalog_item(catalog, name)
+
+Delete a CatalogItem from a Catalog.
+
+### Example
+
+
+```python
+import flightctl.v1alpha1
+from flightctl.v1alpha1.models.status import Status
+from flightctl.v1alpha1.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to /api/v1
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.v1alpha1.Configuration(
+ host = "/api/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.v1alpha1.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.v1alpha1.CatalogApi(api_client)
+ catalog = 'catalog_example' # str | The name of the Catalog resource.
+ name = 'name_example' # str | The name of the CatalogItem resource.
+
+ try:
+ api_response = api_instance.delete_catalog_item(catalog, name)
+ print("The response of CatalogApi->delete_catalog_item:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CatalogApi->delete_catalog_item: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **catalog** | **str**| The name of the Catalog resource. |
+ **name** | **str**| The name of the CatalogItem resource. |
+
+### Return type
+
+[**Status**](Status.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_catalog**
+> Catalog get_catalog(name)
+
+Get a Catalog resource.
+
+### Example
+
+
+```python
+import flightctl.v1alpha1
+from flightctl.v1alpha1.models.catalog import Catalog
+from flightctl.v1alpha1.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to /api/v1
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.v1alpha1.Configuration(
+ host = "/api/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.v1alpha1.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.v1alpha1.CatalogApi(api_client)
+ name = 'name_example' # str | The name of the Catalog resource to get.
+
+ try:
+ api_response = api_instance.get_catalog(name)
+ print("The response of CatalogApi->get_catalog:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CatalogApi->get_catalog: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **name** | **str**| The name of the Catalog resource to get. |
+
+### Return type
+
+[**Catalog**](Catalog.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_catalog_item**
+> CatalogItem get_catalog_item(catalog, name)
+
+Get a CatalogItem from a Catalog.
+
+### Example
+
+
+```python
+import flightctl.v1alpha1
+from flightctl.v1alpha1.models.catalog_item import CatalogItem
+from flightctl.v1alpha1.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to /api/v1
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.v1alpha1.Configuration(
+ host = "/api/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.v1alpha1.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.v1alpha1.CatalogApi(api_client)
+ catalog = 'catalog_example' # str | The name of the Catalog resource.
+ name = 'name_example' # str | The name of the CatalogItem resource.
+
+ try:
+ api_response = api_instance.get_catalog_item(catalog, name)
+ print("The response of CatalogApi->get_catalog_item:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CatalogApi->get_catalog_item: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **catalog** | **str**| The name of the Catalog resource. |
+ **name** | **str**| The name of the CatalogItem resource. |
+
+### Return type
+
+[**CatalogItem**](CatalogItem.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_catalog_status**
+> Catalog get_catalog_status(name)
+
+Get status of a Catalog resource.
+
+### Example
+
+
+```python
+import flightctl.v1alpha1
+from flightctl.v1alpha1.models.catalog import Catalog
+from flightctl.v1alpha1.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to /api/v1
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.v1alpha1.Configuration(
+ host = "/api/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.v1alpha1.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.v1alpha1.CatalogApi(api_client)
+ name = 'name_example' # str | The name of the Catalog resource.
+
+ try:
+ api_response = api_instance.get_catalog_status(name)
+ print("The response of CatalogApi->get_catalog_status:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CatalogApi->get_catalog_status: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **name** | **str**| The name of the Catalog resource. |
+
+### Return type
+
+[**Catalog**](Catalog.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **list_all_catalog_items**
+> CatalogItemList list_all_catalog_items(var_continue=var_continue, label_selector=label_selector, field_selector=field_selector, limit=limit)
+
+List CatalogItems across all Catalogs.
+
+### Example
+
+
+```python
+import flightctl.v1alpha1
+from flightctl.v1alpha1.models.catalog_item_list import CatalogItemList
+from flightctl.v1alpha1.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to /api/v1
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.v1alpha1.Configuration(
+ host = "/api/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.v1alpha1.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.v1alpha1.CatalogApi(api_client)
+ var_continue = 'var_continue_example' # str | An optional parameter to query more results from the server. The value of the parameter must match the value of the 'continue' field in the previous list response. (optional)
+ label_selector = 'label_selector_example' # str | A selector to restrict the list of returned objects by their labels. Defaults to everything. (optional)
+ field_selector = 'field_selector_example' # str | A selector to restrict the list of returned objects by their fields, supporting operators like '=', '==', and '!=' (e.g., \"key1=value1,key2!=value2\"). (optional)
+ limit = 56 # int | The maximum number of results returned in the list response. The server will set the 'continue' field in the list response if more results exist. The continue value may then be specified as parameter in a subsequent query. (optional)
+
+ try:
+ api_response = api_instance.list_all_catalog_items(var_continue=var_continue, label_selector=label_selector, field_selector=field_selector, limit=limit)
+ print("The response of CatalogApi->list_all_catalog_items:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CatalogApi->list_all_catalog_items: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **var_continue** | **str**| An optional parameter to query more results from the server. The value of the parameter must match the value of the 'continue' field in the previous list response. | [optional]
+ **label_selector** | **str**| A selector to restrict the list of returned objects by their labels. Defaults to everything. | [optional]
+ **field_selector** | **str**| A selector to restrict the list of returned objects by their fields, supporting operators like '=', '==', and '!=' (e.g., \"key1=value1,key2!=value2\"). | [optional]
+ **limit** | **int**| The maximum number of results returned in the list response. The server will set the 'continue' field in the list response if more results exist. The continue value may then be specified as parameter in a subsequent query. | [optional]
+
+### Return type
+
+[**CatalogItemList**](CatalogItemList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**400** | Bad Request | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **list_catalog_items**
+> CatalogItemList list_catalog_items(catalog, var_continue=var_continue, label_selector=label_selector, limit=limit)
+
+List CatalogItems from a Catalog.
+
+### Example
+
+
+```python
+import flightctl.v1alpha1
+from flightctl.v1alpha1.models.catalog_item_list import CatalogItemList
+from flightctl.v1alpha1.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to /api/v1
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.v1alpha1.Configuration(
+ host = "/api/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.v1alpha1.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.v1alpha1.CatalogApi(api_client)
+ catalog = 'catalog_example' # str | The name of the Catalog resource.
+ var_continue = 'var_continue_example' # str | An optional parameter to query more results from the server. (optional)
+ label_selector = 'label_selector_example' # str | A selector to restrict the list of returned objects by their labels. (optional)
+ limit = 56 # int | The maximum number of results returned in the list response. (optional)
+
+ try:
+ api_response = api_instance.list_catalog_items(catalog, var_continue=var_continue, label_selector=label_selector, limit=limit)
+ print("The response of CatalogApi->list_catalog_items:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CatalogApi->list_catalog_items: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **catalog** | **str**| The name of the Catalog resource. |
+ **var_continue** | **str**| An optional parameter to query more results from the server. | [optional]
+ **label_selector** | **str**| A selector to restrict the list of returned objects by their labels. | [optional]
+ **limit** | **int**| The maximum number of results returned in the list response. | [optional]
+
+### Return type
+
+[**CatalogItemList**](CatalogItemList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**400** | Bad Request | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **list_catalogs**
+> CatalogList list_catalogs(var_continue=var_continue, label_selector=label_selector, field_selector=field_selector, limit=limit)
+
+List Catalog resources.
+
+### Example
+
+
+```python
+import flightctl.v1alpha1
+from flightctl.v1alpha1.models.catalog_list import CatalogList
+from flightctl.v1alpha1.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to /api/v1
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.v1alpha1.Configuration(
+ host = "/api/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.v1alpha1.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.v1alpha1.CatalogApi(api_client)
+ var_continue = 'var_continue_example' # str | An optional parameter to query more results from the server. The value of the paramter must match the value of the 'continue' field in the previous list response. (optional)
+ label_selector = 'label_selector_example' # str | A selector to restrict the list of returned objects by their labels. Defaults to everything. (optional)
+ field_selector = 'field_selector_example' # str | A selector to restrict the list of returned objects by their fields, supporting operators like '=', '==', and '!=' (e.g., \"key1=value1,key2!=value2\"). (optional)
+ limit = 56 # int | The maximum number of results returned in the list response. The server will set the 'continue' field in the list response if more results exist. The continue value may then be specified as parameter in a subsequent query. (optional)
+
+ try:
+ api_response = api_instance.list_catalogs(var_continue=var_continue, label_selector=label_selector, field_selector=field_selector, limit=limit)
+ print("The response of CatalogApi->list_catalogs:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CatalogApi->list_catalogs: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **var_continue** | **str**| An optional parameter to query more results from the server. The value of the paramter must match the value of the 'continue' field in the previous list response. | [optional]
+ **label_selector** | **str**| A selector to restrict the list of returned objects by their labels. Defaults to everything. | [optional]
+ **field_selector** | **str**| A selector to restrict the list of returned objects by their fields, supporting operators like '=', '==', and '!=' (e.g., \"key1=value1,key2!=value2\"). | [optional]
+ **limit** | **int**| The maximum number of results returned in the list response. The server will set the 'continue' field in the list response if more results exist. The continue value may then be specified as parameter in a subsequent query. | [optional]
+
+### Return type
+
+[**CatalogList**](CatalogList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**400** | Bad Request | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **patch_catalog**
+> Catalog patch_catalog(name, patch_request_inner)
+
+Patch a Catalog resource.
+
+### Example
+
+
+```python
+import flightctl.v1alpha1
+from flightctl.v1alpha1.models.catalog import Catalog
+from flightctl.v1alpha1.models.patch_request_inner import PatchRequestInner
+from flightctl.v1alpha1.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to /api/v1
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.v1alpha1.Configuration(
+ host = "/api/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.v1alpha1.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.v1alpha1.CatalogApi(api_client)
+ name = 'name_example' # str | The name of the Catalog resource to patch.
+ patch_request_inner = [flightctl.v1alpha1.PatchRequestInner()] # List[PatchRequestInner] |
+
+ try:
+ api_response = api_instance.patch_catalog(name, patch_request_inner)
+ print("The response of CatalogApi->patch_catalog:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CatalogApi->patch_catalog: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **name** | **str**| The name of the Catalog resource to patch. |
+ **patch_request_inner** | [**List[PatchRequestInner]**](PatchRequestInner.md)| |
+
+### Return type
+
+[**Catalog**](Catalog.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json-patch+json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**400** | Bad Request | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**409** | Conflict | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **patch_catalog_item**
+> CatalogItem patch_catalog_item(catalog, name, patch_request_inner)
+
+Patch a CatalogItem in a Catalog.
+
+### Example
+
+
+```python
+import flightctl.v1alpha1
+from flightctl.v1alpha1.models.catalog_item import CatalogItem
+from flightctl.v1alpha1.models.patch_request_inner import PatchRequestInner
+from flightctl.v1alpha1.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to /api/v1
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.v1alpha1.Configuration(
+ host = "/api/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.v1alpha1.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.v1alpha1.CatalogApi(api_client)
+ catalog = 'catalog_example' # str | The name of the Catalog resource.
+ name = 'name_example' # str | The name of the CatalogItem resource to patch.
+ patch_request_inner = [flightctl.v1alpha1.PatchRequestInner()] # List[PatchRequestInner] |
+
+ try:
+ api_response = api_instance.patch_catalog_item(catalog, name, patch_request_inner)
+ print("The response of CatalogApi->patch_catalog_item:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CatalogApi->patch_catalog_item: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **catalog** | **str**| The name of the Catalog resource. |
+ **name** | **str**| The name of the CatalogItem resource to patch. |
+ **patch_request_inner** | [**List[PatchRequestInner]**](PatchRequestInner.md)| |
+
+### Return type
+
+[**CatalogItem**](CatalogItem.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json-patch+json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**400** | Bad Request | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**409** | Conflict | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **patch_catalog_status**
+> Catalog patch_catalog_status(name, patch_request_inner)
+
+Patch status of a Catalog resource.
+
+### Example
+
+
+```python
+import flightctl.v1alpha1
+from flightctl.v1alpha1.models.catalog import Catalog
+from flightctl.v1alpha1.models.patch_request_inner import PatchRequestInner
+from flightctl.v1alpha1.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to /api/v1
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.v1alpha1.Configuration(
+ host = "/api/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.v1alpha1.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.v1alpha1.CatalogApi(api_client)
+ name = 'name_example' # str | The name of the Catalog resource.
+ patch_request_inner = [flightctl.v1alpha1.PatchRequestInner()] # List[PatchRequestInner] |
+
+ try:
+ api_response = api_instance.patch_catalog_status(name, patch_request_inner)
+ print("The response of CatalogApi->patch_catalog_status:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CatalogApi->patch_catalog_status: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **name** | **str**| The name of the Catalog resource. |
+ **patch_request_inner** | [**List[PatchRequestInner]**](PatchRequestInner.md)| |
+
+### Return type
+
+[**Catalog**](Catalog.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json-patch+json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**400** | Bad Request | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **replace_catalog**
+> Catalog replace_catalog(name, catalog)
+
+Update a Catalog resource.
+
+### Example
+
+
+```python
+import flightctl.v1alpha1
+from flightctl.v1alpha1.models.catalog import Catalog
+from flightctl.v1alpha1.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to /api/v1
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.v1alpha1.Configuration(
+ host = "/api/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.v1alpha1.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.v1alpha1.CatalogApi(api_client)
+ name = 'name_example' # str | The name of the Catalog resource to update.
+ catalog = flightctl.v1alpha1.Catalog() # Catalog |
+
+ try:
+ api_response = api_instance.replace_catalog(name, catalog)
+ print("The response of CatalogApi->replace_catalog:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CatalogApi->replace_catalog: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **name** | **str**| The name of the Catalog resource to update. |
+ **catalog** | [**Catalog**](Catalog.md)| |
+
+### Return type
+
+[**Catalog**](Catalog.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**201** | Created | - |
+**400** | Bad Request | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**409** | Conflict | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **replace_catalog_item**
+> CatalogItem replace_catalog_item(catalog, name, catalog_item)
+
+Replace a CatalogItem in a Catalog.
+
+### Example
+
+
+```python
+import flightctl.v1alpha1
+from flightctl.v1alpha1.models.catalog_item import CatalogItem
+from flightctl.v1alpha1.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to /api/v1
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.v1alpha1.Configuration(
+ host = "/api/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.v1alpha1.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.v1alpha1.CatalogApi(api_client)
+ catalog = 'catalog_example' # str | The name of the Catalog resource.
+ name = 'name_example' # str | The name of the CatalogItem resource.
+ catalog_item = flightctl.v1alpha1.CatalogItem() # CatalogItem | The CatalogItem resource to replace.
+
+ try:
+ api_response = api_instance.replace_catalog_item(catalog, name, catalog_item)
+ print("The response of CatalogApi->replace_catalog_item:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CatalogApi->replace_catalog_item: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **catalog** | **str**| The name of the Catalog resource. |
+ **name** | **str**| The name of the CatalogItem resource. |
+ **catalog_item** | [**CatalogItem**](CatalogItem.md)| The CatalogItem resource to replace. |
+
+### Return type
+
+[**CatalogItem**](CatalogItem.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**201** | Created | - |
+**400** | Bad Request | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**409** | Conflict | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **replace_catalog_status**
+> Catalog replace_catalog_status(name, catalog)
+
+Update status of a Catalog resource.
+
+### Example
+
+
+```python
+import flightctl.v1alpha1
+from flightctl.v1alpha1.models.catalog import Catalog
+from flightctl.v1alpha1.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to /api/v1
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.v1alpha1.Configuration(
+ host = "/api/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with flightctl.v1alpha1.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.v1alpha1.CatalogApi(api_client)
+ name = 'name_example' # str | The name of the Catalog resource.
+ catalog = flightctl.v1alpha1.Catalog() # Catalog |
+
+ try:
+ api_response = api_instance.replace_catalog_status(name, catalog)
+ print("The response of CatalogApi->replace_catalog_status:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CatalogApi->replace_catalog_status: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **name** | **str**| The name of the Catalog resource. |
+ **catalog** | [**Catalog**](Catalog.md)| |
+
+### Return type
+
+[**Catalog**](Catalog.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**409** | Conflict | - |
+**429** | Too Many Requests | - |
+**503** | Service Unavailable | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/flightctl/v1alpha1/docs/CatalogItem.md b/flightctl/v1alpha1/docs/CatalogItem.md
new file mode 100644
index 0000000..a9913cd
--- /dev/null
+++ b/flightctl/v1alpha1/docs/CatalogItem.md
@@ -0,0 +1,33 @@
+# CatalogItem
+
+CatalogItem represents an application template from a catalog. It provides default configuration values that can be customized when adding the application to a fleet.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
+**kind** | **str** | Kind is a string value representing the REST resource this object represents. |
+**metadata** | [**CatalogItemMeta**](CatalogItemMeta.md) | |
+**spec** | [**CatalogItemSpec**](CatalogItemSpec.md) | |
+
+## Example
+
+```python
+from flightctl.v1alpha1.models.catalog_item import CatalogItem
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CatalogItem from a JSON string
+catalog_item_instance = CatalogItem.from_json(json)
+# print the JSON string representation of the object
+print(CatalogItem.to_json())
+
+# convert the object into a dict
+catalog_item_dict = catalog_item_instance.to_dict()
+# create an instance of CatalogItem from a dict
+catalog_item_from_dict = CatalogItem.from_dict(catalog_item_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/CatalogItemArtifact.md b/flightctl/v1alpha1/docs/CatalogItemArtifact.md
new file mode 100644
index 0000000..627dce4
--- /dev/null
+++ b/flightctl/v1alpha1/docs/CatalogItemArtifact.md
@@ -0,0 +1,32 @@
+# CatalogItemArtifact
+
+An artifact reference. The type field is the discriminator and must be unique within the artifacts list.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | [**CatalogItemArtifactType**](CatalogItemArtifactType.md) | |
+**name** | **str** | Optional human-readable display name for this artifact. | [optional]
+**uri** | **str** | Artifact URI without version qualifier. The version reference (tag or digest) is applied at resolution time. |
+
+## Example
+
+```python
+from flightctl.v1alpha1.models.catalog_item_artifact import CatalogItemArtifact
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CatalogItemArtifact from a JSON string
+catalog_item_artifact_instance = CatalogItemArtifact.from_json(json)
+# print the JSON string representation of the object
+print(CatalogItemArtifact.to_json())
+
+# convert the object into a dict
+catalog_item_artifact_dict = catalog_item_artifact_instance.to_dict()
+# create an instance of CatalogItemArtifact from a dict
+catalog_item_artifact_from_dict = CatalogItemArtifact.from_dict(catalog_item_artifact_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/CatalogItemArtifactType.md b/flightctl/v1alpha1/docs/CatalogItemArtifactType.md
new file mode 100644
index 0000000..85db6bf
--- /dev/null
+++ b/flightctl/v1alpha1/docs/CatalogItemArtifactType.md
@@ -0,0 +1,27 @@
+# CatalogItemArtifactType
+
+Artifact format discriminator. Must be unique within the artifacts list. Includes bootc-image-builder output formats.
+
+## Enum
+
+* `CatalogItemArtifactTypeContainer` (value: `'container'`)
+
+* `CatalogItemArtifactTypeQcow2` (value: `'qcow2'`)
+
+* `CatalogItemArtifactTypeAmi` (value: `'ami'`)
+
+* `CatalogItemArtifactTypeIso` (value: `'iso'`)
+
+* `CatalogItemArtifactTypeAnacondaIso` (value: `'anaconda-iso'`)
+
+* `CatalogItemArtifactTypeVmdk` (value: `'vmdk'`)
+
+* `CatalogItemArtifactTypeVhd` (value: `'vhd'`)
+
+* `CatalogItemArtifactTypeRaw` (value: `'raw'`)
+
+* `CatalogItemArtifactTypeGce` (value: `'gce'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/CatalogItemCategory.md b/flightctl/v1alpha1/docs/CatalogItemCategory.md
new file mode 100644
index 0000000..b82d379
--- /dev/null
+++ b/flightctl/v1alpha1/docs/CatalogItemCategory.md
@@ -0,0 +1,13 @@
+# CatalogItemCategory
+
+Category of a catalog item.
+
+## Enum
+
+* `CatalogItemCategorySystem` (value: `'system'`)
+
+* `CatalogItemCategoryApplication` (value: `'application'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/CatalogItemConfigurable.md b/flightctl/v1alpha1/docs/CatalogItemConfigurable.md
new file mode 100644
index 0000000..f2306e5
--- /dev/null
+++ b/flightctl/v1alpha1/docs/CatalogItemConfigurable.md
@@ -0,0 +1,32 @@
+# CatalogItemConfigurable
+
+Configuration fields that can be specified at item level (as defaults) and overridden at version level. Version-level values fully replace item-level values (not merged).
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**config** | **Dict[str, object]** | Configuration values (envVars, ports, volumes, resources, etc.). | [optional]
+**config_schema** | **Dict[str, object]** | JSON Schema defining configurable parameters and their validation. | [optional]
+**readme** | **str** | Detailed documentation, preferably in markdown format. | [optional]
+
+## Example
+
+```python
+from flightctl.v1alpha1.models.catalog_item_configurable import CatalogItemConfigurable
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CatalogItemConfigurable from a JSON string
+catalog_item_configurable_instance = CatalogItemConfigurable.from_json(json)
+# print the JSON string representation of the object
+print(CatalogItemConfigurable.to_json())
+
+# convert the object into a dict
+catalog_item_configurable_dict = catalog_item_configurable_instance.to_dict()
+# create an instance of CatalogItemConfigurable from a dict
+catalog_item_configurable_from_dict = CatalogItemConfigurable.from_dict(catalog_item_configurable_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/CatalogItemDeprecation.md b/flightctl/v1alpha1/docs/CatalogItemDeprecation.md
new file mode 100644
index 0000000..35fe980
--- /dev/null
+++ b/flightctl/v1alpha1/docs/CatalogItemDeprecation.md
@@ -0,0 +1,31 @@
+# CatalogItemDeprecation
+
+Deprecation information for a catalog item or version. Presence indicates deprecated status.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**message** | **str** | Required message explaining why this is deprecated and what to do instead. |
+**replacement** | **str** | Optional name of the replacement catalog item (item-level only). | [optional]
+
+## Example
+
+```python
+from flightctl.v1alpha1.models.catalog_item_deprecation import CatalogItemDeprecation
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CatalogItemDeprecation from a JSON string
+catalog_item_deprecation_instance = CatalogItemDeprecation.from_json(json)
+# print the JSON string representation of the object
+print(CatalogItemDeprecation.to_json())
+
+# convert the object into a dict
+catalog_item_deprecation_dict = catalog_item_deprecation_instance.to_dict()
+# create an instance of CatalogItemDeprecation from a dict
+catalog_item_deprecation_from_dict = CatalogItemDeprecation.from_dict(catalog_item_deprecation_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/CatalogItemList.md b/flightctl/v1alpha1/docs/CatalogItemList.md
new file mode 100644
index 0000000..74e6b1d
--- /dev/null
+++ b/flightctl/v1alpha1/docs/CatalogItemList.md
@@ -0,0 +1,33 @@
+# CatalogItemList
+
+CatalogItemList is a list of CatalogItems.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
+**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
+**metadata** | [**ListMeta**](ListMeta.md) | |
+**items** | [**List[CatalogItem]**](CatalogItem.md) | List of CatalogItems. |
+
+## Example
+
+```python
+from flightctl.v1alpha1.models.catalog_item_list import CatalogItemList
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CatalogItemList from a JSON string
+catalog_item_list_instance = CatalogItemList.from_json(json)
+# print the JSON string representation of the object
+print(CatalogItemList.to_json())
+
+# convert the object into a dict
+catalog_item_list_dict = catalog_item_list_instance.to_dict()
+# create an instance of CatalogItemList from a dict
+catalog_item_list_from_dict = CatalogItemList.from_dict(catalog_item_list_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/CatalogItemMeta.md b/flightctl/v1alpha1/docs/CatalogItemMeta.md
new file mode 100644
index 0000000..126e076
--- /dev/null
+++ b/flightctl/v1alpha1/docs/CatalogItemMeta.md
@@ -0,0 +1,38 @@
+# CatalogItemMeta
+
+Metadata for CatalogItem resources. Extends ObjectMeta with catalog scoping.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**creation_timestamp** | **datetime** | The time the object was created. | [optional]
+**deletion_timestamp** | **datetime** | The time the object will be deleted. | [optional]
+**name** | **str** | The name of the object. | [optional]
+**labels** | **Dict[str, str]** | Map of string keys and values that can be used to organize and categorize (scope and select) objects. | [optional]
+**generation** | **int** | A sequence number representing a specific generation of the desired state. Populated by the system. Read-only. | [optional]
+**owner** | **str** | A resource that owns this resource, in \"kind/name\" format. | [optional]
+**annotations** | **Dict[str, str]** | Properties set by the service. | [optional]
+**resource_version** | **str** | An opaque string that identifies the server's internal version of an object. | [optional]
+**catalog** | **str** | The catalog this item belongs to. Similar to namespace in Kubernetes. |
+
+## Example
+
+```python
+from flightctl.v1alpha1.models.catalog_item_meta import CatalogItemMeta
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CatalogItemMeta from a JSON string
+catalog_item_meta_instance = CatalogItemMeta.from_json(json)
+# print the JSON string representation of the object
+print(CatalogItemMeta.to_json())
+
+# convert the object into a dict
+catalog_item_meta_dict = catalog_item_meta_instance.to_dict()
+# create an instance of CatalogItemMeta from a dict
+catalog_item_meta_from_dict = CatalogItemMeta.from_dict(catalog_item_meta_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/CatalogItemSpec.md b/flightctl/v1alpha1/docs/CatalogItemSpec.md
new file mode 100644
index 0000000..88bdb09
--- /dev/null
+++ b/flightctl/v1alpha1/docs/CatalogItemSpec.md
@@ -0,0 +1,42 @@
+# CatalogItemSpec
+
+CatalogItemSpec defines the configuration for a catalog item.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**category** | [**CatalogItemCategory**](CatalogItemCategory.md) | | [optional] [default to CatalogItemCategory.NUMBER_CatalogItemCategoryApplication]
+**type** | [**CatalogItemType**](CatalogItemType.md) | |
+**artifacts** | [**List[CatalogItemArtifact]**](CatalogItemArtifact.md) | Artifact definitions for this catalog item. Defined once; version references resolve each artifact independently. Type must be unique within the list. |
+**versions** | [**List[CatalogItemVersion]**](CatalogItemVersion.md) | Available versions using Cincinnati model. Use replaces for primary edge, skips when stable channel skips intermediate versions. |
+**defaults** | [**CatalogItemConfigurable**](CatalogItemConfigurable.md) | | [optional]
+**display_name** | **str** | Human-readable display name shown in catalog listings. | [optional]
+**short_description** | **str** | A brief one-line description of the catalog item. | [optional]
+**icon** | **str** | URL or data URI of the catalog item icon for display in UI. | [optional]
+**deprecation** | [**CatalogItemDeprecation**](CatalogItemDeprecation.md) | | [optional]
+**provider** | **str** | Provider or publisher of the catalog item (company or team name). | [optional]
+**support** | **str** | Link to support resources or documentation for getting help. | [optional]
+**homepage** | **str** | The homepage URL for the catalog item project. | [optional]
+**documentation_url** | **str** | Link to external documentation. | [optional]
+
+## Example
+
+```python
+from flightctl.v1alpha1.models.catalog_item_spec import CatalogItemSpec
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CatalogItemSpec from a JSON string
+catalog_item_spec_instance = CatalogItemSpec.from_json(json)
+# print the JSON string representation of the object
+print(CatalogItemSpec.to_json())
+
+# convert the object into a dict
+catalog_item_spec_dict = catalog_item_spec_instance.to_dict()
+# create an instance of CatalogItemSpec from a dict
+catalog_item_spec_from_dict = CatalogItemSpec.from_dict(catalog_item_spec_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/CatalogItemType.md b/flightctl/v1alpha1/docs/CatalogItemType.md
new file mode 100644
index 0000000..ecfef0c
--- /dev/null
+++ b/flightctl/v1alpha1/docs/CatalogItemType.md
@@ -0,0 +1,25 @@
+# CatalogItemType
+
+Type of catalog item within its category.
+
+## Enum
+
+* `CatalogItemTypeOS` (value: `'os'`)
+
+* `CatalogItemTypeFirmware` (value: `'firmware'`)
+
+* `CatalogItemTypeDriver` (value: `'driver'`)
+
+* `CatalogItemTypeContainer` (value: `'container'`)
+
+* `CatalogItemTypeHelm` (value: `'helm'`)
+
+* `CatalogItemTypeQuadlet` (value: `'quadlet'`)
+
+* `CatalogItemTypeCompose` (value: `'compose'`)
+
+* `CatalogItemTypeData` (value: `'data'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/CatalogItemVersion.md b/flightctl/v1alpha1/docs/CatalogItemVersion.md
new file mode 100644
index 0000000..74224e2
--- /dev/null
+++ b/flightctl/v1alpha1/docs/CatalogItemVersion.md
@@ -0,0 +1,39 @@
+# CatalogItemVersion
+
+A version of a catalog item following the Cincinnati model where versions are nodes in an upgrade graph and channels are labels on those nodes. Upgrade edges are defined by replaces (single), skips (multiple), or skipRange (semver range). Includes CatalogItemConfigurable fields that override item-level defaults.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**config** | **Dict[str, object]** | Configuration values (envVars, ports, volumes, resources, etc.). | [optional]
+**config_schema** | **Dict[str, object]** | JSON Schema defining configurable parameters and their validation. | [optional]
+**readme** | **str** | Detailed documentation, preferably in markdown format. | [optional]
+**version** | **str** | Semantic version identifier (e.g., 1.2.3, v2.0.0-rc1). Required for version ordering and upgrade graph. |
+**references** | **Dict[str, str]** | Map of artifact type to image tag or digest. Keys must match a type in spec.artifacts. Only keyed artifacts are available for this version. |
+**channels** | **List[str]** | Channels this version belongs to. |
+**replaces** | **str** | The single version this one replaces, defining the primary upgrade edge. | [optional]
+**skips** | **List[str]** | Additional versions that can upgrade directly to this one. Use when stable channel skips intermediate fast-only versions. | [optional]
+**skip_range** | **str** | Semver range of versions that can upgrade directly to this one. Use for z-stream updates or hotfixes. | [optional]
+**deprecation** | [**CatalogItemDeprecation**](CatalogItemDeprecation.md) | | [optional]
+
+## Example
+
+```python
+from flightctl.v1alpha1.models.catalog_item_version import CatalogItemVersion
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CatalogItemVersion from a JSON string
+catalog_item_version_instance = CatalogItemVersion.from_json(json)
+# print the JSON string representation of the object
+print(CatalogItemVersion.to_json())
+
+# convert the object into a dict
+catalog_item_version_dict = catalog_item_version_instance.to_dict()
+# create an instance of CatalogItemVersion from a dict
+catalog_item_version_from_dict = CatalogItemVersion.from_dict(catalog_item_version_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/CatalogList.md b/flightctl/v1alpha1/docs/CatalogList.md
new file mode 100644
index 0000000..4e100fe
--- /dev/null
+++ b/flightctl/v1alpha1/docs/CatalogList.md
@@ -0,0 +1,33 @@
+# CatalogList
+
+CatalogList is a list of Catalogs.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
+**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
+**metadata** | [**ListMeta**](ListMeta.md) | |
+**items** | [**List[Catalog]**](Catalog.md) | List of Catalogs. |
+
+## Example
+
+```python
+from flightctl.v1alpha1.models.catalog_list import CatalogList
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CatalogList from a JSON string
+catalog_list_instance = CatalogList.from_json(json)
+# print the JSON string representation of the object
+print(CatalogList.to_json())
+
+# convert the object into a dict
+catalog_list_dict = catalog_list_instance.to_dict()
+# create an instance of CatalogList from a dict
+catalog_list_from_dict = CatalogList.from_dict(catalog_list_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/CatalogSpec.md b/flightctl/v1alpha1/docs/CatalogSpec.md
new file mode 100644
index 0000000..5b844ab
--- /dev/null
+++ b/flightctl/v1alpha1/docs/CatalogSpec.md
@@ -0,0 +1,34 @@
+# CatalogSpec
+
+CatalogSpec describes the configuration of a catalog. Catalogs are containers for locally-managed CatalogItems.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**display_name** | **str** | Human-readable display name shown in catalog listings. | [optional]
+**short_description** | **str** | A brief one-line description of the catalog. | [optional]
+**icon** | **str** | URL or data URI of the catalog icon for display in UI. | [optional]
+**provider** | **str** | Provider or publisher of the catalog (company or team name). | [optional]
+**support** | **str** | Link to support resources or documentation for getting help. | [optional]
+
+## Example
+
+```python
+from flightctl.v1alpha1.models.catalog_spec import CatalogSpec
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CatalogSpec from a JSON string
+catalog_spec_instance = CatalogSpec.from_json(json)
+# print the JSON string representation of the object
+print(CatalogSpec.to_json())
+
+# convert the object into a dict
+catalog_spec_dict = catalog_spec_instance.to_dict()
+# create an instance of CatalogSpec from a dict
+catalog_spec_from_dict = CatalogSpec.from_dict(catalog_spec_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/CatalogStatus.md b/flightctl/v1alpha1/docs/CatalogStatus.md
new file mode 100644
index 0000000..ebb703d
--- /dev/null
+++ b/flightctl/v1alpha1/docs/CatalogStatus.md
@@ -0,0 +1,30 @@
+# CatalogStatus
+
+CatalogStatus represents the current status of a catalog source.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**conditions** | [**List[Condition]**](Condition.md) | Current state of the catalog source. |
+
+## Example
+
+```python
+from flightctl.v1alpha1.models.catalog_status import CatalogStatus
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CatalogStatus from a JSON string
+catalog_status_instance = CatalogStatus.from_json(json)
+# print the JSON string representation of the object
+print(CatalogStatus.to_json())
+
+# convert the object into a dict
+catalog_status_dict = catalog_status_instance.to_dict()
+# create an instance of CatalogStatus from a dict
+catalog_status_from_dict = CatalogStatus.from_dict(catalog_status_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/Condition.md b/flightctl/v1alpha1/docs/Condition.md
new file mode 100644
index 0000000..8d71a5b
--- /dev/null
+++ b/flightctl/v1alpha1/docs/Condition.md
@@ -0,0 +1,35 @@
+# Condition
+
+Condition contains details for one aspect of the current state of this API Resource.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**status** | [**ConditionStatus**](ConditionStatus.md) | |
+**observed_generation** | **int** | The .metadata.generation that the condition was set based upon. | [optional]
+**last_transition_time** | **datetime** | The last time the condition transitioned from one status to another. |
+**message** | **str** | Human readable message indicating details about last transition. |
+**reason** | **str** | A (brief) reason for the condition's last transition. |
+**type** | [**ConditionType**](ConditionType.md) | |
+
+## Example
+
+```python
+from flightctl.v1alpha1.models.condition import Condition
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of Condition from a JSON string
+condition_instance = Condition.from_json(json)
+# print the JSON string representation of the object
+print(Condition.to_json())
+
+# convert the object into a dict
+condition_dict = condition_instance.to_dict()
+# create an instance of Condition from a dict
+condition_from_dict = Condition.from_dict(condition_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/ConditionBase.md b/flightctl/v1alpha1/docs/ConditionBase.md
new file mode 100644
index 0000000..cd16a8f
--- /dev/null
+++ b/flightctl/v1alpha1/docs/ConditionBase.md
@@ -0,0 +1,34 @@
+# ConditionBase
+
+Base condition structure following Kubernetes API conventions. Use with allOf to add a specific type enum.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**status** | [**ConditionStatus**](ConditionStatus.md) | |
+**observed_generation** | **int** | The .metadata.generation that the condition was set based upon. | [optional]
+**last_transition_time** | **datetime** | The last time the condition transitioned from one status to another. |
+**message** | **str** | Human readable message indicating details about last transition. |
+**reason** | **str** | A (brief) reason for the condition's last transition. |
+
+## Example
+
+```python
+from flightctl.v1alpha1.models.condition_base import ConditionBase
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ConditionBase from a JSON string
+condition_base_instance = ConditionBase.from_json(json)
+# print the JSON string representation of the object
+print(ConditionBase.to_json())
+
+# convert the object into a dict
+condition_base_dict = condition_base_instance.to_dict()
+# create an instance of ConditionBase from a dict
+condition_base_from_dict = ConditionBase.from_dict(condition_base_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/ConditionStatus.md b/flightctl/v1alpha1/docs/ConditionStatus.md
new file mode 100644
index 0000000..2141bfb
--- /dev/null
+++ b/flightctl/v1alpha1/docs/ConditionStatus.md
@@ -0,0 +1,15 @@
+# ConditionStatus
+
+Status of the condition, one of True, False, Unknown.
+
+## Enum
+
+* `ConditionStatusTrue` (value: `'True'`)
+
+* `ConditionStatusFalse` (value: `'False'`)
+
+* `ConditionStatusUnknown` (value: `'Unknown'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/ConditionType.md b/flightctl/v1alpha1/docs/ConditionType.md
new file mode 100644
index 0000000..c8b86ef
--- /dev/null
+++ b/flightctl/v1alpha1/docs/ConditionType.md
@@ -0,0 +1,41 @@
+# ConditionType
+
+Type of condition in CamelCase.
+
+## Enum
+
+* `EnrollmentRequestApproved` (value: `'Approved'`)
+
+* `EnrollmentRequestTPMVerified` (value: `'TPMVerified'`)
+
+* `CertificateSigningRequestApproved` (value: `'Approved'`)
+
+* `CertificateSigningRequestDenied` (value: `'Denied'`)
+
+* `CertificateSigningRequestFailed` (value: `'Failed'`)
+
+* `CertificateSigningRequestTPMVerified` (value: `'TPMVerified'`)
+
+* `RepositoryAccessible` (value: `'Accessible'`)
+
+* `ResourceSyncAccessible` (value: `'Accessible'`)
+
+* `ResourceSyncResourceParsed` (value: `'ResourceParsed'`)
+
+* `ResourceSyncSynced` (value: `'Synced'`)
+
+* `FleetValid` (value: `'Valid'`)
+
+* `FleetRolloutInProgress` (value: `'RolloutInProgress'`)
+
+* `DeviceUpdating` (value: `'Updating'`)
+
+* `DeviceSpecValid` (value: `'SpecValid'`)
+
+* `DeviceMultipleOwners` (value: `'MultipleOwners'`)
+
+* `DeviceDecommissioning` (value: `'DeviceDecommissioning'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/ListMeta.md b/flightctl/v1alpha1/docs/ListMeta.md
new file mode 100644
index 0000000..ef8671e
--- /dev/null
+++ b/flightctl/v1alpha1/docs/ListMeta.md
@@ -0,0 +1,31 @@
+# ListMeta
+
+ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_continue** | **str** | May be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message. | [optional]
+**remaining_item_count** | **int** | The number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact. | [optional]
+
+## Example
+
+```python
+from flightctl.v1alpha1.models.list_meta import ListMeta
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ListMeta from a JSON string
+list_meta_instance = ListMeta.from_json(json)
+# print the JSON string representation of the object
+print(ListMeta.to_json())
+
+# convert the object into a dict
+list_meta_dict = list_meta_instance.to_dict()
+# create an instance of ListMeta from a dict
+list_meta_from_dict = ListMeta.from_dict(list_meta_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/ObjectMeta.md b/flightctl/v1alpha1/docs/ObjectMeta.md
new file mode 100644
index 0000000..82412c1
--- /dev/null
+++ b/flightctl/v1alpha1/docs/ObjectMeta.md
@@ -0,0 +1,37 @@
+# ObjectMeta
+
+ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**creation_timestamp** | **datetime** | The time the object was created. | [optional]
+**deletion_timestamp** | **datetime** | The time the object will be deleted. | [optional]
+**name** | **str** | The name of the object. | [optional]
+**labels** | **Dict[str, str]** | Map of string keys and values that can be used to organize and categorize (scope and select) objects. | [optional]
+**generation** | **int** | A sequence number representing a specific generation of the desired state. Populated by the system. Read-only. | [optional]
+**owner** | **str** | A resource that owns this resource, in \"kind/name\" format. | [optional]
+**annotations** | **Dict[str, str]** | Properties set by the service. | [optional]
+**resource_version** | **str** | An opaque string that identifies the server's internal version of an object. | [optional]
+
+## Example
+
+```python
+from flightctl.v1alpha1.models.object_meta import ObjectMeta
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ObjectMeta from a JSON string
+object_meta_instance = ObjectMeta.from_json(json)
+# print the JSON string representation of the object
+print(ObjectMeta.to_json())
+
+# convert the object into a dict
+object_meta_dict = object_meta_instance.to_dict()
+# create an instance of ObjectMeta from a dict
+object_meta_from_dict = ObjectMeta.from_dict(object_meta_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/PatchRequestInner.md b/flightctl/v1alpha1/docs/PatchRequestInner.md
new file mode 100644
index 0000000..4fde3d3
--- /dev/null
+++ b/flightctl/v1alpha1/docs/PatchRequestInner.md
@@ -0,0 +1,31 @@
+# PatchRequestInner
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**path** | **str** | A JSON Pointer path. |
+**value** | **object** | The value to add or replace. | [optional]
+**op** | **str** | The operation to perform. |
+
+## Example
+
+```python
+from flightctl.v1alpha1.models.patch_request_inner import PatchRequestInner
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PatchRequestInner from a JSON string
+patch_request_inner_instance = PatchRequestInner.from_json(json)
+# print the JSON string representation of the object
+print(PatchRequestInner.to_json())
+
+# convert the object into a dict
+patch_request_inner_dict = patch_request_inner_instance.to_dict()
+# create an instance of PatchRequestInner from a dict
+patch_request_inner_from_dict = PatchRequestInner.from_dict(patch_request_inner_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/SchemasApiVersion.md b/flightctl/v1alpha1/docs/SchemasApiVersion.md
new file mode 100644
index 0000000..210e562
--- /dev/null
+++ b/flightctl/v1alpha1/docs/SchemasApiVersion.md
@@ -0,0 +1,15 @@
+# SchemasApiVersion
+
+APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.
+
+## Enum
+
+* `ApiVersionV1beta1` (value: `'v1beta1'`)
+
+* `ApiVersionFlightctlIoV1beta1` (value: `'flightctl.io/v1beta1'`)
+
+* `ApiVersionEmpty` (value: `''`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/SchemasStatus.md b/flightctl/v1alpha1/docs/SchemasStatus.md
new file mode 100644
index 0000000..85372bb
--- /dev/null
+++ b/flightctl/v1alpha1/docs/SchemasStatus.md
@@ -0,0 +1,35 @@
+# SchemasStatus
+
+Status is a return value for calls that don't return other objects.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**api_version** | [**SchemasApiVersion**](SchemasApiVersion.md) | |
+**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
+**code** | **int** | Suggested HTTP return code for this status, 0 if not set. |
+**message** | **str** | A human-readable description of the status of this operation. |
+**reason** | **str** | A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it. |
+**status** | **str** | Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. |
+
+## Example
+
+```python
+from flightctl.v1alpha1.models.schemas_status import SchemasStatus
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SchemasStatus from a JSON string
+schemas_status_instance = SchemasStatus.from_json(json)
+# print the JSON string representation of the object
+print(SchemasStatus.to_json())
+
+# convert the object into a dict
+schemas_status_dict = schemas_status_instance.to_dict()
+# create an instance of SchemasStatus from a dict
+schemas_status_from_dict = SchemasStatus.from_dict(schemas_status_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/docs/Status.md b/flightctl/v1alpha1/docs/Status.md
new file mode 100644
index 0000000..c9e2283
--- /dev/null
+++ b/flightctl/v1alpha1/docs/Status.md
@@ -0,0 +1,35 @@
+# Status
+
+Status is a return value for calls that don't return other objects.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**api_version** | [**ApiVersion**](ApiVersion.md) | |
+**kind** | **str** | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
+**code** | **int** | Suggested HTTP return code for this status, 0 if not set. |
+**message** | **str** | A human-readable description of the status of this operation. |
+**reason** | **str** | A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it. |
+**status** | **str** | Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. |
+
+## Example
+
+```python
+from flightctl.v1alpha1.models.status import Status
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of Status from a JSON string
+status_instance = Status.from_json(json)
+# print the JSON string representation of the object
+print(Status.to_json())
+
+# convert the object into a dict
+status_dict = status_instance.to_dict()
+# create an instance of Status from a dict
+status_from_dict = Status.from_dict(status_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/flightctl/v1alpha1/exceptions.py b/flightctl/v1alpha1/exceptions.py
new file mode 100644
index 0000000..77dfb79
--- /dev/null
+++ b/flightctl/v1alpha1/exceptions.py
@@ -0,0 +1,217 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+from typing import Any, Optional
+from typing_extensions import Self
+
+class OpenApiException(Exception):
+ """The base exception class for all OpenAPIExceptions"""
+
+
+class ApiTypeError(OpenApiException, TypeError):
+ def __init__(self, msg, path_to_item=None, valid_classes=None,
+ key_type=None) -> None:
+ """ Raises an exception for TypeErrors
+
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (list): a list of keys an indices to get to the
+ current_item
+ None if unset
+ valid_classes (tuple): the primitive classes that current item
+ should be an instance of
+ None if unset
+ key_type (bool): False if our value is a value in a dict
+ True if it is a key in a dict
+ False if our item is an item in a list
+ None if unset
+ """
+ self.path_to_item = path_to_item
+ self.valid_classes = valid_classes
+ self.key_type = key_type
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiTypeError, self).__init__(full_msg)
+
+
+class ApiValueError(OpenApiException, ValueError):
+ def __init__(self, msg, path_to_item=None) -> None:
+ """
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (list) the path to the exception in the
+ received_data dict. None if unset
+ """
+
+ self.path_to_item = path_to_item
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiValueError, self).__init__(full_msg)
+
+
+class ApiAttributeError(OpenApiException, AttributeError):
+ def __init__(self, msg, path_to_item=None) -> None:
+ """
+ Raised when an attribute reference or assignment fails.
+
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (None/list) the path to the exception in the
+ received_data dict
+ """
+ self.path_to_item = path_to_item
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiAttributeError, self).__init__(full_msg)
+
+
+class ApiKeyError(OpenApiException, KeyError):
+ def __init__(self, msg, path_to_item=None) -> None:
+ """
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (None/list) the path to the exception in the
+ received_data dict
+ """
+ self.path_to_item = path_to_item
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiKeyError, self).__init__(full_msg)
+
+
+class ApiException(OpenApiException):
+
+ def __init__(
+ self,
+ status=None,
+ reason=None,
+ http_resp=None,
+ *,
+ body: Optional[str] = None,
+ data: Optional[Any] = None,
+ ) -> None:
+ self.status = status
+ self.reason = reason
+ self.body = body
+ self.data = data
+ self.headers = None
+
+ if http_resp:
+ if self.status is None:
+ self.status = http_resp.status
+ if self.reason is None:
+ self.reason = http_resp.reason
+ if self.body is None:
+ try:
+ self.body = http_resp.data.decode('utf-8')
+ except Exception:
+ pass
+ self.headers = http_resp.getheaders()
+
+ @classmethod
+ def from_response(
+ cls,
+ *,
+ http_resp,
+ body: Optional[str],
+ data: Optional[Any],
+ ) -> Self:
+ if http_resp.status == 400:
+ raise BadRequestException(http_resp=http_resp, body=body, data=data)
+
+ if http_resp.status == 401:
+ raise UnauthorizedException(http_resp=http_resp, body=body, data=data)
+
+ if http_resp.status == 403:
+ raise ForbiddenException(http_resp=http_resp, body=body, data=data)
+
+ if http_resp.status == 404:
+ raise NotFoundException(http_resp=http_resp, body=body, data=data)
+
+ # Added new conditions for 409 and 422
+ if http_resp.status == 409:
+ raise ConflictException(http_resp=http_resp, body=body, data=data)
+
+ if http_resp.status == 422:
+ raise UnprocessableEntityException(http_resp=http_resp, body=body, data=data)
+
+ if 500 <= http_resp.status <= 599:
+ raise ServiceException(http_resp=http_resp, body=body, data=data)
+ raise ApiException(http_resp=http_resp, body=body, data=data)
+
+ def __str__(self):
+ """Custom error messages for exception"""
+ error_message = "({0})\n"\
+ "Reason: {1}\n".format(self.status, self.reason)
+ if self.headers:
+ error_message += "HTTP response headers: {0}\n".format(
+ self.headers)
+
+ if self.data or self.body:
+ error_message += "HTTP response body: {0}\n".format(self.data or self.body)
+
+ return error_message
+
+
+class BadRequestException(ApiException):
+ pass
+
+
+class NotFoundException(ApiException):
+ pass
+
+
+class UnauthorizedException(ApiException):
+ pass
+
+
+class ForbiddenException(ApiException):
+ pass
+
+
+class ServiceException(ApiException):
+ pass
+
+
+class ConflictException(ApiException):
+ """Exception for HTTP 409 Conflict."""
+ pass
+
+
+class UnprocessableEntityException(ApiException):
+ """Exception for HTTP 422 Unprocessable Entity."""
+ pass
+
+
+def render_path(path_to_item):
+ """Returns a string representation of a path"""
+ result = ""
+ for pth in path_to_item:
+ if isinstance(pth, int):
+ result += "[{0}]".format(pth)
+ else:
+ result += "['{0}']".format(pth)
+ return result
diff --git a/flightctl/v1alpha1/models/__init__.py b/flightctl/v1alpha1/models/__init__.py
new file mode 100644
index 0000000..fcb2ed1
--- /dev/null
+++ b/flightctl/v1alpha1/models/__init__.py
@@ -0,0 +1,43 @@
+# coding: utf-8
+
+# flake8: noqa
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+# import models into model package
+from flightctl.v1alpha1.models.api_version import ApiVersion
+from flightctl.v1alpha1.models.catalog import Catalog
+from flightctl.v1alpha1.models.catalog_item import CatalogItem
+from flightctl.v1alpha1.models.catalog_item_artifact import CatalogItemArtifact
+from flightctl.v1alpha1.models.catalog_item_artifact_type import CatalogItemArtifactType
+from flightctl.v1alpha1.models.catalog_item_category import CatalogItemCategory
+from flightctl.v1alpha1.models.catalog_item_configurable import CatalogItemConfigurable
+from flightctl.v1alpha1.models.catalog_item_deprecation import CatalogItemDeprecation
+from flightctl.v1alpha1.models.catalog_item_list import CatalogItemList
+from flightctl.v1alpha1.models.catalog_item_meta import CatalogItemMeta
+from flightctl.v1alpha1.models.catalog_item_spec import CatalogItemSpec
+from flightctl.v1alpha1.models.catalog_item_type import CatalogItemType
+from flightctl.v1alpha1.models.catalog_item_version import CatalogItemVersion
+from flightctl.v1alpha1.models.catalog_list import CatalogList
+from flightctl.v1alpha1.models.catalog_spec import CatalogSpec
+from flightctl.v1alpha1.models.catalog_status import CatalogStatus
+from flightctl.v1alpha1.models.condition import Condition
+from flightctl.v1alpha1.models.condition_base import ConditionBase
+from flightctl.v1alpha1.models.condition_status import ConditionStatus
+from flightctl.v1alpha1.models.condition_type import ConditionType
+from flightctl.v1alpha1.models.list_meta import ListMeta
+from flightctl.v1alpha1.models.object_meta import ObjectMeta
+from flightctl.v1alpha1.models.patch_request_inner import PatchRequestInner
+from flightctl.v1alpha1.models.schemas_api_version import SchemasApiVersion
+from flightctl.v1alpha1.models.schemas_status import SchemasStatus
+from flightctl.v1alpha1.models.status import Status
+
diff --git a/flightctl/v1alpha1/models/api_version.py b/flightctl/v1alpha1/models/api_version.py
new file mode 100644
index 0000000..de2e48f
--- /dev/null
+++ b/flightctl/v1alpha1/models/api_version.py
@@ -0,0 +1,38 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class ApiVersion(str, Enum):
+ """
+ APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.
+ """
+
+ """
+ allowed enum values
+ """
+ V1ALPHA1 = 'v1alpha1'
+ FLIGHTCTL_DOT_IO_SLASH_V1ALPHA1 = 'flightctl.io/v1alpha1'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ApiVersion from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/flightctl/v1alpha1/models/catalog.py b/flightctl/v1alpha1/models/catalog.py
new file mode 100644
index 0000000..9411426
--- /dev/null
+++ b/flightctl/v1alpha1/models/catalog.py
@@ -0,0 +1,109 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.v1alpha1.models.api_version import ApiVersion
+from flightctl.v1alpha1.models.catalog_spec import CatalogSpec
+from flightctl.v1alpha1.models.catalog_status import CatalogStatus
+from flightctl.v1alpha1.models.object_meta import ObjectMeta
+from typing import Optional, Set
+from typing_extensions import Self
+
+class Catalog(BaseModel):
+ """
+ Catalog
+ """ # noqa: E501
+ api_version: ApiVersion = Field(alias="apiVersion")
+ kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
+ metadata: ObjectMeta
+ spec: CatalogSpec
+ status: Optional[CatalogStatus] = None
+ __properties: ClassVar[List[str]] = ["apiVersion", "kind", "metadata", "spec", "status"]
+
+ 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 Catalog 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 metadata
+ if self.metadata:
+ _dict['metadata'] = self.metadata.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of spec
+ if self.spec:
+ _dict['spec'] = self.spec.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of status
+ if self.status:
+ _dict['status'] = self.status.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of Catalog from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "apiVersion": obj.get("apiVersion"),
+ "kind": obj.get("kind"),
+ "metadata": ObjectMeta.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None,
+ "spec": CatalogSpec.from_dict(obj["spec"]) if obj.get("spec") is not None else None,
+ "status": CatalogStatus.from_dict(obj["status"]) if obj.get("status") is not None else None
+ })
+ return _obj
+
+
diff --git a/flightctl/v1alpha1/models/catalog_item.py b/flightctl/v1alpha1/models/catalog_item.py
new file mode 100644
index 0000000..10824a0
--- /dev/null
+++ b/flightctl/v1alpha1/models/catalog_item.py
@@ -0,0 +1,103 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List
+from flightctl.v1alpha1.models.api_version import ApiVersion
+from flightctl.v1alpha1.models.catalog_item_meta import CatalogItemMeta
+from flightctl.v1alpha1.models.catalog_item_spec import CatalogItemSpec
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CatalogItem(BaseModel):
+ """
+ CatalogItem represents an application template from a catalog. It provides default configuration values that can be customized when adding the application to a fleet.
+ """ # noqa: E501
+ api_version: ApiVersion = Field(alias="apiVersion")
+ kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents.")
+ metadata: CatalogItemMeta
+ spec: CatalogItemSpec
+ __properties: ClassVar[List[str]] = ["apiVersion", "kind", "metadata", "spec"]
+
+ 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 CatalogItem 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 metadata
+ if self.metadata:
+ _dict['metadata'] = self.metadata.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of spec
+ if self.spec:
+ _dict['spec'] = self.spec.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CatalogItem from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "apiVersion": obj.get("apiVersion"),
+ "kind": obj.get("kind"),
+ "metadata": CatalogItemMeta.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None,
+ "spec": CatalogItemSpec.from_dict(obj["spec"]) if obj.get("spec") is not None else None
+ })
+ return _obj
+
+
diff --git a/flightctl/v1alpha1/models/catalog_item_artifact.py b/flightctl/v1alpha1/models/catalog_item_artifact.py
new file mode 100644
index 0000000..3642ee5
--- /dev/null
+++ b/flightctl/v1alpha1/models/catalog_item_artifact.py
@@ -0,0 +1,94 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from flightctl.v1alpha1.models.catalog_item_artifact_type import CatalogItemArtifactType
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CatalogItemArtifact(BaseModel):
+ """
+ An artifact reference. The type field is the discriminator and must be unique within the artifacts list.
+ """ # noqa: E501
+ type: CatalogItemArtifactType
+ name: Optional[StrictStr] = Field(default=None, description="Optional human-readable display name for this artifact.")
+ uri: Annotated[str, Field(min_length=1, strict=True)] = Field(description="Artifact URI without version qualifier. The version reference (tag or digest) is applied at resolution time.")
+ __properties: ClassVar[List[str]] = ["type", "name", "uri"]
+
+ 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 CatalogItemArtifact 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 CatalogItemArtifact from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "type": obj.get("type"),
+ "name": obj.get("name"),
+ "uri": obj.get("uri")
+ })
+ return _obj
+
+
diff --git a/flightctl/v1alpha1/models/catalog_item_artifact_type.py b/flightctl/v1alpha1/models/catalog_item_artifact_type.py
new file mode 100644
index 0000000..17dbc48
--- /dev/null
+++ b/flightctl/v1alpha1/models/catalog_item_artifact_type.py
@@ -0,0 +1,45 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class CatalogItemArtifactType(str, Enum):
+ """
+ Artifact format discriminator. Must be unique within the artifacts list. Includes bootc-image-builder output formats.
+ """
+
+ """
+ allowed enum values
+ """
+ CatalogItemArtifactTypeContainer = 'container'
+ CatalogItemArtifactTypeQcow2 = 'qcow2'
+ CatalogItemArtifactTypeAmi = 'ami'
+ CatalogItemArtifactTypeIso = 'iso'
+ CatalogItemArtifactTypeAnacondaIso = 'anaconda-iso'
+ CatalogItemArtifactTypeVmdk = 'vmdk'
+ CatalogItemArtifactTypeVhd = 'vhd'
+ CatalogItemArtifactTypeRaw = 'raw'
+ CatalogItemArtifactTypeGce = 'gce'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of CatalogItemArtifactType from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/flightctl/v1alpha1/models/catalog_item_category.py b/flightctl/v1alpha1/models/catalog_item_category.py
new file mode 100644
index 0000000..35fc2e6
--- /dev/null
+++ b/flightctl/v1alpha1/models/catalog_item_category.py
@@ -0,0 +1,38 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class CatalogItemCategory(str, Enum):
+ """
+ Category of a catalog item.
+ """
+
+ """
+ allowed enum values
+ """
+ CatalogItemCategorySystem = 'system'
+ CatalogItemCategoryApplication = 'application'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of CatalogItemCategory from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/flightctl/v1alpha1/models/catalog_item_configurable.py b/flightctl/v1alpha1/models/catalog_item_configurable.py
new file mode 100644
index 0000000..05a28c8
--- /dev/null
+++ b/flightctl/v1alpha1/models/catalog_item_configurable.py
@@ -0,0 +1,92 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CatalogItemConfigurable(BaseModel):
+ """
+ Configuration fields that can be specified at item level (as defaults) and overridden at version level. Version-level values fully replace item-level values (not merged).
+ """ # noqa: E501
+ config: Optional[Dict[str, Any]] = Field(default=None, description="Configuration values (envVars, ports, volumes, resources, etc.).")
+ config_schema: Optional[Dict[str, Any]] = Field(default=None, description="JSON Schema defining configurable parameters and their validation.", alias="configSchema")
+ readme: Optional[StrictStr] = Field(default=None, description="Detailed documentation, preferably in markdown format.")
+ __properties: ClassVar[List[str]] = ["config", "configSchema", "readme"]
+
+ 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 CatalogItemConfigurable 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 CatalogItemConfigurable from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "config": obj.get("config"),
+ "configSchema": obj.get("configSchema"),
+ "readme": obj.get("readme")
+ })
+ return _obj
+
+
diff --git a/flightctl/v1alpha1/models/catalog_item_deprecation.py b/flightctl/v1alpha1/models/catalog_item_deprecation.py
new file mode 100644
index 0000000..fe41951
--- /dev/null
+++ b/flightctl/v1alpha1/models/catalog_item_deprecation.py
@@ -0,0 +1,90 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CatalogItemDeprecation(BaseModel):
+ """
+ Deprecation information for a catalog item or version. Presence indicates deprecated status.
+ """ # noqa: E501
+ message: StrictStr = Field(description="Required message explaining why this is deprecated and what to do instead.")
+ replacement: Optional[StrictStr] = Field(default=None, description="Optional name of the replacement catalog item (item-level only).")
+ __properties: ClassVar[List[str]] = ["message", "replacement"]
+
+ 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 CatalogItemDeprecation 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 CatalogItemDeprecation from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "message": obj.get("message"),
+ "replacement": obj.get("replacement")
+ })
+ return _obj
+
+
diff --git a/flightctl/v1alpha1/models/catalog_item_list.py b/flightctl/v1alpha1/models/catalog_item_list.py
new file mode 100644
index 0000000..338efc3
--- /dev/null
+++ b/flightctl/v1alpha1/models/catalog_item_list.py
@@ -0,0 +1,107 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List
+from flightctl.v1alpha1.models.api_version import ApiVersion
+from flightctl.v1alpha1.models.catalog_item import CatalogItem
+from flightctl.v1alpha1.models.list_meta import ListMeta
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CatalogItemList(BaseModel):
+ """
+ CatalogItemList is a list of CatalogItems.
+ """ # noqa: E501
+ api_version: ApiVersion = Field(alias="apiVersion")
+ kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
+ metadata: ListMeta
+ items: List[CatalogItem] = Field(description="List of CatalogItems.")
+ __properties: ClassVar[List[str]] = ["apiVersion", "kind", "metadata", "items"]
+
+ 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 CatalogItemList 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 metadata
+ if self.metadata:
+ _dict['metadata'] = self.metadata.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in items (list)
+ _items = []
+ if self.items:
+ for _item_items in self.items:
+ if _item_items:
+ _items.append(_item_items.to_dict())
+ _dict['items'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CatalogItemList from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "apiVersion": obj.get("apiVersion"),
+ "kind": obj.get("kind"),
+ "metadata": ListMeta.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None,
+ "items": [CatalogItem.from_dict(_item) for _item in obj["items"]] if obj.get("items") is not None else None
+ })
+ return _obj
+
+
diff --git a/flightctl/v1alpha1/models/catalog_item_meta.py b/flightctl/v1alpha1/models/catalog_item_meta.py
new file mode 100644
index 0000000..bc1b449
--- /dev/null
+++ b/flightctl/v1alpha1/models/catalog_item_meta.py
@@ -0,0 +1,105 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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 datetime import datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CatalogItemMeta(BaseModel):
+ """
+ Metadata for CatalogItem resources. Extends ObjectMeta with catalog scoping.
+ """ # noqa: E501
+ creation_timestamp: Optional[datetime] = Field(default=None, description="The time the object was created.", alias="creationTimestamp")
+ deletion_timestamp: Optional[datetime] = Field(default=None, description="The time the object will be deleted.", alias="deletionTimestamp")
+ name: Optional[StrictStr] = Field(default=None, description="The name of the object.")
+ labels: Optional[Dict[str, StrictStr]] = Field(default=None, description="Map of string keys and values that can be used to organize and categorize (scope and select) objects.")
+ generation: Optional[StrictInt] = Field(default=None, description="A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.")
+ owner: Optional[StrictStr] = Field(default=None, description="A resource that owns this resource, in \"kind/name\" format.")
+ annotations: Optional[Dict[str, StrictStr]] = Field(default=None, description="Properties set by the service.")
+ resource_version: Optional[StrictStr] = Field(default=None, description="An opaque string that identifies the server's internal version of an object.", alias="resourceVersion")
+ catalog: StrictStr = Field(description="The catalog this item belongs to. Similar to namespace in Kubernetes.")
+ __properties: ClassVar[List[str]] = ["creationTimestamp", "deletionTimestamp", "name", "labels", "generation", "owner", "annotations", "resourceVersion", "catalog"]
+
+ 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 CatalogItemMeta 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 CatalogItemMeta from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "creationTimestamp": obj.get("creationTimestamp"),
+ "deletionTimestamp": obj.get("deletionTimestamp"),
+ "name": obj.get("name"),
+ "labels": obj.get("labels"),
+ "generation": obj.get("generation"),
+ "owner": obj.get("owner"),
+ "annotations": obj.get("annotations"),
+ "resourceVersion": obj.get("resourceVersion"),
+ "catalog": obj.get("catalog")
+ })
+ return _obj
+
+
diff --git a/flightctl/v1alpha1/models/catalog_item_spec.py b/flightctl/v1alpha1/models/catalog_item_spec.py
new file mode 100644
index 0000000..447d198
--- /dev/null
+++ b/flightctl/v1alpha1/models/catalog_item_spec.py
@@ -0,0 +1,139 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from flightctl.v1alpha1.models.catalog_item_artifact import CatalogItemArtifact
+from flightctl.v1alpha1.models.catalog_item_category import CatalogItemCategory
+from flightctl.v1alpha1.models.catalog_item_configurable import CatalogItemConfigurable
+from flightctl.v1alpha1.models.catalog_item_deprecation import CatalogItemDeprecation
+from flightctl.v1alpha1.models.catalog_item_type import CatalogItemType
+from flightctl.v1alpha1.models.catalog_item_version import CatalogItemVersion
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CatalogItemSpec(BaseModel):
+ """
+ CatalogItemSpec defines the configuration for a catalog item.
+ """ # noqa: E501
+ category: Optional[CatalogItemCategory] = CatalogItemCategory.CatalogItemCategoryApplication
+ type: CatalogItemType
+ artifacts: Annotated[List[CatalogItemArtifact], Field(min_length=1)] = Field(description="Artifact definitions for this catalog item. Defined once; version references resolve each artifact independently. Type must be unique within the list.")
+ versions: List[CatalogItemVersion] = Field(description="Available versions using Cincinnati model. Use replaces for primary edge, skips when stable channel skips intermediate versions.")
+ defaults: Optional[CatalogItemConfigurable] = None
+ display_name: Optional[StrictStr] = Field(default=None, description="Human-readable display name shown in catalog listings.", alias="displayName")
+ short_description: Optional[StrictStr] = Field(default=None, description="A brief one-line description of the catalog item.", alias="shortDescription")
+ icon: Optional[StrictStr] = Field(default=None, description="URL or data URI of the catalog item icon for display in UI.")
+ deprecation: Optional[CatalogItemDeprecation] = None
+ provider: Optional[StrictStr] = Field(default=None, description="Provider or publisher of the catalog item (company or team name).")
+ support: Optional[StrictStr] = Field(default=None, description="Link to support resources or documentation for getting help.")
+ homepage: Optional[StrictStr] = Field(default=None, description="The homepage URL for the catalog item project.")
+ documentation_url: Optional[StrictStr] = Field(default=None, description="Link to external documentation.", alias="documentationUrl")
+ __properties: ClassVar[List[str]] = ["category", "type", "artifacts", "versions", "defaults", "displayName", "shortDescription", "icon", "deprecation", "provider", "support", "homepage", "documentationUrl"]
+
+ 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 CatalogItemSpec 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 each item in artifacts (list)
+ _items = []
+ if self.artifacts:
+ for _item_artifacts in self.artifacts:
+ if _item_artifacts:
+ _items.append(_item_artifacts.to_dict())
+ _dict['artifacts'] = _items
+ # override the default output from pydantic by calling `to_dict()` of each item in versions (list)
+ _items = []
+ if self.versions:
+ for _item_versions in self.versions:
+ if _item_versions:
+ _items.append(_item_versions.to_dict())
+ _dict['versions'] = _items
+ # override the default output from pydantic by calling `to_dict()` of defaults
+ if self.defaults:
+ _dict['defaults'] = self.defaults.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of deprecation
+ if self.deprecation:
+ _dict['deprecation'] = self.deprecation.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CatalogItemSpec from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "category": obj.get("category") if obj.get("category") is not None else CatalogItemCategory.CatalogItemCategoryApplication,
+ "type": obj.get("type"),
+ "artifacts": [CatalogItemArtifact.from_dict(_item) for _item in obj["artifacts"]] if obj.get("artifacts") is not None else None,
+ "versions": [CatalogItemVersion.from_dict(_item) for _item in obj["versions"]] if obj.get("versions") is not None else None,
+ "defaults": CatalogItemConfigurable.from_dict(obj["defaults"]) if obj.get("defaults") is not None else None,
+ "displayName": obj.get("displayName"),
+ "shortDescription": obj.get("shortDescription"),
+ "icon": obj.get("icon"),
+ "deprecation": CatalogItemDeprecation.from_dict(obj["deprecation"]) if obj.get("deprecation") is not None else None,
+ "provider": obj.get("provider"),
+ "support": obj.get("support"),
+ "homepage": obj.get("homepage"),
+ "documentationUrl": obj.get("documentationUrl")
+ })
+ return _obj
+
+
diff --git a/flightctl/v1alpha1/models/catalog_item_type.py b/flightctl/v1alpha1/models/catalog_item_type.py
new file mode 100644
index 0000000..b12044a
--- /dev/null
+++ b/flightctl/v1alpha1/models/catalog_item_type.py
@@ -0,0 +1,44 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class CatalogItemType(str, Enum):
+ """
+ Type of catalog item within its category.
+ """
+
+ """
+ allowed enum values
+ """
+ CatalogItemTypeOS = 'os'
+ CatalogItemTypeFirmware = 'firmware'
+ CatalogItemTypeDriver = 'driver'
+ CatalogItemTypeContainer = 'container'
+ CatalogItemTypeHelm = 'helm'
+ CatalogItemTypeQuadlet = 'quadlet'
+ CatalogItemTypeCompose = 'compose'
+ CatalogItemTypeData = 'data'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of CatalogItemType from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/flightctl/v1alpha1/models/catalog_item_version.py b/flightctl/v1alpha1/models/catalog_item_version.py
new file mode 100644
index 0000000..4af8fc3
--- /dev/null
+++ b/flightctl/v1alpha1/models/catalog_item_version.py
@@ -0,0 +1,111 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from flightctl.v1alpha1.models.catalog_item_deprecation import CatalogItemDeprecation
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CatalogItemVersion(BaseModel):
+ """
+ A version of a catalog item following the Cincinnati model where versions are nodes in an upgrade graph and channels are labels on those nodes. Upgrade edges are defined by replaces (single), skips (multiple), or skipRange (semver range). Includes CatalogItemConfigurable fields that override item-level defaults.
+ """ # noqa: E501
+ config: Optional[Dict[str, Any]] = Field(default=None, description="Configuration values (envVars, ports, volumes, resources, etc.).")
+ config_schema: Optional[Dict[str, Any]] = Field(default=None, description="JSON Schema defining configurable parameters and their validation.", alias="configSchema")
+ readme: Optional[StrictStr] = Field(default=None, description="Detailed documentation, preferably in markdown format.")
+ version: StrictStr = Field(description="Semantic version identifier (e.g., 1.2.3, v2.0.0-rc1). Required for version ordering and upgrade graph.")
+ references: Dict[str, Annotated[str, Field(min_length=1, strict=True)]] = Field(description="Map of artifact type to image tag or digest. Keys must match a type in spec.artifacts. Only keyed artifacts are available for this version.")
+ channels: List[StrictStr] = Field(description="Channels this version belongs to.")
+ replaces: Optional[StrictStr] = Field(default=None, description="The single version this one replaces, defining the primary upgrade edge.")
+ skips: Optional[List[StrictStr]] = Field(default=None, description="Additional versions that can upgrade directly to this one. Use when stable channel skips intermediate fast-only versions.")
+ skip_range: Optional[StrictStr] = Field(default=None, description="Semver range of versions that can upgrade directly to this one. Use for z-stream updates or hotfixes.", alias="skipRange")
+ deprecation: Optional[CatalogItemDeprecation] = None
+ __properties: ClassVar[List[str]] = ["config", "configSchema", "readme", "version", "references", "channels", "replaces", "skips", "skipRange", "deprecation"]
+
+ 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 CatalogItemVersion 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 deprecation
+ if self.deprecation:
+ _dict['deprecation'] = self.deprecation.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CatalogItemVersion from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "config": obj.get("config"),
+ "configSchema": obj.get("configSchema"),
+ "readme": obj.get("readme"),
+ "version": obj.get("version"),
+ "references": obj.get("references"),
+ "channels": obj.get("channels"),
+ "replaces": obj.get("replaces"),
+ "skips": obj.get("skips"),
+ "skipRange": obj.get("skipRange"),
+ "deprecation": CatalogItemDeprecation.from_dict(obj["deprecation"]) if obj.get("deprecation") is not None else None
+ })
+ return _obj
+
+
diff --git a/flightctl/v1alpha1/models/catalog_list.py b/flightctl/v1alpha1/models/catalog_list.py
new file mode 100644
index 0000000..fafa9a6
--- /dev/null
+++ b/flightctl/v1alpha1/models/catalog_list.py
@@ -0,0 +1,107 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List
+from flightctl.v1alpha1.models.api_version import ApiVersion
+from flightctl.v1alpha1.models.catalog import Catalog
+from flightctl.v1alpha1.models.list_meta import ListMeta
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CatalogList(BaseModel):
+ """
+ CatalogList is a list of Catalogs.
+ """ # noqa: E501
+ api_version: ApiVersion = Field(alias="apiVersion")
+ kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
+ metadata: ListMeta
+ items: List[Catalog] = Field(description="List of Catalogs.")
+ __properties: ClassVar[List[str]] = ["apiVersion", "kind", "metadata", "items"]
+
+ 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 CatalogList 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 metadata
+ if self.metadata:
+ _dict['metadata'] = self.metadata.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in items (list)
+ _items = []
+ if self.items:
+ for _item_items in self.items:
+ if _item_items:
+ _items.append(_item_items.to_dict())
+ _dict['items'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CatalogList from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "apiVersion": obj.get("apiVersion"),
+ "kind": obj.get("kind"),
+ "metadata": ListMeta.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None,
+ "items": [Catalog.from_dict(_item) for _item in obj["items"]] if obj.get("items") is not None else None
+ })
+ return _obj
+
+
diff --git a/flightctl/v1alpha1/models/catalog_spec.py b/flightctl/v1alpha1/models/catalog_spec.py
new file mode 100644
index 0000000..2a824c3
--- /dev/null
+++ b/flightctl/v1alpha1/models/catalog_spec.py
@@ -0,0 +1,96 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CatalogSpec(BaseModel):
+ """
+ CatalogSpec describes the configuration of a catalog. Catalogs are containers for locally-managed CatalogItems.
+ """ # noqa: E501
+ display_name: Optional[StrictStr] = Field(default=None, description="Human-readable display name shown in catalog listings.", alias="displayName")
+ short_description: Optional[StrictStr] = Field(default=None, description="A brief one-line description of the catalog.", alias="shortDescription")
+ icon: Optional[StrictStr] = Field(default=None, description="URL or data URI of the catalog icon for display in UI.")
+ provider: Optional[StrictStr] = Field(default=None, description="Provider or publisher of the catalog (company or team name).")
+ support: Optional[StrictStr] = Field(default=None, description="Link to support resources or documentation for getting help.")
+ __properties: ClassVar[List[str]] = ["displayName", "shortDescription", "icon", "provider", "support"]
+
+ 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 CatalogSpec 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 CatalogSpec from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "displayName": obj.get("displayName"),
+ "shortDescription": obj.get("shortDescription"),
+ "icon": obj.get("icon"),
+ "provider": obj.get("provider"),
+ "support": obj.get("support")
+ })
+ return _obj
+
+
diff --git a/flightctl/v1alpha1/models/catalog_status.py b/flightctl/v1alpha1/models/catalog_status.py
new file mode 100644
index 0000000..0804788
--- /dev/null
+++ b/flightctl/v1alpha1/models/catalog_status.py
@@ -0,0 +1,96 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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
+from typing import Any, ClassVar, Dict, List
+from flightctl.v1alpha1.models.condition import Condition
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CatalogStatus(BaseModel):
+ """
+ CatalogStatus represents the current status of a catalog source.
+ """ # noqa: E501
+ conditions: List[Condition] = Field(description="Current state of the catalog source.")
+ __properties: ClassVar[List[str]] = ["conditions"]
+
+ 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 CatalogStatus 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 each item in conditions (list)
+ _items = []
+ if self.conditions:
+ for _item_conditions in self.conditions:
+ if _item_conditions:
+ _items.append(_item_conditions.to_dict())
+ _dict['conditions'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CatalogStatus from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "conditions": [Condition.from_dict(_item) for _item in obj["conditions"]] if obj.get("conditions") is not None else None
+ })
+ return _obj
+
+
diff --git a/flightctl/v1alpha1/models/condition.py b/flightctl/v1alpha1/models/condition.py
new file mode 100644
index 0000000..707349d
--- /dev/null
+++ b/flightctl/v1alpha1/models/condition.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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 datetime import datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.v1alpha1.models.condition_status import ConditionStatus
+from flightctl.v1alpha1.models.condition_type import ConditionType
+from typing import Optional, Set
+from typing_extensions import Self
+
+class Condition(BaseModel):
+ """
+ Condition contains details for one aspect of the current state of this API Resource.
+ """ # noqa: E501
+ status: ConditionStatus
+ observed_generation: Optional[StrictInt] = Field(default=None, description="The .metadata.generation that the condition was set based upon.", alias="observedGeneration")
+ last_transition_time: datetime = Field(description="The last time the condition transitioned from one status to another.", alias="lastTransitionTime")
+ message: StrictStr = Field(description="Human readable message indicating details about last transition.")
+ reason: StrictStr = Field(description="A (brief) reason for the condition's last transition.")
+ type: ConditionType
+ __properties: ClassVar[List[str]] = ["status", "observedGeneration", "lastTransitionTime", "message", "reason", "type"]
+
+ 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 Condition 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 Condition from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "status": obj.get("status"),
+ "observedGeneration": obj.get("observedGeneration"),
+ "lastTransitionTime": obj.get("lastTransitionTime"),
+ "message": obj.get("message"),
+ "reason": obj.get("reason"),
+ "type": obj.get("type")
+ })
+ return _obj
+
+
diff --git a/flightctl/v1alpha1/models/condition_base.py b/flightctl/v1alpha1/models/condition_base.py
new file mode 100644
index 0000000..6b40705
--- /dev/null
+++ b/flightctl/v1alpha1/models/condition_base.py
@@ -0,0 +1,98 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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 datetime import datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from flightctl.v1alpha1.models.condition_status import ConditionStatus
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ConditionBase(BaseModel):
+ """
+ Base condition structure following Kubernetes API conventions. Use with allOf to add a specific type enum.
+ """ # noqa: E501
+ status: ConditionStatus
+ observed_generation: Optional[StrictInt] = Field(default=None, description="The .metadata.generation that the condition was set based upon.", alias="observedGeneration")
+ last_transition_time: datetime = Field(description="The last time the condition transitioned from one status to another.", alias="lastTransitionTime")
+ message: StrictStr = Field(description="Human readable message indicating details about last transition.")
+ reason: StrictStr = Field(description="A (brief) reason for the condition's last transition.")
+ __properties: ClassVar[List[str]] = ["status", "observedGeneration", "lastTransitionTime", "message", "reason"]
+
+ 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 ConditionBase 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 ConditionBase from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "status": obj.get("status"),
+ "observedGeneration": obj.get("observedGeneration"),
+ "lastTransitionTime": obj.get("lastTransitionTime"),
+ "message": obj.get("message"),
+ "reason": obj.get("reason")
+ })
+ return _obj
+
+
diff --git a/flightctl/v1alpha1/models/condition_status.py b/flightctl/v1alpha1/models/condition_status.py
new file mode 100644
index 0000000..aaaa1b6
--- /dev/null
+++ b/flightctl/v1alpha1/models/condition_status.py
@@ -0,0 +1,39 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class ConditionStatus(str, Enum):
+ """
+ Status of the condition, one of True, False, Unknown.
+ """
+
+ """
+ allowed enum values
+ """
+ ConditionStatusTrue = 'True'
+ ConditionStatusFalse = 'False'
+ ConditionStatusUnknown = 'Unknown'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ConditionStatus from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/flightctl/v1alpha1/models/condition_type.py b/flightctl/v1alpha1/models/condition_type.py
new file mode 100644
index 0000000..55d4e17
--- /dev/null
+++ b/flightctl/v1alpha1/models/condition_type.py
@@ -0,0 +1,52 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class ConditionType(str, Enum):
+ """
+ Type of condition in CamelCase.
+ """
+
+ """
+ allowed enum values
+ """
+ EnrollmentRequestApproved = 'Approved'
+ EnrollmentRequestTPMVerified = 'TPMVerified'
+ CertificateSigningRequestApproved = 'Approved'
+ CertificateSigningRequestDenied = 'Denied'
+ CertificateSigningRequestFailed = 'Failed'
+ CertificateSigningRequestTPMVerified = 'TPMVerified'
+ RepositoryAccessible = 'Accessible'
+ ResourceSyncAccessible = 'Accessible'
+ ResourceSyncResourceParsed = 'ResourceParsed'
+ ResourceSyncSynced = 'Synced'
+ FleetValid = 'Valid'
+ FleetRolloutInProgress = 'RolloutInProgress'
+ DeviceUpdating = 'Updating'
+ DeviceSpecValid = 'SpecValid'
+ DeviceMultipleOwners = 'MultipleOwners'
+ DeviceDecommissioning = 'DeviceDecommissioning'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ConditionType from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/flightctl/v1alpha1/models/list_meta.py b/flightctl/v1alpha1/models/list_meta.py
new file mode 100644
index 0000000..aefd144
--- /dev/null
+++ b/flightctl/v1alpha1/models/list_meta.py
@@ -0,0 +1,90 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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 typing import Optional, Set
+from typing_extensions import Self
+
+class ListMeta(BaseModel):
+ """
+ ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.
+ """ # noqa: E501
+ var_continue: Optional[StrictStr] = Field(default=None, description="May be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.", alias="continue")
+ remaining_item_count: Optional[StrictInt] = Field(default=None, description="The number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.", alias="remainingItemCount")
+ __properties: ClassVar[List[str]] = ["continue", "remainingItemCount"]
+
+ 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 ListMeta 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 ListMeta from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "continue": obj.get("continue"),
+ "remainingItemCount": obj.get("remainingItemCount")
+ })
+ return _obj
+
+
diff --git a/flightctl/v1alpha1/models/object_meta.py b/flightctl/v1alpha1/models/object_meta.py
new file mode 100644
index 0000000..a8ba3c8
--- /dev/null
+++ b/flightctl/v1alpha1/models/object_meta.py
@@ -0,0 +1,103 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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 datetime import datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ObjectMeta(BaseModel):
+ """
+ ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.
+ """ # noqa: E501
+ creation_timestamp: Optional[datetime] = Field(default=None, description="The time the object was created.", alias="creationTimestamp")
+ deletion_timestamp: Optional[datetime] = Field(default=None, description="The time the object will be deleted.", alias="deletionTimestamp")
+ name: Optional[StrictStr] = Field(default=None, description="The name of the object.")
+ labels: Optional[Dict[str, StrictStr]] = Field(default=None, description="Map of string keys and values that can be used to organize and categorize (scope and select) objects.")
+ generation: Optional[StrictInt] = Field(default=None, description="A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.")
+ owner: Optional[StrictStr] = Field(default=None, description="A resource that owns this resource, in \"kind/name\" format.")
+ annotations: Optional[Dict[str, StrictStr]] = Field(default=None, description="Properties set by the service.")
+ resource_version: Optional[StrictStr] = Field(default=None, description="An opaque string that identifies the server's internal version of an object.", alias="resourceVersion")
+ __properties: ClassVar[List[str]] = ["creationTimestamp", "deletionTimestamp", "name", "labels", "generation", "owner", "annotations", "resourceVersion"]
+
+ 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 ObjectMeta 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 ObjectMeta from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "creationTimestamp": obj.get("creationTimestamp"),
+ "deletionTimestamp": obj.get("deletionTimestamp"),
+ "name": obj.get("name"),
+ "labels": obj.get("labels"),
+ "generation": obj.get("generation"),
+ "owner": obj.get("owner"),
+ "annotations": obj.get("annotations"),
+ "resourceVersion": obj.get("resourceVersion")
+ })
+ return _obj
+
+
diff --git a/flightctl/v1alpha1/models/patch_request_inner.py b/flightctl/v1alpha1/models/patch_request_inner.py
new file mode 100644
index 0000000..7173ab2
--- /dev/null
+++ b/flightctl/v1alpha1/models/patch_request_inner.py
@@ -0,0 +1,104 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class PatchRequestInner(BaseModel):
+ """
+ PatchRequestInner
+ """ # noqa: E501
+ path: StrictStr = Field(description="A JSON Pointer path.")
+ value: Optional[Any] = Field(default=None, description="The value to add or replace.")
+ op: StrictStr = Field(description="The operation to perform.")
+ __properties: ClassVar[List[str]] = ["path", "value", "op"]
+
+ @field_validator('op')
+ def op_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['add', 'replace', 'remove', 'test']):
+ raise ValueError("must be one of enum values ('add', 'replace', 'remove', 'test')")
+ return value
+
+ 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 PatchRequestInner 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,
+ )
+ # set to None if value (nullable) is None
+ # and model_fields_set contains the field
+ if self.value is None and "value" in self.model_fields_set:
+ _dict['value'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of PatchRequestInner from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "path": obj.get("path"),
+ "value": obj.get("value"),
+ "op": obj.get("op")
+ })
+ return _obj
+
+
diff --git a/flightctl/v1alpha1/models/schemas_api_version.py b/flightctl/v1alpha1/models/schemas_api_version.py
new file mode 100644
index 0000000..5618c55
--- /dev/null
+++ b/flightctl/v1alpha1/models/schemas_api_version.py
@@ -0,0 +1,39 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class SchemasApiVersion(str, Enum):
+ """
+ APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.
+ """
+
+ """
+ allowed enum values
+ """
+ ApiVersionV1beta1 = 'v1beta1'
+ ApiVersionFlightctlIoV1beta1 = 'flightctl.io/v1beta1'
+ ApiVersionEmpty = ''
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of SchemasApiVersion from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/flightctl/v1alpha1/models/schemas_status.py b/flightctl/v1alpha1/models/schemas_status.py
new file mode 100644
index 0000000..dc51a15
--- /dev/null
+++ b/flightctl/v1alpha1/models/schemas_status.py
@@ -0,0 +1,99 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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
+from flightctl.v1alpha1.models.schemas_api_version import SchemasApiVersion
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SchemasStatus(BaseModel):
+ """
+ Status is a return value for calls that don't return other objects.
+ """ # noqa: E501
+ api_version: SchemasApiVersion = Field(alias="apiVersion")
+ kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
+ code: StrictInt = Field(description="Suggested HTTP return code for this status, 0 if not set.")
+ message: StrictStr = Field(description="A human-readable description of the status of this operation.")
+ reason: StrictStr = Field(description="A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.")
+ status: StrictStr = Field(description="Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.")
+ __properties: ClassVar[List[str]] = ["apiVersion", "kind", "code", "message", "reason", "status"]
+
+ 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 SchemasStatus 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 SchemasStatus from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "apiVersion": obj.get("apiVersion"),
+ "kind": obj.get("kind"),
+ "code": obj.get("code"),
+ "message": obj.get("message"),
+ "reason": obj.get("reason"),
+ "status": obj.get("status")
+ })
+ return _obj
+
+
diff --git a/flightctl/v1alpha1/models/status.py b/flightctl/v1alpha1/models/status.py
new file mode 100644
index 0000000..bbcbbc6
--- /dev/null
+++ b/flightctl/v1alpha1/models/status.py
@@ -0,0 +1,99 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ 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
+from flightctl.v1alpha1.models.api_version import ApiVersion
+from typing import Optional, Set
+from typing_extensions import Self
+
+class Status(BaseModel):
+ """
+ Status is a return value for calls that don't return other objects.
+ """ # noqa: E501
+ api_version: ApiVersion = Field(alias="apiVersion")
+ kind: StrictStr = Field(description="Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.")
+ code: StrictInt = Field(description="Suggested HTTP return code for this status, 0 if not set.")
+ message: StrictStr = Field(description="A human-readable description of the status of this operation.")
+ reason: StrictStr = Field(description="A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.")
+ status: StrictStr = Field(description="Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.")
+ __properties: ClassVar[List[str]] = ["apiVersion", "kind", "code", "message", "reason", "status"]
+
+ 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 Status 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 Status from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "apiVersion": obj.get("apiVersion"),
+ "kind": obj.get("kind"),
+ "code": obj.get("code"),
+ "message": obj.get("message"),
+ "reason": obj.get("reason"),
+ "status": obj.get("status")
+ })
+ return _obj
+
+
diff --git a/flightctl/v1alpha1/rest.py b/flightctl/v1alpha1/rest.py
new file mode 100644
index 0000000..b9894eb
--- /dev/null
+++ b/flightctl/v1alpha1/rest.py
@@ -0,0 +1,259 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import io
+import json
+import re
+import ssl
+
+import urllib3
+
+from flightctl.v1alpha1.exceptions import ApiException, ApiValueError
+
+SUPPORTED_SOCKS_PROXIES = {"socks5", "socks5h", "socks4", "socks4a"}
+RESTResponseType = urllib3.HTTPResponse
+
+
+def is_socks_proxy_url(url):
+ if url is None:
+ return False
+ split_section = url.split("://")
+ if len(split_section) < 2:
+ return False
+ else:
+ return split_section[0].lower() in SUPPORTED_SOCKS_PROXIES
+
+
+class RESTResponse(io.IOBase):
+
+ def __init__(self, resp) -> None:
+ self.response = resp
+ self.status = resp.status
+ self.reason = resp.reason
+ self.data = None
+
+ def read(self):
+ if self.data is None:
+ self.data = self.response.data
+ return self.data
+
+ def getheaders(self):
+ """Returns a dictionary of the response headers."""
+ return self.response.headers
+
+ def getheader(self, name, default=None):
+ """Returns a given response header."""
+ return self.response.headers.get(name, default)
+
+
+class RESTClientObject:
+
+ def __init__(self, configuration) -> None:
+ # urllib3.PoolManager will pass all kw parameters to connectionpool
+ # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/poolmanager.py#L75 # noqa: E501
+ # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/connectionpool.py#L680 # noqa: E501
+ # Custom SSL certificates and client certificates: http://urllib3.readthedocs.io/en/latest/advanced-usage.html # noqa: E501
+
+ # cert_reqs
+ if configuration.verify_ssl:
+ cert_reqs = ssl.CERT_REQUIRED
+ else:
+ cert_reqs = ssl.CERT_NONE
+
+ pool_args = {
+ "cert_reqs": cert_reqs,
+ "ca_certs": configuration.ssl_ca_cert,
+ "cert_file": configuration.cert_file,
+ "key_file": configuration.key_file,
+ "ca_cert_data": configuration.ca_cert_data,
+ }
+ if configuration.assert_hostname is not None:
+ pool_args['assert_hostname'] = (
+ configuration.assert_hostname
+ )
+
+ if configuration.retries is not None:
+ pool_args['retries'] = configuration.retries
+
+ if configuration.tls_server_name:
+ pool_args['server_hostname'] = configuration.tls_server_name
+
+
+ if configuration.socket_options is not None:
+ pool_args['socket_options'] = configuration.socket_options
+
+ if configuration.connection_pool_maxsize is not None:
+ pool_args['maxsize'] = configuration.connection_pool_maxsize
+
+ # https pool manager
+ self.pool_manager: urllib3.PoolManager
+
+ if configuration.proxy:
+ if is_socks_proxy_url(configuration.proxy):
+ from urllib3.contrib.socks import SOCKSProxyManager
+ pool_args["proxy_url"] = configuration.proxy
+ pool_args["headers"] = configuration.proxy_headers
+ self.pool_manager = SOCKSProxyManager(**pool_args)
+ else:
+ pool_args["proxy_url"] = configuration.proxy
+ pool_args["proxy_headers"] = configuration.proxy_headers
+ self.pool_manager = urllib3.ProxyManager(**pool_args)
+ else:
+ self.pool_manager = urllib3.PoolManager(**pool_args)
+
+ def request(
+ self,
+ method,
+ url,
+ headers=None,
+ body=None,
+ post_params=None,
+ _request_timeout=None
+ ):
+ """Perform requests.
+
+ :param method: http request method
+ :param url: http request url
+ :param headers: http request headers
+ :param body: request json body, for `application/json`
+ :param post_params: request post parameters,
+ `application/x-www-form-urlencoded`
+ and `multipart/form-data`
+ :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.
+ """
+ method = method.upper()
+ assert method in [
+ 'GET',
+ 'HEAD',
+ 'DELETE',
+ 'POST',
+ 'PUT',
+ 'PATCH',
+ 'OPTIONS'
+ ]
+
+ if post_params and body:
+ raise ApiValueError(
+ "body parameter cannot be used with post_params parameter."
+ )
+
+ post_params = post_params or {}
+ headers = headers or {}
+
+ timeout = None
+ if _request_timeout:
+ if isinstance(_request_timeout, (int, float)):
+ timeout = urllib3.Timeout(total=_request_timeout)
+ elif (
+ isinstance(_request_timeout, tuple)
+ and len(_request_timeout) == 2
+ ):
+ timeout = urllib3.Timeout(
+ connect=_request_timeout[0],
+ read=_request_timeout[1]
+ )
+
+ try:
+ # For `POST`, `PUT`, `PATCH`, `OPTIONS`, `DELETE`
+ if method in ['POST', 'PUT', 'PATCH', 'OPTIONS', 'DELETE']:
+
+ # no content type provided or payload is json
+ content_type = headers.get('Content-Type')
+ if (
+ not content_type
+ or re.search('json', content_type, re.IGNORECASE)
+ ):
+ request_body = None
+ if body is not None:
+ request_body = json.dumps(body)
+ r = self.pool_manager.request(
+ method,
+ url,
+ body=request_body,
+ timeout=timeout,
+ headers=headers,
+ preload_content=False
+ )
+ elif content_type == 'application/x-www-form-urlencoded':
+ r = self.pool_manager.request(
+ method,
+ url,
+ fields=post_params,
+ encode_multipart=False,
+ timeout=timeout,
+ headers=headers,
+ preload_content=False
+ )
+ elif content_type == 'multipart/form-data':
+ # must del headers['Content-Type'], or the correct
+ # Content-Type which generated by urllib3 will be
+ # overwritten.
+ del headers['Content-Type']
+ # Ensures that dict objects are serialized
+ post_params = [(a, json.dumps(b)) if isinstance(b, dict) else (a,b) for a, b in post_params]
+ r = self.pool_manager.request(
+ method,
+ url,
+ fields=post_params,
+ encode_multipart=True,
+ timeout=timeout,
+ headers=headers,
+ preload_content=False
+ )
+ # Pass a `string` parameter directly in the body to support
+ # other content types than JSON when `body` argument is
+ # provided in serialized form.
+ elif isinstance(body, str) or isinstance(body, bytes):
+ r = self.pool_manager.request(
+ method,
+ url,
+ body=body,
+ timeout=timeout,
+ headers=headers,
+ preload_content=False
+ )
+ elif headers['Content-Type'].startswith('text/') and isinstance(body, bool):
+ request_body = "true" if body else "false"
+ r = self.pool_manager.request(
+ method,
+ url,
+ body=request_body,
+ preload_content=False,
+ timeout=timeout,
+ headers=headers)
+ else:
+ # Cannot generate the request from given parameters
+ msg = """Cannot prepare a request message for provided
+ arguments. Please check that your arguments match
+ declared content type."""
+ raise ApiException(status=0, reason=msg)
+ # For `GET`, `HEAD`
+ else:
+ r = self.pool_manager.request(
+ method,
+ url,
+ fields={},
+ timeout=timeout,
+ headers=headers,
+ preload_content=False
+ )
+ except urllib3.exceptions.SSLError as e:
+ msg = "\n".join([type(e).__name__, str(e)])
+ raise ApiException(status=0, reason=msg)
+
+ return RESTResponse(r)
diff --git a/flightctl/v1alpha1/test/__init__.py b/flightctl/v1alpha1/test/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/flightctl/v1alpha1/test/test_api_version.py b/flightctl/v1alpha1/test/test_api_version.py
new file mode 100644
index 0000000..e48b8dc
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_api_version.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.api_version import ApiVersion
+
+class TestApiVersion(unittest.TestCase):
+ """ApiVersion unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testApiVersion(self):
+ """Test ApiVersion"""
+ # inst = ApiVersion()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_catalog.py b/flightctl/v1alpha1/test/test_catalog.py
new file mode 100644
index 0000000..9648940
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_catalog.py
@@ -0,0 +1,97 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.catalog import Catalog
+
+class TestCatalog(unittest.TestCase):
+ """Catalog unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> Catalog:
+ """Test Catalog
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `Catalog`
+ """
+ model = Catalog()
+ if include_optional:
+ return Catalog(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.v1alpha1.models.object_meta.ObjectMeta(
+ creation_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ deletion_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ name = '',
+ labels = {
+ 'key' : ''
+ },
+ generation = 56,
+ owner = '',
+ annotations = {
+ 'key' : ''
+ },
+ resource_version = '', ),
+ spec = flightctl.v1alpha1.models.catalog_spec.CatalogSpec(
+ display_name = '',
+ short_description = '',
+ icon = '',
+ provider = '',
+ support = '', ),
+ status = flightctl.v1alpha1.models.catalog_status.CatalogStatus(
+ conditions = [
+ null
+ ], )
+ )
+ else:
+ return Catalog(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.v1alpha1.models.object_meta.ObjectMeta(
+ creation_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ deletion_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ name = '',
+ labels = {
+ 'key' : ''
+ },
+ generation = 56,
+ owner = '',
+ annotations = {
+ 'key' : ''
+ },
+ resource_version = '', ),
+ spec = flightctl.v1alpha1.models.catalog_spec.CatalogSpec(
+ display_name = '',
+ short_description = '',
+ icon = '',
+ provider = '',
+ support = '', ),
+ )
+ """
+
+ def testCatalog(self):
+ """Test Catalog"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_catalog_api.py b/flightctl/v1alpha1/test/test_catalog_api.py
new file mode 100644
index 0000000..8fbcca6
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_catalog_api.py
@@ -0,0 +1,128 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.api.catalog_api import CatalogApi
+
+
+class TestCatalogApi(unittest.TestCase):
+ """CatalogApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = CatalogApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_create_catalog(self) -> None:
+ """Test case for create_catalog
+
+ """
+ pass
+
+ def test_create_catalog_item(self) -> None:
+ """Test case for create_catalog_item
+
+ """
+ pass
+
+ def test_delete_catalog(self) -> None:
+ """Test case for delete_catalog
+
+ """
+ pass
+
+ def test_delete_catalog_item(self) -> None:
+ """Test case for delete_catalog_item
+
+ """
+ pass
+
+ def test_get_catalog(self) -> None:
+ """Test case for get_catalog
+
+ """
+ pass
+
+ def test_get_catalog_item(self) -> None:
+ """Test case for get_catalog_item
+
+ """
+ pass
+
+ def test_get_catalog_status(self) -> None:
+ """Test case for get_catalog_status
+
+ """
+ pass
+
+ def test_list_all_catalog_items(self) -> None:
+ """Test case for list_all_catalog_items
+
+ """
+ pass
+
+ def test_list_catalog_items(self) -> None:
+ """Test case for list_catalog_items
+
+ """
+ pass
+
+ def test_list_catalogs(self) -> None:
+ """Test case for list_catalogs
+
+ """
+ pass
+
+ def test_patch_catalog(self) -> None:
+ """Test case for patch_catalog
+
+ """
+ pass
+
+ def test_patch_catalog_item(self) -> None:
+ """Test case for patch_catalog_item
+
+ """
+ pass
+
+ def test_patch_catalog_status(self) -> None:
+ """Test case for patch_catalog_status
+
+ """
+ pass
+
+ def test_replace_catalog(self) -> None:
+ """Test case for replace_catalog
+
+ """
+ pass
+
+ def test_replace_catalog_item(self) -> None:
+ """Test case for replace_catalog_item
+
+ """
+ pass
+
+ def test_replace_catalog_status(self) -> None:
+ """Test case for replace_catalog_status
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_catalog_item.py b/flightctl/v1alpha1/test/test_catalog_item.py
new file mode 100644
index 0000000..4cc45f0
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_catalog_item.py
@@ -0,0 +1,95 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.catalog_item import CatalogItem
+
+class TestCatalogItem(unittest.TestCase):
+ """CatalogItem unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> CatalogItem:
+ """Test CatalogItem
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `CatalogItem`
+ """
+ model = CatalogItem()
+ if include_optional:
+ return CatalogItem(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.v1alpha1.models.catalog_item_meta.CatalogItemMeta(),
+ spec = flightctl.v1alpha1.models.catalog_item_spec.CatalogItemSpec(
+ category = 'application',
+ type = 'os',
+ artifacts = [{"type":"container","uri":"quay.io/prometheus/prometheus"}],
+ versions = [{"version":"2.45.0","references":{"container":"sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"},"channels":["stable","fast"],"replaces":"2.44.0","skips":["2.43.0"]},{"version":"2.44.0","references":{"container":"v2.44.0"},"channels":["fast"],"replaces":"2.43.0"}],
+ defaults = flightctl.v1alpha1.models.catalog_item_configurable.CatalogItemConfigurable(
+ config = {"envVars":{"LOG_LEVEL":"info"},"ports":["9090:9090"]},
+ config_schema = { },
+ readme = '', ),
+ display_name = '',
+ short_description = '',
+ icon = '',
+ deprecation = flightctl.v1alpha1.models.catalog_item_deprecation.CatalogItemDeprecation(
+ message = 'This item is deprecated. Use nginx-plus instead.',
+ replacement = 'nginx-plus', ),
+ provider = '',
+ support = '',
+ homepage = '',
+ documentation_url = '', )
+ )
+ else:
+ return CatalogItem(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.v1alpha1.models.catalog_item_meta.CatalogItemMeta(),
+ spec = flightctl.v1alpha1.models.catalog_item_spec.CatalogItemSpec(
+ category = 'application',
+ type = 'os',
+ artifacts = [{"type":"container","uri":"quay.io/prometheus/prometheus"}],
+ versions = [{"version":"2.45.0","references":{"container":"sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"},"channels":["stable","fast"],"replaces":"2.44.0","skips":["2.43.0"]},{"version":"2.44.0","references":{"container":"v2.44.0"},"channels":["fast"],"replaces":"2.43.0"}],
+ defaults = flightctl.v1alpha1.models.catalog_item_configurable.CatalogItemConfigurable(
+ config = {"envVars":{"LOG_LEVEL":"info"},"ports":["9090:9090"]},
+ config_schema = { },
+ readme = '', ),
+ display_name = '',
+ short_description = '',
+ icon = '',
+ deprecation = flightctl.v1alpha1.models.catalog_item_deprecation.CatalogItemDeprecation(
+ message = 'This item is deprecated. Use nginx-plus instead.',
+ replacement = 'nginx-plus', ),
+ provider = '',
+ support = '',
+ homepage = '',
+ documentation_url = '', ),
+ )
+ """
+
+ def testCatalogItem(self):
+ """Test CatalogItem"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_catalog_item_artifact.py b/flightctl/v1alpha1/test/test_catalog_item_artifact.py
new file mode 100644
index 0000000..37dd7a8
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_catalog_item_artifact.py
@@ -0,0 +1,56 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.catalog_item_artifact import CatalogItemArtifact
+
+class TestCatalogItemArtifact(unittest.TestCase):
+ """CatalogItemArtifact unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> CatalogItemArtifact:
+ """Test CatalogItemArtifact
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `CatalogItemArtifact`
+ """
+ model = CatalogItemArtifact()
+ if include_optional:
+ return CatalogItemArtifact(
+ type = 'container',
+ name = 'QCOW2 Disk Image',
+ uri = 'quay.io/redhat/rhel-bootc-qcow2'
+ )
+ else:
+ return CatalogItemArtifact(
+ type = 'container',
+ uri = 'quay.io/redhat/rhel-bootc-qcow2',
+ )
+ """
+
+ def testCatalogItemArtifact(self):
+ """Test CatalogItemArtifact"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_catalog_item_artifact_type.py b/flightctl/v1alpha1/test/test_catalog_item_artifact_type.py
new file mode 100644
index 0000000..19946b3
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_catalog_item_artifact_type.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.catalog_item_artifact_type import CatalogItemArtifactType
+
+class TestCatalogItemArtifactType(unittest.TestCase):
+ """CatalogItemArtifactType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testCatalogItemArtifactType(self):
+ """Test CatalogItemArtifactType"""
+ # inst = CatalogItemArtifactType()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_catalog_item_category.py b/flightctl/v1alpha1/test/test_catalog_item_category.py
new file mode 100644
index 0000000..6ac2d94
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_catalog_item_category.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.catalog_item_category import CatalogItemCategory
+
+class TestCatalogItemCategory(unittest.TestCase):
+ """CatalogItemCategory unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testCatalogItemCategory(self):
+ """Test CatalogItemCategory"""
+ # inst = CatalogItemCategory()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_catalog_item_configurable.py b/flightctl/v1alpha1/test/test_catalog_item_configurable.py
new file mode 100644
index 0000000..b6c31ea
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_catalog_item_configurable.py
@@ -0,0 +1,54 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.catalog_item_configurable import CatalogItemConfigurable
+
+class TestCatalogItemConfigurable(unittest.TestCase):
+ """CatalogItemConfigurable unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> CatalogItemConfigurable:
+ """Test CatalogItemConfigurable
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `CatalogItemConfigurable`
+ """
+ model = CatalogItemConfigurable()
+ if include_optional:
+ return CatalogItemConfigurable(
+ config = {"envVars":{"LOG_LEVEL":"info"},"ports":["9090:9090"]},
+ config_schema = { },
+ readme = ''
+ )
+ else:
+ return CatalogItemConfigurable(
+ )
+ """
+
+ def testCatalogItemConfigurable(self):
+ """Test CatalogItemConfigurable"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_catalog_item_deprecation.py b/flightctl/v1alpha1/test/test_catalog_item_deprecation.py
new file mode 100644
index 0000000..7f7ccd4
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_catalog_item_deprecation.py
@@ -0,0 +1,54 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.catalog_item_deprecation import CatalogItemDeprecation
+
+class TestCatalogItemDeprecation(unittest.TestCase):
+ """CatalogItemDeprecation unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> CatalogItemDeprecation:
+ """Test CatalogItemDeprecation
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `CatalogItemDeprecation`
+ """
+ model = CatalogItemDeprecation()
+ if include_optional:
+ return CatalogItemDeprecation(
+ message = 'This item is deprecated. Use nginx-plus instead.',
+ replacement = 'nginx-plus'
+ )
+ else:
+ return CatalogItemDeprecation(
+ message = 'This item is deprecated. Use nginx-plus instead.',
+ )
+ """
+
+ def testCatalogItemDeprecation(self):
+ """Test CatalogItemDeprecation"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_catalog_item_list.py b/flightctl/v1alpha1/test/test_catalog_item_list.py
new file mode 100644
index 0000000..1755c09
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_catalog_item_list.py
@@ -0,0 +1,111 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.catalog_item_list import CatalogItemList
+
+class TestCatalogItemList(unittest.TestCase):
+ """CatalogItemList unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> CatalogItemList:
+ """Test CatalogItemList
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `CatalogItemList`
+ """
+ model = CatalogItemList()
+ if include_optional:
+ return CatalogItemList(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.v1alpha1.models.list_meta.ListMeta(
+ continue = '',
+ remaining_item_count = 56, ),
+ items = [
+ flightctl.v1alpha1.models.catalog_item.CatalogItem(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.v1alpha1.models.catalog_item_meta.CatalogItemMeta(),
+ spec = flightctl.v1alpha1.models.catalog_item_spec.CatalogItemSpec(
+ category = 'application',
+ type = 'os',
+ artifacts = [{"type":"container","uri":"quay.io/prometheus/prometheus"}],
+ versions = [{"version":"2.45.0","references":{"container":"sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"},"channels":["stable","fast"],"replaces":"2.44.0","skips":["2.43.0"]},{"version":"2.44.0","references":{"container":"v2.44.0"},"channels":["fast"],"replaces":"2.43.0"}],
+ defaults = flightctl.v1alpha1.models.catalog_item_configurable.CatalogItemConfigurable(
+ config = {"envVars":{"LOG_LEVEL":"info"},"ports":["9090:9090"]},
+ config_schema = { },
+ readme = '', ),
+ display_name = '',
+ short_description = '',
+ icon = '',
+ deprecation = flightctl.v1alpha1.models.catalog_item_deprecation.CatalogItemDeprecation(
+ message = 'This item is deprecated. Use nginx-plus instead.',
+ replacement = 'nginx-plus', ),
+ provider = '',
+ support = '',
+ homepage = '',
+ documentation_url = '', ), )
+ ]
+ )
+ else:
+ return CatalogItemList(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.v1alpha1.models.list_meta.ListMeta(
+ continue = '',
+ remaining_item_count = 56, ),
+ items = [
+ flightctl.v1alpha1.models.catalog_item.CatalogItem(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.v1alpha1.models.catalog_item_meta.CatalogItemMeta(),
+ spec = flightctl.v1alpha1.models.catalog_item_spec.CatalogItemSpec(
+ category = 'application',
+ type = 'os',
+ artifacts = [{"type":"container","uri":"quay.io/prometheus/prometheus"}],
+ versions = [{"version":"2.45.0","references":{"container":"sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"},"channels":["stable","fast"],"replaces":"2.44.0","skips":["2.43.0"]},{"version":"2.44.0","references":{"container":"v2.44.0"},"channels":["fast"],"replaces":"2.43.0"}],
+ defaults = flightctl.v1alpha1.models.catalog_item_configurable.CatalogItemConfigurable(
+ config = {"envVars":{"LOG_LEVEL":"info"},"ports":["9090:9090"]},
+ config_schema = { },
+ readme = '', ),
+ display_name = '',
+ short_description = '',
+ icon = '',
+ deprecation = flightctl.v1alpha1.models.catalog_item_deprecation.CatalogItemDeprecation(
+ message = 'This item is deprecated. Use nginx-plus instead.',
+ replacement = 'nginx-plus', ),
+ provider = '',
+ support = '',
+ homepage = '',
+ documentation_url = '', ), )
+ ],
+ )
+ """
+
+ def testCatalogItemList(self):
+ """Test CatalogItemList"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_catalog_item_meta.py b/flightctl/v1alpha1/test/test_catalog_item_meta.py
new file mode 100644
index 0000000..9b89f94
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_catalog_item_meta.py
@@ -0,0 +1,65 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.catalog_item_meta import CatalogItemMeta
+
+class TestCatalogItemMeta(unittest.TestCase):
+ """CatalogItemMeta unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> CatalogItemMeta:
+ """Test CatalogItemMeta
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `CatalogItemMeta`
+ """
+ model = CatalogItemMeta()
+ if include_optional:
+ return CatalogItemMeta(
+ creation_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ deletion_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ name = '',
+ labels = {
+ 'key' : ''
+ },
+ generation = 56,
+ owner = '',
+ annotations = {
+ 'key' : ''
+ },
+ resource_version = '',
+ catalog = 'edge-apps'
+ )
+ else:
+ return CatalogItemMeta(
+ catalog = 'edge-apps',
+ )
+ """
+
+ def testCatalogItemMeta(self):
+ """Test CatalogItemMeta"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_catalog_item_spec.py b/flightctl/v1alpha1/test/test_catalog_item_spec.py
new file mode 100644
index 0000000..6a5afc4
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_catalog_item_spec.py
@@ -0,0 +1,72 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.catalog_item_spec import CatalogItemSpec
+
+class TestCatalogItemSpec(unittest.TestCase):
+ """CatalogItemSpec unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> CatalogItemSpec:
+ """Test CatalogItemSpec
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `CatalogItemSpec`
+ """
+ model = CatalogItemSpec()
+ if include_optional:
+ return CatalogItemSpec(
+ category = 'application',
+ type = 'os',
+ artifacts = [{"type":"container","uri":"quay.io/prometheus/prometheus"}],
+ versions = [{"version":"2.45.0","references":{"container":"sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"},"channels":["stable","fast"],"replaces":"2.44.0","skips":["2.43.0"]},{"version":"2.44.0","references":{"container":"v2.44.0"},"channels":["fast"],"replaces":"2.43.0"}],
+ defaults = flightctl.v1alpha1.models.catalog_item_configurable.CatalogItemConfigurable(
+ config = {"envVars":{"LOG_LEVEL":"info"},"ports":["9090:9090"]},
+ config_schema = { },
+ readme = '', ),
+ display_name = '',
+ short_description = '',
+ icon = '',
+ deprecation = flightctl.v1alpha1.models.catalog_item_deprecation.CatalogItemDeprecation(
+ message = 'This item is deprecated. Use nginx-plus instead.',
+ replacement = 'nginx-plus', ),
+ provider = '',
+ support = '',
+ homepage = '',
+ documentation_url = ''
+ )
+ else:
+ return CatalogItemSpec(
+ type = 'os',
+ artifacts = [{"type":"container","uri":"quay.io/prometheus/prometheus"}],
+ versions = [{"version":"2.45.0","references":{"container":"sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"},"channels":["stable","fast"],"replaces":"2.44.0","skips":["2.43.0"]},{"version":"2.44.0","references":{"container":"v2.44.0"},"channels":["fast"],"replaces":"2.43.0"}],
+ )
+ """
+
+ def testCatalogItemSpec(self):
+ """Test CatalogItemSpec"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_catalog_item_type.py b/flightctl/v1alpha1/test/test_catalog_item_type.py
new file mode 100644
index 0000000..7dd7487
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_catalog_item_type.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.catalog_item_type import CatalogItemType
+
+class TestCatalogItemType(unittest.TestCase):
+ """CatalogItemType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testCatalogItemType(self):
+ """Test CatalogItemType"""
+ # inst = CatalogItemType()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_catalog_item_version.py b/flightctl/v1alpha1/test/test_catalog_item_version.py
new file mode 100644
index 0000000..68a9ba4
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_catalog_item_version.py
@@ -0,0 +1,70 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.catalog_item_version import CatalogItemVersion
+
+class TestCatalogItemVersion(unittest.TestCase):
+ """CatalogItemVersion unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> CatalogItemVersion:
+ """Test CatalogItemVersion
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `CatalogItemVersion`
+ """
+ model = CatalogItemVersion()
+ if include_optional:
+ return CatalogItemVersion(
+ config = {envVars={LOG_LEVEL=info}, ports=[9090:9090]},
+ config_schema = { },
+ readme = '',
+ version = '2.45.0',
+ references = {"container":"sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4","qcow2":"v2.45.0"},
+ channels = [
+ ''
+ ],
+ replaces = '',
+ skips = ["1.0.0","1.1.0"],
+ skip_range = '>=1.0.0 <1.3.0',
+ deprecation = flightctl.v1alpha1.models.catalog_item_deprecation.CatalogItemDeprecation(
+ message = 'This item is deprecated. Use nginx-plus instead.',
+ replacement = 'nginx-plus', )
+ )
+ else:
+ return CatalogItemVersion(
+ version = '2.45.0',
+ references = {"container":"sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4","qcow2":"v2.45.0"},
+ channels = [
+ ''
+ ],
+ )
+ """
+
+ def testCatalogItemVersion(self):
+ """Test CatalogItemVersion"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_catalog_list.py b/flightctl/v1alpha1/test/test_catalog_list.py
new file mode 100644
index 0000000..ed74cbb
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_catalog_list.py
@@ -0,0 +1,117 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.catalog_list import CatalogList
+
+class TestCatalogList(unittest.TestCase):
+ """CatalogList unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> CatalogList:
+ """Test CatalogList
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `CatalogList`
+ """
+ model = CatalogList()
+ if include_optional:
+ return CatalogList(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.v1alpha1.models.list_meta.ListMeta(
+ continue = '',
+ remaining_item_count = 56, ),
+ items = [
+ flightctl.v1alpha1.models.catalog.Catalog(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.v1alpha1.models.object_meta.ObjectMeta(
+ creation_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ deletion_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ name = '',
+ labels = {
+ 'key' : ''
+ },
+ generation = 56,
+ owner = '',
+ annotations = {
+ 'key' : ''
+ },
+ resource_version = '', ),
+ spec = flightctl.v1alpha1.models.catalog_spec.CatalogSpec(
+ display_name = '',
+ short_description = '',
+ icon = '',
+ provider = '',
+ support = '', ),
+ status = flightctl.v1alpha1.models.catalog_status.CatalogStatus(
+ conditions = [
+ null
+ ], ), )
+ ]
+ )
+ else:
+ return CatalogList(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.v1alpha1.models.list_meta.ListMeta(
+ continue = '',
+ remaining_item_count = 56, ),
+ items = [
+ flightctl.v1alpha1.models.catalog.Catalog(
+ api_version = 'v1alpha1',
+ kind = '',
+ metadata = flightctl.v1alpha1.models.object_meta.ObjectMeta(
+ creation_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ deletion_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ name = '',
+ labels = {
+ 'key' : ''
+ },
+ generation = 56,
+ owner = '',
+ annotations = {
+ 'key' : ''
+ },
+ resource_version = '', ),
+ spec = flightctl.v1alpha1.models.catalog_spec.CatalogSpec(
+ display_name = '',
+ short_description = '',
+ icon = '',
+ provider = '',
+ support = '', ),
+ status = flightctl.v1alpha1.models.catalog_status.CatalogStatus(
+ conditions = [
+ null
+ ], ), )
+ ],
+ )
+ """
+
+ def testCatalogList(self):
+ """Test CatalogList"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_catalog_spec.py b/flightctl/v1alpha1/test/test_catalog_spec.py
new file mode 100644
index 0000000..0bdf52b
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_catalog_spec.py
@@ -0,0 +1,56 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.catalog_spec import CatalogSpec
+
+class TestCatalogSpec(unittest.TestCase):
+ """CatalogSpec unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> CatalogSpec:
+ """Test CatalogSpec
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `CatalogSpec`
+ """
+ model = CatalogSpec()
+ if include_optional:
+ return CatalogSpec(
+ display_name = '',
+ short_description = '',
+ icon = '',
+ provider = '',
+ support = ''
+ )
+ else:
+ return CatalogSpec(
+ )
+ """
+
+ def testCatalogSpec(self):
+ """Test CatalogSpec"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_catalog_status.py b/flightctl/v1alpha1/test/test_catalog_status.py
new file mode 100644
index 0000000..47c011a
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_catalog_status.py
@@ -0,0 +1,57 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.catalog_status import CatalogStatus
+
+class TestCatalogStatus(unittest.TestCase):
+ """CatalogStatus unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> CatalogStatus:
+ """Test CatalogStatus
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `CatalogStatus`
+ """
+ model = CatalogStatus()
+ if include_optional:
+ return CatalogStatus(
+ conditions = [
+ null
+ ]
+ )
+ else:
+ return CatalogStatus(
+ conditions = [
+ null
+ ],
+ )
+ """
+
+ def testCatalogStatus(self):
+ """Test CatalogStatus"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_condition.py b/flightctl/v1alpha1/test/test_condition.py
new file mode 100644
index 0000000..d71f2cf
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_condition.py
@@ -0,0 +1,62 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.condition import Condition
+
+class TestCondition(unittest.TestCase):
+ """Condition unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> Condition:
+ """Test Condition
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `Condition`
+ """
+ model = Condition()
+ if include_optional:
+ return Condition(
+ status = 'True',
+ observed_generation = 56,
+ last_transition_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ message = '',
+ reason = '',
+ type = 'Approved'
+ )
+ else:
+ return Condition(
+ status = 'True',
+ last_transition_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ message = '',
+ reason = '',
+ type = 'Approved',
+ )
+ """
+
+ def testCondition(self):
+ """Test Condition"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_condition_base.py b/flightctl/v1alpha1/test/test_condition_base.py
new file mode 100644
index 0000000..608d6cc
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_condition_base.py
@@ -0,0 +1,60 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.condition_base import ConditionBase
+
+class TestConditionBase(unittest.TestCase):
+ """ConditionBase unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ConditionBase:
+ """Test ConditionBase
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ConditionBase`
+ """
+ model = ConditionBase()
+ if include_optional:
+ return ConditionBase(
+ status = 'True',
+ observed_generation = 56,
+ last_transition_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ message = '',
+ reason = ''
+ )
+ else:
+ return ConditionBase(
+ status = 'True',
+ last_transition_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ message = '',
+ reason = '',
+ )
+ """
+
+ def testConditionBase(self):
+ """Test ConditionBase"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_condition_status.py b/flightctl/v1alpha1/test/test_condition_status.py
new file mode 100644
index 0000000..cbe7f62
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_condition_status.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.condition_status import ConditionStatus
+
+class TestConditionStatus(unittest.TestCase):
+ """ConditionStatus unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testConditionStatus(self):
+ """Test ConditionStatus"""
+ # inst = ConditionStatus()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_condition_type.py b/flightctl/v1alpha1/test/test_condition_type.py
new file mode 100644
index 0000000..421f742
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_condition_type.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.condition_type import ConditionType
+
+class TestConditionType(unittest.TestCase):
+ """ConditionType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testConditionType(self):
+ """Test ConditionType"""
+ # inst = ConditionType()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_list_meta.py b/flightctl/v1alpha1/test/test_list_meta.py
new file mode 100644
index 0000000..a490792
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_list_meta.py
@@ -0,0 +1,53 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.list_meta import ListMeta
+
+class TestListMeta(unittest.TestCase):
+ """ListMeta unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ListMeta:
+ """Test ListMeta
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ListMeta`
+ """
+ model = ListMeta()
+ if include_optional:
+ return ListMeta(
+ var_continue = '',
+ remaining_item_count = 56
+ )
+ else:
+ return ListMeta(
+ )
+ """
+
+ def testListMeta(self):
+ """Test ListMeta"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_object_meta.py b/flightctl/v1alpha1/test/test_object_meta.py
new file mode 100644
index 0000000..72bbcc4
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_object_meta.py
@@ -0,0 +1,63 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.object_meta import ObjectMeta
+
+class TestObjectMeta(unittest.TestCase):
+ """ObjectMeta unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ObjectMeta:
+ """Test ObjectMeta
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ObjectMeta`
+ """
+ model = ObjectMeta()
+ if include_optional:
+ return ObjectMeta(
+ creation_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ deletion_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ name = '',
+ labels = {
+ 'key' : ''
+ },
+ generation = 56,
+ owner = '',
+ annotations = {
+ 'key' : ''
+ },
+ resource_version = ''
+ )
+ else:
+ return ObjectMeta(
+ )
+ """
+
+ def testObjectMeta(self):
+ """Test ObjectMeta"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_patch_request_inner.py b/flightctl/v1alpha1/test/test_patch_request_inner.py
new file mode 100644
index 0000000..9ca6149
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_patch_request_inner.py
@@ -0,0 +1,56 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.patch_request_inner import PatchRequestInner
+
+class TestPatchRequestInner(unittest.TestCase):
+ """PatchRequestInner unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> PatchRequestInner:
+ """Test PatchRequestInner
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `PatchRequestInner`
+ """
+ model = PatchRequestInner()
+ if include_optional:
+ return PatchRequestInner(
+ path = '',
+ value = None,
+ op = 'add'
+ )
+ else:
+ return PatchRequestInner(
+ path = '',
+ op = 'add',
+ )
+ """
+
+ def testPatchRequestInner(self):
+ """Test PatchRequestInner"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_schemas_api_version.py b/flightctl/v1alpha1/test/test_schemas_api_version.py
new file mode 100644
index 0000000..84199b2
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_schemas_api_version.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.schemas_api_version import SchemasApiVersion
+
+class TestSchemasApiVersion(unittest.TestCase):
+ """SchemasApiVersion unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testSchemasApiVersion(self):
+ """Test SchemasApiVersion"""
+ # inst = SchemasApiVersion()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_schemas_status.py b/flightctl/v1alpha1/test/test_schemas_status.py
new file mode 100644
index 0000000..d75be61
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_schemas_status.py
@@ -0,0 +1,63 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.schemas_status import SchemasStatus
+
+class TestSchemasStatus(unittest.TestCase):
+ """SchemasStatus unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SchemasStatus:
+ """Test SchemasStatus
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SchemasStatus`
+ """
+ model = SchemasStatus()
+ if include_optional:
+ return SchemasStatus(
+ api_version = 'v1beta1',
+ kind = '',
+ code = 56,
+ message = '',
+ reason = '',
+ status = ''
+ )
+ else:
+ return SchemasStatus(
+ api_version = 'v1beta1',
+ kind = '',
+ code = 56,
+ message = '',
+ reason = '',
+ status = '',
+ )
+ """
+
+ def testSchemasStatus(self):
+ """Test SchemasStatus"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1/test/test_status.py b/flightctl/v1alpha1/test/test_status.py
new file mode 100644
index 0000000..35d485c
--- /dev/null
+++ b/flightctl/v1alpha1/test/test_status.py
@@ -0,0 +1,63 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+ The version of the OpenAPI document: v1alpha1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.v1alpha1.models.status import Status
+
+class TestStatus(unittest.TestCase):
+ """Status unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> Status:
+ """Test Status
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `Status`
+ """
+ model = Status()
+ if include_optional:
+ return Status(
+ api_version = 'v1alpha1',
+ kind = '',
+ code = 56,
+ message = '',
+ reason = '',
+ status = ''
+ )
+ else:
+ return Status(
+ api_version = 'v1alpha1',
+ kind = '',
+ code = 56,
+ message = '',
+ reason = '',
+ status = '',
+ )
+ """
+
+ def testStatus(self):
+ """Test Status"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/flightctl/v1alpha1_README.md b/flightctl/v1alpha1_README.md
new file mode 100644
index 0000000..dd2497d
--- /dev/null
+++ b/flightctl/v1alpha1_README.md
@@ -0,0 +1,137 @@
+# flightctl.v1alpha1
+[Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads. This API version (v1alpha1) contains alpha-stage resources that are subject to change.
+
+The `flightctl.v1alpha1` package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
+
+- API version: v1alpha1
+- Package version: 1.1.0
+- Generator version: 7.17.0
+- Build package: org.openapitools.codegen.languages.PythonClientCodegen
+For more information, please visit [https://flightctl.io](https://flightctl.io)
+
+## Requirements.
+
+Python 3.9+
+
+## Installation & Usage
+
+This python library package is generated without supporting files like setup.py or requirements files
+
+To be able to use it, you will need these dependencies in your own package that uses this library:
+
+* urllib3 >= 2.1.0, < 3.0.0
+* python-dateutil >= 2.8.2
+* pydantic >= 2
+* typing-extensions >= 4.7.1
+
+## Getting Started
+
+In your own code, to use this library to connect and interact with flightctl.v1alpha1,
+you can run the following:
+
+```python
+
+import flightctl.v1alpha1
+from flightctl.v1alpha1.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to /api/v1
+# See configuration.py for a list of all supported configuration parameters.
+configuration = flightctl.v1alpha1.Configuration(
+ host = "/api/v1"
+)
+
+
+
+# Enter a context with an instance of the API client
+with flightctl.v1alpha1.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = flightctl.v1alpha1.CatalogApi(api_client)
+ catalog = flightctl.v1alpha1.Catalog() # Catalog |
+
+ try:
+ api_response = api_instance.create_catalog(catalog)
+ print("The response of CatalogApi->create_catalog:\n")
+ pprint(api_response)
+ except ApiException as e:
+ print("Exception when calling CatalogApi->create_catalog: %s\n" % e)
+
+```
+
+## Documentation for API Endpoints
+
+All URIs are relative to */api/v1*
+
+Class | Method | HTTP request | Description
+------------ | ------------- | ------------- | -------------
+*CatalogApi* | [**create_catalog**](flightctl/v1alpha1/docs/CatalogApi.md#create_catalog) | **POST** /catalogs |
+*CatalogApi* | [**create_catalog_item**](flightctl/v1alpha1/docs/CatalogApi.md#create_catalog_item) | **POST** /catalogs/{catalog}/items |
+*CatalogApi* | [**delete_catalog**](flightctl/v1alpha1/docs/CatalogApi.md#delete_catalog) | **DELETE** /catalogs/{name} |
+*CatalogApi* | [**delete_catalog_item**](flightctl/v1alpha1/docs/CatalogApi.md#delete_catalog_item) | **DELETE** /catalogs/{catalog}/items/{name} |
+*CatalogApi* | [**get_catalog**](flightctl/v1alpha1/docs/CatalogApi.md#get_catalog) | **GET** /catalogs/{name} |
+*CatalogApi* | [**get_catalog_item**](flightctl/v1alpha1/docs/CatalogApi.md#get_catalog_item) | **GET** /catalogs/{catalog}/items/{name} |
+*CatalogApi* | [**get_catalog_status**](flightctl/v1alpha1/docs/CatalogApi.md#get_catalog_status) | **GET** /catalogs/{name}/status |
+*CatalogApi* | [**list_all_catalog_items**](flightctl/v1alpha1/docs/CatalogApi.md#list_all_catalog_items) | **GET** /catalogitems |
+*CatalogApi* | [**list_catalog_items**](flightctl/v1alpha1/docs/CatalogApi.md#list_catalog_items) | **GET** /catalogs/{catalog}/items |
+*CatalogApi* | [**list_catalogs**](flightctl/v1alpha1/docs/CatalogApi.md#list_catalogs) | **GET** /catalogs |
+*CatalogApi* | [**patch_catalog**](flightctl/v1alpha1/docs/CatalogApi.md#patch_catalog) | **PATCH** /catalogs/{name} |
+*CatalogApi* | [**patch_catalog_item**](flightctl/v1alpha1/docs/CatalogApi.md#patch_catalog_item) | **PATCH** /catalogs/{catalog}/items/{name} |
+*CatalogApi* | [**patch_catalog_status**](flightctl/v1alpha1/docs/CatalogApi.md#patch_catalog_status) | **PATCH** /catalogs/{name}/status |
+*CatalogApi* | [**replace_catalog**](flightctl/v1alpha1/docs/CatalogApi.md#replace_catalog) | **PUT** /catalogs/{name} |
+*CatalogApi* | [**replace_catalog_item**](flightctl/v1alpha1/docs/CatalogApi.md#replace_catalog_item) | **PUT** /catalogs/{catalog}/items/{name} |
+*CatalogApi* | [**replace_catalog_status**](flightctl/v1alpha1/docs/CatalogApi.md#replace_catalog_status) | **PUT** /catalogs/{name}/status |
+
+
+## Documentation For Models
+
+ - [ApiVersion](flightctl/v1alpha1/docs/ApiVersion.md)
+ - [Catalog](flightctl/v1alpha1/docs/Catalog.md)
+ - [CatalogItem](flightctl/v1alpha1/docs/CatalogItem.md)
+ - [CatalogItemArtifact](flightctl/v1alpha1/docs/CatalogItemArtifact.md)
+ - [CatalogItemArtifactType](flightctl/v1alpha1/docs/CatalogItemArtifactType.md)
+ - [CatalogItemCategory](flightctl/v1alpha1/docs/CatalogItemCategory.md)
+ - [CatalogItemConfigurable](flightctl/v1alpha1/docs/CatalogItemConfigurable.md)
+ - [CatalogItemDeprecation](flightctl/v1alpha1/docs/CatalogItemDeprecation.md)
+ - [CatalogItemList](flightctl/v1alpha1/docs/CatalogItemList.md)
+ - [CatalogItemMeta](flightctl/v1alpha1/docs/CatalogItemMeta.md)
+ - [CatalogItemSpec](flightctl/v1alpha1/docs/CatalogItemSpec.md)
+ - [CatalogItemType](flightctl/v1alpha1/docs/CatalogItemType.md)
+ - [CatalogItemVersion](flightctl/v1alpha1/docs/CatalogItemVersion.md)
+ - [CatalogList](flightctl/v1alpha1/docs/CatalogList.md)
+ - [CatalogSpec](flightctl/v1alpha1/docs/CatalogSpec.md)
+ - [CatalogStatus](flightctl/v1alpha1/docs/CatalogStatus.md)
+ - [Condition](flightctl/v1alpha1/docs/Condition.md)
+ - [ConditionBase](flightctl/v1alpha1/docs/ConditionBase.md)
+ - [ConditionStatus](flightctl/v1alpha1/docs/ConditionStatus.md)
+ - [ConditionType](flightctl/v1alpha1/docs/ConditionType.md)
+ - [ListMeta](flightctl/v1alpha1/docs/ListMeta.md)
+ - [ObjectMeta](flightctl/v1alpha1/docs/ObjectMeta.md)
+ - [PatchRequestInner](flightctl/v1alpha1/docs/PatchRequestInner.md)
+ - [SchemasApiVersion](flightctl/v1alpha1/docs/SchemasApiVersion.md)
+ - [SchemasStatus](flightctl/v1alpha1/docs/SchemasStatus.md)
+ - [Status](flightctl/v1alpha1/docs/Status.md)
+
+
+
+## Documentation For Authorization
+
+
+Authentication schemes defined for the API:
+
+### bearerAuth
+
+- **Type**: Bearer authentication (JWT)
+
+
+### orgId
+
+- **Type**: API key
+- **API key parameter name**: org_id
+- **Location**: URL query string
+
+
+## Author
+
+team@flightctl.io
+
+
diff --git a/pyproject.toml b/pyproject.toml
index 96e5806..e0b3d5e 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "flightctl"
-version = "1.0.0"
+version = "1.1.0"
description = "Flight Control API"
authors = [
{name = "The Flight Control Team",email = "team@flightctl.io"},
@@ -77,6 +77,13 @@ disallow_any_generics = true
### This one can be tricky to get passing if you use a lot of untyped libraries
#warn_return_any = true
+[[tool.mypy.overrides]]
+module = [
+ "flightctl.v1alpha1.test.*",
+ "flightctl.imagebuilder.test.*",
+]
+ignore_errors = true
+
[[tool.mypy.overrides]]
module = [
"flightctl.configuration",
diff --git a/setup.py b/setup.py
index e2328cd..a6c23c0 100644
--- a/setup.py
+++ b/setup.py
@@ -22,7 +22,7 @@
# prerequisite: setuptools
# http://pypi.python.org/pypi/setuptools
NAME = "flightctl"
-VERSION = "1.0.0"
+VERSION = "1.1.0"
PYTHON_REQUIRES = ">= 3.9"
REQUIRES = [
"urllib3 >= 2.1.0, < 3.0.0",
diff --git a/test/test_api_version.py b/test/test_api_version.py
new file mode 100644
index 0000000..0c3d49d
--- /dev/null
+++ b/test/test_api_version.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.models.api_version import ApiVersion
+
+class TestApiVersion(unittest.TestCase):
+ """ApiVersion unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testApiVersion(self):
+ """Test ApiVersion"""
+ # inst = ApiVersion()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_application_provider_base.py b/test/test_application_provider_base.py
new file mode 100644
index 0000000..12ae49b
--- /dev/null
+++ b/test/test_application_provider_base.py
@@ -0,0 +1,54 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.models.application_provider_base import ApplicationProviderBase
+
+class TestApplicationProviderBase(unittest.TestCase):
+ """ApplicationProviderBase unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ApplicationProviderBase:
+ """Test ApplicationProviderBase
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ApplicationProviderBase`
+ """
+ model = ApplicationProviderBase()
+ if include_optional:
+ return ApplicationProviderBase(
+ name = '',
+ app_type = 'compose'
+ )
+ else:
+ return ApplicationProviderBase(
+ app_type = 'compose',
+ )
+ """
+
+ def testApplicationProviderBase(self):
+ """Test ApplicationProviderBase"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_application_user.py b/test/test_application_user.py
new file mode 100644
index 0000000..a7b0969
--- /dev/null
+++ b/test/test_application_user.py
@@ -0,0 +1,52 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.models.application_user import ApplicationUser
+
+class TestApplicationUser(unittest.TestCase):
+ """ApplicationUser unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ApplicationUser:
+ """Test ApplicationUser
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ApplicationUser`
+ """
+ model = ApplicationUser()
+ if include_optional:
+ return ApplicationUser(
+ run_as = ''
+ )
+ else:
+ return ApplicationUser(
+ )
+ """
+
+ def testApplicationUser(self):
+ """Test ApplicationUser"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_compose_application.py b/test/test_compose_application.py
new file mode 100644
index 0000000..14c897c
--- /dev/null
+++ b/test/test_compose_application.py
@@ -0,0 +1,68 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.models.compose_application import ComposeApplication
+
+class TestComposeApplication(unittest.TestCase):
+ """ComposeApplication unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ComposeApplication:
+ """Test ComposeApplication
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ComposeApplication`
+ """
+ model = ComposeApplication()
+ if include_optional:
+ return ComposeApplication(
+ name = '',
+ app_type = 'compose',
+ env_vars = {
+ 'key' : ''
+ },
+ volumes = [
+ null
+ ],
+ image = '',
+ inline = [
+ null
+ ]
+ )
+ else:
+ return ComposeApplication(
+ app_type = 'compose',
+ image = '',
+ inline = [
+ null
+ ],
+ )
+ """
+
+ def testComposeApplication(self):
+ """Test ComposeApplication"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_condition_base.py b/test/test_condition_base.py
new file mode 100644
index 0000000..19acc3a
--- /dev/null
+++ b/test/test_condition_base.py
@@ -0,0 +1,60 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.models.condition_base import ConditionBase
+
+class TestConditionBase(unittest.TestCase):
+ """ConditionBase unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ConditionBase:
+ """Test ConditionBase
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ConditionBase`
+ """
+ model = ConditionBase()
+ if include_optional:
+ return ConditionBase(
+ status = 'True',
+ observed_generation = 56,
+ last_transition_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ message = '',
+ reason = ''
+ )
+ else:
+ return ConditionBase(
+ status = 'True',
+ last_transition_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ message = '',
+ reason = '',
+ )
+ """
+
+ def testConditionBase(self):
+ """Test ConditionBase"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_container_application.py b/test/test_container_application.py
new file mode 100644
index 0000000..57f6969
--- /dev/null
+++ b/test/test_container_application.py
@@ -0,0 +1,70 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.models.container_application import ContainerApplication
+
+class TestContainerApplication(unittest.TestCase):
+ """ContainerApplication unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ContainerApplication:
+ """Test ContainerApplication
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ContainerApplication`
+ """
+ model = ContainerApplication()
+ if include_optional:
+ return ContainerApplication(
+ name = '',
+ app_type = 'compose',
+ env_vars = {
+ 'key' : ''
+ },
+ run_as = '',
+ volumes = [
+ null
+ ],
+ image = '',
+ ports = [
+ '8080:80'
+ ],
+ resources = flightctl.models.application_resources.ApplicationResources(
+ limits = flightctl.models.application_resource_limits.ApplicationResourceLimits(
+ cpu = '0.75',
+ memory = '256m', ), )
+ )
+ else:
+ return ContainerApplication(
+ app_type = 'compose',
+ image = '',
+ )
+ """
+
+ def testContainerApplication(self):
+ """Test ContainerApplication"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_container_application_properties.py b/test/test_container_application_properties.py
new file mode 100644
index 0000000..c705cad
--- /dev/null
+++ b/test/test_container_application_properties.py
@@ -0,0 +1,58 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.models.container_application_properties import ContainerApplicationProperties
+
+class TestContainerApplicationProperties(unittest.TestCase):
+ """ContainerApplicationProperties unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ContainerApplicationProperties:
+ """Test ContainerApplicationProperties
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ContainerApplicationProperties`
+ """
+ model = ContainerApplicationProperties()
+ if include_optional:
+ return ContainerApplicationProperties(
+ ports = [
+ '8080:80'
+ ],
+ resources = flightctl.models.application_resources.ApplicationResources(
+ limits = flightctl.models.application_resource_limits.ApplicationResourceLimits(
+ cpu = '0.75',
+ memory = '256m', ), )
+ )
+ else:
+ return ContainerApplicationProperties(
+ )
+ """
+
+ def testContainerApplicationProperties(self):
+ """Test ContainerApplicationProperties"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_docker_auth.py b/test/test_docker_auth.py
new file mode 100644
index 0000000..8f531ee
--- /dev/null
+++ b/test/test_docker_auth.py
@@ -0,0 +1,57 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.models.docker_auth import DockerAuth
+
+class TestDockerAuth(unittest.TestCase):
+ """DockerAuth unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> DockerAuth:
+ """Test DockerAuth
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `DockerAuth`
+ """
+ model = DockerAuth()
+ if include_optional:
+ return DockerAuth(
+ auth_type = 'docker',
+ username = '',
+ password = ''
+ )
+ else:
+ return DockerAuth(
+ auth_type = 'docker',
+ username = '',
+ password = '',
+ )
+ """
+
+ def testDockerAuth(self):
+ """Test DockerAuth"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_git_repo_spec.py b/test/test_git_repo_spec.py
new file mode 100644
index 0000000..d2bfeff
--- /dev/null
+++ b/test/test_git_repo_spec.py
@@ -0,0 +1,67 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.models.git_repo_spec import GitRepoSpec
+
+class TestGitRepoSpec(unittest.TestCase):
+ """GitRepoSpec unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> GitRepoSpec:
+ """Test GitRepoSpec
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `GitRepoSpec`
+ """
+ model = GitRepoSpec()
+ if include_optional:
+ return GitRepoSpec(
+ url = '',
+ type = 'git',
+ http_config = flightctl.models.http_config.HttpConfig(
+ username = '',
+ password = '',
+ tls/crt = '',
+ tls/key = '',
+ ca/crt = '',
+ skip_server_verification = True,
+ token = '', ),
+ ssh_config = flightctl.models.ssh_config.SshConfig(
+ ssh_private_key = '',
+ private_key_passphrase = '',
+ skip_server_verification = True, )
+ )
+ else:
+ return GitRepoSpec(
+ url = '',
+ type = 'git',
+ )
+ """
+
+ def testGitRepoSpec(self):
+ """Test GitRepoSpec"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_helm_application.py b/test/test_helm_application.py
new file mode 100644
index 0000000..2e6d768
--- /dev/null
+++ b/test/test_helm_application.py
@@ -0,0 +1,59 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.models.helm_application import HelmApplication
+
+class TestHelmApplication(unittest.TestCase):
+ """HelmApplication unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> HelmApplication:
+ """Test HelmApplication
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `HelmApplication`
+ """
+ model = HelmApplication()
+ if include_optional:
+ return HelmApplication(
+ name = '',
+ app_type = 'compose',
+ image = '',
+ namespace = 'my-app-namespace',
+ values = {"replicaCount":3,"image":{"repository":"nginx","tag":"1.21"},"service":{"type":"ClusterIP","port":80},"ingress":{"enabled":true,"hosts":[{"host":"example.com","paths":[{"path":"/","pathType":"Prefix"}]}]}},
+ values_files = ["values-production.yaml","values-overrides.yml"]
+ )
+ else:
+ return HelmApplication(
+ app_type = 'compose',
+ image = '',
+ )
+ """
+
+ def testHelmApplication(self):
+ """Test HelmApplication"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_oci_auth_type.py b/test/test_oci_auth_type.py
new file mode 100644
index 0000000..b54252a
--- /dev/null
+++ b/test/test_oci_auth_type.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.models.oci_auth_type import OciAuthType
+
+class TestOciAuthType(unittest.TestCase):
+ """OciAuthType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testOciAuthType(self):
+ """Test OciAuthType"""
+ # inst = OciAuthType()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_oci_repo_spec.py b/test/test_oci_repo_spec.py
new file mode 100644
index 0000000..381b908
--- /dev/null
+++ b/test/test_oci_repo_spec.py
@@ -0,0 +1,63 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.models.oci_repo_spec import OciRepoSpec
+
+class TestOciRepoSpec(unittest.TestCase):
+ """OciRepoSpec unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> OciRepoSpec:
+ """Test OciRepoSpec
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `OciRepoSpec`
+ """
+ model = OciRepoSpec()
+ if include_optional:
+ return OciRepoSpec(
+ registry = '',
+ scheme = 'https',
+ type = 'oci',
+ access_mode = 'Read',
+ oci_auth = flightctl.models.docker_auth.DockerAuth(
+ auth_type = 'docker',
+ username = '',
+ password = '', ),
+ ca_crt = '',
+ skip_server_verification = True
+ )
+ else:
+ return OciRepoSpec(
+ registry = '',
+ type = 'oci',
+ )
+ """
+
+ def testOciRepoSpec(self):
+ """Test OciRepoSpec"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_quadlet_application.py b/test/test_quadlet_application.py
new file mode 100644
index 0000000..07e81f6
--- /dev/null
+++ b/test/test_quadlet_application.py
@@ -0,0 +1,69 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.models.quadlet_application import QuadletApplication
+
+class TestQuadletApplication(unittest.TestCase):
+ """QuadletApplication unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> QuadletApplication:
+ """Test QuadletApplication
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `QuadletApplication`
+ """
+ model = QuadletApplication()
+ if include_optional:
+ return QuadletApplication(
+ name = '',
+ app_type = 'compose',
+ env_vars = {
+ 'key' : ''
+ },
+ run_as = '',
+ volumes = [
+ null
+ ],
+ image = '',
+ inline = [
+ null
+ ]
+ )
+ else:
+ return QuadletApplication(
+ app_type = 'compose',
+ image = '',
+ inline = [
+ null
+ ],
+ )
+ """
+
+ def testQuadletApplication(self):
+ """Test QuadletApplication"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_resource_sync_type.py b/test/test_resource_sync_type.py
new file mode 100644
index 0000000..571db3a
--- /dev/null
+++ b/test/test_resource_sync_type.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Flight Control API
+
+ [Flight Control](https://flightctl.io) is a service for declarative management of fleets of edge devices and their workloads.
+
+ The version of the OpenAPI document: v1beta1
+ Contact: team@flightctl.io
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from flightctl.models.resource_sync_type import ResourceSyncType
+
+class TestResourceSyncType(unittest.TestCase):
+ """ResourceSyncType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testResourceSyncType(self):
+ """Test ResourceSyncType"""
+ # inst = ResourceSyncType()
+
+if __name__ == '__main__':
+ unittest.main()